* tree-nested.c (get_descriptor_type): Make sure that the alignment of
[official-gcc.git] / gcc / ChangeLog
blob89b3d0d7def51dc0cdaa9821c98a26287534010e
1 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
3         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
4         descriptors is at least equal to that of functions.
6 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
8         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
10 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
12         PR target/80250
13         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
14         (mov<IMOD4:mode>): New expander.
15         (*mov<IMOD4:mode>_internal): New insn and split pattern.
17 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
19         PR rtl-optimization/79405
20         * fwprop.c (propagations_left): New variable.
21         (forward_propagate_into): Decrement it.
22         (fwprop_init): Initialize it.
23         (fw_prop): If the variable has reached zero, stop propagating.
24         (fwprop_addr): Ditto.
26 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
28         PR debug/79255
29         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
30         a FUNCTION_DECL, pass it as decl instead of origin to
31         process_scope_var.
33 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
35         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
36         string.
38 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
40         PR target/80107
41         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
42         TARGET_VSX_SMALL_INTEGER.
44 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
46         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
47         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
49 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
51         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
52         extraction from odd-numbered MSA register.
54 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
56         PR middle-end/80173
57         * expmed.c (store_bit_field_1): Don't attempt to create
58         a word subreg out of hard registers wider than word if they
59         have HARD_REGNO_NREGS of 1 for their mode.
61         PR middle-end/80163
62         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
63         conversions to integer types wider than word and pointer.
65         PR debug/80025
66         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
67         (rtx_equal_for_cselib_p): Pass 0 to it.
68         * cselib.c (cselib_hasher::equal): Likewise.
69         (rtx_equal_for_cselib_1): Add depth argument.  If depth
70         is 128, don't look up VALUE locs and punt.  Increment
71         depth in recursive calls when walking VALUE locs.
73 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
75         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
76         (make_gcov_file_name): Use the canonical path name for generating
77         the MD5 value.
78         (read_line): Fix handling of files with ascii null bytes.
80 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
82         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
83         to initialise a vector register instead
84         of using a const_int.
86 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
88         PR translation/80189
89         * gimplify.c (omp_default_clause): Use %qs instead of %s in
90         diagnostic messages.
92 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
94         PR target/80246
95         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
96         (dfp_diex_<mode>): Update mode of operand 1.
97         * doc/extend.texi (dxex, dxexq): Document change to return type.
98         (diex, diexq): Document change to argument type.
100 2017-03-30  Martin Jambor  <mjambor@suse.cz>
102         PR ipa/77333
103         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
104         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
105         it reflects the signature changes performed at the callee side.
106         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
107         to cgraph_build_function_type_skip_args.
108         (build_function_decl_skip_args): Adjust call to the above function.
110 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
112         PR target/80206
113         * config/i386/sse.md
114         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
115         register as dest whenever it is a MEM not rtx_equal_p to the
116         corresponding dup operand, and when forcing into reg move the
117         reg into the memory afterwards.
118         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
119         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
120         for the force_reg mode.
121         (avx512vl_vextractf128<mode>): Use register as dest either
122         always when a MEM, or when it is a MEM not rtx_equal_p to the
123         corresponding dup operand, or even not when it is a CONST_VECTOR
124         depending on the mode and lo vs. hi.
125         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
126         parens.
127         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
128         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
129         Likewise.  Require that operands[2] is even.
130         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
131         Remove extraneous parens.  Require that operands[2] is a multiple
132         of 4.
133         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
134         operands[0] is a MEM if <mask_applied>, the predicates/constraints
135         disallow memory then.
137 2017-03-30  Richard Biener  <rguenther@suse.de>
139         PR tree-optimization/77498
140         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
141         to non-constants over backedges.
143 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
145         PR rtl-optimization/80233
146         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
147         as last_combined_insn.  Do not test for BARRIER_P separately.
149 2017-03-29  Andreas Schwab  <schwab@suse.de>
151         PR ada/80146
152         * calls.c (prepare_call_address): Convert funexp to Pmode before
153         copying to temp reg.
155 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
157         PR tree-optimization/80158
158         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
159         Handle possible future case of more than one alternate
160         interpretation.
161         (replace_rhs_if_not_dup): Likewise.
162         (replace_one_candidate): Likewise.
164 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
166         PR rtl-optimization/80193
167         * ira.c (ira): Do not check allocation for LRA.
169 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
171         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
172         (nvptx_output_simt_exit): Declare.
173         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
174         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
175         (init_softstack_frame): Move initialization of crtl->is_leaf to...
176         (nvptx_declare_function_name): ...here.  Emit declaration of local
177         memory space buffer for omp_simt_enter insn.
178         (nvptx_output_unisimt_switch): New.
179         (nvptx_output_softstack_switch): New.
180         (nvptx_output_simt_enter): New.
181         (nvptx_output_simt_exit): New.
182         * config/nvptx/nvptx.h (struct machine_function): New fields
183         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
184         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
185         (UNSPECV_SIMT_EXIT): Ditto.
186         (omp_simt_enter_insn): New insn.
187         (omp_simt_enter): New expansion.
188         (omp_simt_exit): New insn.
189         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
191         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
192         (expand_GOMP_SIMT_ENTER_ALLOC): New.
193         (expand_GOMP_SIMT_EXIT): New.
194         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
195         (GOMP_SIMT_ENTER_ALLOC): Ditto.
196         (GOMP_SIMT_EXIT): Ditto.
197         * target-insns.def (omp_simt_enter): New insn.
198         (omp_simt_exit): Ditto.
199         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
200         simt_dlist.
201         (lower_rec_simd_input_clauses): Implement SIMT privatization.
202         (lower_rec_input_clauses): Likewise.
203         (lower_lastprivate_clauses): Handle SIMT privatization.
205         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
206         (ompdevlow_adjust_simt_enter): New.
207         (find_simtpriv_var_op): New.
208         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
209         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
211         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
212         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
213         (copy_decl_for_dup_finish): Ditto.
215         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
217 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
219         PR target/53383
220         * config/i386/i386.c (ix86_option_override_internal): Always
221         allow -mpreferred-stack-boundary=3 for 64-bit targets.
223 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
225         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
227 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
229         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
230         mark new edge's irreducible flag accordign to it.
231         (vect_do_peeling): Check loop preheader edge's irreducible flag
232         and pass it to function slpeel_add_loop_guard.
234 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
236         PR tree-optimization/80218
237         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
238         Update block frequencies and counts.
240 2017-03-28  Richard Biener  <rguenther@suse.de>
242         PR tree-optimization/78644
243         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
244         of a simplification result we may not use it at all.
246 2017-03-28  Richard Biener  <rguenther@suse.de>
248         PR ipa/80205
249         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
250         without arguments, generate default definition of a SSA name.
252 2017-03-28  Richard Biener  <rguenther@suse.de>
254         PR middle-end/80222
255         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
256         TYPE_REF_CAN_ALIAS_ALL references.
257         * fold-const.c (fold_indirect_ref_1): Likewise.
259 2017-03-28  Martin Liska  <mliska@suse.cz>
261         PR ipa/80104
262         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
263         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
265 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
266             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
268         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
269         (EXTRA_SPECS): Define.
270         (SUBTARGET_EXTRA_SPECS): Likewise.
271         (SUBTARGET_CPP_SPEC): Likewise.
272         * config/arc/elf.h (EXTRA_SPECS): Renamed to
273         SUBTARGET_EXTRA_SPECS.
274         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
276 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
278         * config/arc/simdext.md (vst64_insn): Update pattern.
279         (vld32wh_insn): Likewise.
280         (vld32wl_insn): Likewise.
281         (vld64_insn): Likewise.
282         (vld32_insn): Likewise.
284 2017-03-28  Marek Polacek  <polacek@redhat.com>
286         PR sanitizer/80067
287         * fold-const.c (fold_comparison): Use protected_set_expr_location
288         instead of SET_EXPR_LOCATION.
290 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
292         * tree.c (add_expr): Avoid name lookup warning.
294 2017-03-27  Jeff Law  <law@redhat.com>
296         PR tree-optimization/80216
297         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
298         function name.  Limit recursion depth.
299         (record_temporary_equivalences): Corresponding changes.
301 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
303         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
304         covered first.
306 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
308         PR target/80102
309         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
310         notes.
311         * cfgcleanup.c (reg_note_cfa_p): New array.
312         (insns_have_identical_cfa_notes): New function.
313         (old_insns_match_p): Don't cross-jump in between /f
314         and non-/f instructions.  If both i1 and i2 are frame related,
315         verify all CFA notes, their order and content.
317 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
319         PR target/78543
320         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
321         HImode and SImode with zero extend to DImode to one insn.
322         (bswap<mode>2_extenddi): Likewise.
323         (bswapsi2_extenddi): Likewise.
324         (bswaphi2_extendsi): Likewise.
325         (bswaphi2): Combine bswap HImode and SImode into one insn.
326         Separate memory insns from swapping register.
327         (bswapsi2): Likewise.
328         (bswap<mode>2): Likewise.
329         (bswaphi2_internal): Delete, no longer used.
330         (bswapsi2_internal): Likewise.
331         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
332         store, and gpr<-gpr swap insns.
333         (bswap<mode>2_store): Likewise.
334         (bswaphi2_reg): Register only splitter, combine with the splitter.
335         (bswaphi2 splitter): Likewise.
336         (bswapsi2_reg): Likewise.
337         (bswapsi2 splitter): Likewise.
338         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
339         the insns into load, store, and register/register insns.
340         (bswapdi2_ldbrx): Likewise.
341         (bswapdi2_load): Likewise.
342         (bswapdi2_store): Likewise.
343         (bswapdi2_reg): Likewise.
345 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
347         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
348         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
350 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
352         PR target/80103
353         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
354         add comments.
355         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
356         special handling for target option conflicts between dform
357         options (-mpower9-dform, -mpower9-dform-vector,
358         -mpower9-dform-scalar) and -mno-direct-move.
360 2017-03-27  Richard Biener  <rguenther@suse.de>
362         PR tree-optimization/80181
363         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
365 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
367         * config/arc/predicates.md (move_double_src_operand): Replace the
368         call to move_double_src_operand with a call to address_operand.
370 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
372         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
373         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
374         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
376 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
378         * config/arc/predicates.md (long_immediate_loadstore_operand):
379         Consider scaled addresses cases.
381 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
383         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
384         restored when in interrupt.
385         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
386         doesn't have delay slot.
388 2017-03-27  Richard Biener  <rguenther@suse.de>
390         PR ipa/79776
391         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
392         inlined thunk clones.
394 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
396         PR sanitizer/80168
397         * asan.c (instrument_derefs): Copy over last operand from
398         original COMPONENT_REF to the new COMPONENT_REF with
399         DECL_BIT_FIELD_REPRESENTATIVE.
400         * ubsan.c (instrument_object_size): Likewise.
402 2017-03-27  Richard Biener  <rguenther@suse.de>
404         PR tree-optimization/80170
405         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
406         sure DR/SCEV didnt fold in constants we do not see when looking
407         at the reference base alignment.
409 2017-03-27  Richard Biener  <rguenther@suse.de>
411         PR middle-end/80171
412         * gimple-fold.c (fold_ctor_reference): Properly guard against
413         NULL return value from canonicalize_constructor_val.
415 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
417         PR target/80180
418         * config/i386/i386.c (ix86_expand_builtin)
419         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
420         flags reg setting and flags reg using instructions.
421         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
422         clobbering instructions to zero extend op2.
424 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
426         * doc/install.texi (Configuration) <--with-aix-soname>:
427         Update link to AIX ld.
429 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
431         PR rtl-optimization/80160
432         PR rtl-optimization/80159
433         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
434         reg_alternate_class into account.
436 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
438         PR target/80148
439         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
440         to consider in curr_insn_transform.
442 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
444         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
445         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
446         and emit_mode_inner.
448 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
450         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
451         argument to the overloaded builtin variants.  Use the new flag to
452         deprecate certain builtin variants.
453         * config/s390/s390-builtin-types.def: Add new builtin types.
454         * config/s390/s390-builtins.h: Support new flags field for
455         overloaded builtins.
456         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
457         (s390_macro_to_expand): Enable vector float data type.
458         (s390_cpu_cpp_builtins_internal): Indicate support of the new
459         builtins by incrementing the __VEC__ version number.
460         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
461         vec_xst.
462         (s390_resolve_overloaded_builtin): Emit error messages depending
463         on the builtin flags.
464         * config/s390/s390.c (s390_expand_builtin): Support additional
465         flags argument.  Change error message to match the messages
466         emitted in s390-c.c.
467         * config/s390/s390.md: New UNSPEC_* constants.
468         (op_type): Add new instruction types.
469         * config/s390/vecintrin.h: Add new builtins and test data class
470         constants.
471         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
472         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
473         (VEC_INEXACT, VEC_NOINEXACT): New constants.
474         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
475         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
476         ("vec_mergel<mode>"): V_HW -> VEC_HW.
478         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
479         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
480         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
481         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
483         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
484         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
485         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
486         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
488         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
489         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
490         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
491         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
492         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
493         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
494         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
496         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
497         ("vec_scatter_element<V_HW_4:mode>_DI")
498         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
499         ("vec_fpint<mode>", "vflls")
500         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
501         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
502         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
503         ("*vec_cmphe<mode>_cc"): ... these.
505         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
506         mode constant instead of magic value.
508 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
510         * config/s390/s390.c (s390_expand_vec_compare): Support other
511         vector floating point modes than just V2DF.
512         (s390_expand_vcond): Likewise.
513         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
514         (s390_cannot_change_mode_class): Prevent mode changes between TF
515         and V1TF in vector registers.
516         * config/s390/s390.md (DF, SF): New mode attributes.
517         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
518         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
519         SFmode support for VRs.
520         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
521         vector fp modes.
522         (VFT, VF_HW): New mode iterators.
523         (vw, sdx): New mode attributes.
524         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
525         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
526         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
527         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
528         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
529         also the new vector floating point modes.  Renaming to ...
531         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
532         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
533         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
534         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
535         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
536         ("vec_unordered<mode>"): ... these.
538         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
539         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
540         ("*vec_extendv2df"): New insn definitions.
542 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
544         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
545         ("mulditi3_2", "*muldi3_sign"): New patterns.
546         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
547         rename the pattern definition.
549 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
551         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
552         expander.
553         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
555 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
557         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
558         instruction if possible.
559         * config/s390/vector.md (vec_halfnumelts): New mode
560         attribute.
561         ("*vec_vllezlf<mode>"): New pattern.
563 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
565         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
566         ("popcountv4si2", "popcountv2di2"): Rename to ...
567         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
568         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
569         condition.
570         ("popcount<mode>2_vxe"): New pattern.
572 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
574         * common/config/s390/s390-common.c (processor_flags_table): Add
575         arch12.
576         * config.gcc: Add arch12.
577         * config/s390/driver-native.c (s390_host_detect_local_cpu):
578         Default to arch12 for unknown CPU model numbers.
579         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
580         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
581         PROCESSOR_max sanity check.
582         * config/s390/s390-opts.h (enum processor_type): Add
583         PROCESSOR_ARCH12.
584         * config/s390/s390.c (processor_table): Add arch12.
585         (s390_expand_builtin): Add check for B_VXE flag.
586         (s390_issue_rate): Add PROCESSOR_ARCH12.
587         (s390_get_sched_attrmask): Likewise.
588         (s390_get_unit_mask): Likewise.
589         (s390_sched_score): Enable z13 scheduling for arch12.
590         (s390_sched_reorder): Likewise.
591         (s390_sched_variable_issue): Likewise.
592         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
593         PF_VXE.
594         (s390_tune_attr): Use z13 scheduling also for arch12.
595         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
596         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
597         (TARGET_VXE_P): New macros.
598         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
599         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
600         * config/s390/s390.opt: Add arch12 as processor_type.
602 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
604         * config/s390/s390.md
605         ("fixuns_truncdddi2", "fixuns_trunctddi2")
606         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
607         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
609         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
610         Rename expanders to ...
612         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
613         ("fixuns_truncdddi2_emu"): ... these.
615         ("fixuns_trunc<mode>si2_emu"): New expander.
617         ("*fixuns_truncdfdi2_z13"): Rename to ...
618         ("*fixuns_truncdfdi2_vx"): ... this.
620 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
622         * config/s390/2964.md: Remove the single element vector compare
623         instructions which are no longer used.
624         * config/s390/s390.c (s390_select_ccmode): Remove handling of
625         vector CCmodes.
626         (s390_canonicalize_comparison): Remove handling of DFmode
627         compares.
628         (s390_expand_vec_compare_scalar): Remove function.
629         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
630         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
631         pattern.
632         ("*cmp<mode>_ccs"): Add wfcdb instruction.
634 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
636         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
637         FP zero.
638         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
639         will anyway by matched by mov<mode>_64dfp.
641 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
643         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
644         vlef/vstef.  Add missing operand to vleif.
646 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
648         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
649         pair for all vector types with 64 bit elements.
650         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
651         * config/s390/vector.md (V_HW_64): ... here.
652         (V_128_NOSINGLE): New mode iterator.
653         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
654         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
655         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
656         ("*vec_load_pairv2di"): Change to ...
657         ("*vec_load_pair<mode>"): ... this one.
659 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
661         * config/s390/constraints.md: Add comments.
662         (jKK): Reject element sizes > 8 bytes.
663         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
664         s_operands.
665         * config/s390/s390.md: Add the s_operand checks formerly in
666         s390_split_ok_p to various splitters where they are still
667         required.
668         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
669         for 128 bit vectors.  Plus two splitters.
671 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
673         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
674         the file.
676 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
678         PR target/79893
679         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
680         error if the boundary argument is not constant.
682 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
684         PR rtl-optimization/80112
685         * loop-doloop.c (doloop_condition_get): Don't check condition
686         if cmp isn't SET with IF_THEN_ELSE src.
688 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
690         PR tree-optimization/80158
691         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
692         replacing a candidate statement, also replace it for the
693         candidate's alternate interpretation.
694         (replace_rhs_if_not_dup): Likewise.
695         (replace_one_candidate): Likewise.
697 2017-03-24  Richard Biener  <rguenther@suse.de>
699         PR tree-optimization/80167
700         * graphite-isl-ast-to-gimple.c
701         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
702         properly.
703         (translate_isl_ast_to_gimple::get_rename): Likewise.
705 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
707         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
708         handling of certain combinations of target options, including the
709         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
710         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
712 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
714         PR target/71436
715         * config/arm/arm.md (*load_multiple): Add reload_completed to
716         matching condition.
718 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
719             Richard Biener  <rguenth@suse.de>
721         PR tree-optimization/79908
722         PR tree-optimization/80136
723         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
724         been cast away, gimplify_and_add suffices.
726 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de> 
728         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
730 2017-03-23  Richard Biener  <rguenther@suse.de>
732         PR tree-optimization/80032
733         * gimplify.c (gimple_push_cleanup): Forced unconditional
734         cleanups still have to go to the conditional_cleanups
735         sequence.
737 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
739         PR tree-optimization/80072
740         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
741         to unsigned int.
742         (next_operand_entry_id): Change type to unsigned int.
743         (sort_by_operand_rank): Make sure to return the right return value
744         even if unsigned fields are bigger than INT_MAX.
745         (struct oecount): Change cnt and id type to unsigned int.
746         (oecount_hasher::equal): Formatting fix.
747         (oecount_cmp): Make sure to return the right return value
748         even if unsigned fields are bigger than INT_MAX.
749         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
751         PR c++/80129
752         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
753         TREE_READONLY on result if writing it more than once.
755         PR sanitizer/80110
756         * doc/invoke.texi (-fsanitize=thread): Document that with
757         -fnon-call-exceptions atomics are not able to throw
758         exceptions.
760         PR sanitizer/80110
761         * tsan.c: Include tree-eh.h.
762         (instrument_builtin_call): Call maybe_clean_eh_stmt or
763         maybe_clean_or_replace_eh_stmt where needed.
764         (instrument_memory_accesses): Add cfg_changed argument.
765         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
766         if it returned true.
767         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
769         PR rtl-optimization/63191
770         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
771         wrapper function, moved the whole old content into ...
772         (ix86_delegitimize_address_1): ... this.  New inline function.
773         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
774         true as last argument instead of ix86_delegitimize_address.
776 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
778         * config/aarch64/aarch64.c (generic_branch_cost): Copy
779         cortexa57_branch_cost.
781 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
783         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
785 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
787         PR target/80123
788         * doc/md.texi (Constraints): Document wA constraint.
789         * config/rs6000/constraints.md (wA): New.
790         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
791         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
792         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
793         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
795 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
797         PR c++/80029
798         * gimplify.c (is_oacc_declared): New function.
799         (oacc_default_clause): Use it to set default flags for acc declared
800         variables inside parallel regions.
801         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
802         declared variables.
803         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
804         declare attribute to any decl as necessary.
806 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
808         PR target/80082
809         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
810         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
811         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
812         (arm_arch_lpae): This.
813         * config/arm/arm.c (arm_arch7ve): Rename into ...
814         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
815         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
816         arm_arch_lpae.
818 2017-03-22  Martin Liska  <mliska@suse.cz>
820         PR target/79906
821         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
822         error message instead of an ICE.
824 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
826         * doc/extend.texi (6.11 Additional Floating Types): Revise.
828 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
830         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
831         comments.
832         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
833         comments.
835 2017-03-21  Martin Sebor  <msebor@redhat.com>
837         * doc/extend.texi: Use "cannot" instead of "can't."
838         * doc/hostconfig.texi: Same.
839         * doc/install.texi: Same.
840         * doc/invoke.texi: Same.
841         * doc/loop.texi: Same.
842         * doc/md.texi: Same.
843         * doc/objc.texi: Same.
844         * doc/rtl.texi: Same.
845         * doc/tm.texi: Same.
846         * doc/tm.texi.in: Same.
847         * doc/trouble.texi: Same.
849 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
851         PR debug/63238
852         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
853         (collect_checksum_attributes): Set it.
854         (die_checksum_ordered): Use it.
856 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
858         PR tree-optimization/79908
859         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
860         change: For a VA_ARG whose LHS has been cast away, use
861         force_gimple_operand to construct the side effects.
863 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
865         PR translation/80001
866         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
867         more amenable to translation.
868         (oacc_loop_auto_partitions): Likewise.
870 2017-03-21  Marek Polacek  <polacek@redhat.com>
871             Martin Sebor  <msebor@redhat.com>
873         PR tree-optimization/80109
874         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
875         on INTEGRAL_TYPE_P.
877 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
878             Segher Boessenkool  <segher@kernel.crashing.org>
880         PR target/80125
881         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
882         check reg_used_between_p between insn and one of succ or succ2
883         depending on if succ is artificial insn not inserted into insn
884         stream.
886 2017-03-21  Martin Liska  <mliska@suse.cz>
888         PR gcov-profile/80081
889         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
890         * doc/gcc.texi: Include gcov-dump stuff.
891         * doc/gcov-dump.texi: New file.
893 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
895         PR rtl-optimization/79150
896         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
897         conditional jump, if the jump is the last insn of the loop.
899 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
900             Richard Biener  <rguenth@suse.de>
902         PR tree-optimization/79908
903         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
904         been cast away, use force_gimple_operand to construct the side
905         effects.
907 2017-03-21  Martin Liska  <mliska@suse.cz>
909         PR libfortran/79956
910         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
911         to NULL.
913 2017-03-21  Brad Spengler <spender@grsecurity.net>
915         PR plugins/80094
916         * plugin.c (htab_hash_plugin): New function.
917         (add_new_plugin): Use it and adjust.
918         (parse_plugin_arg_opt): Adjust.
919         (init_one_plugin): Likewise.
921 2017-03-21  Richard Biener  <rguenther@suse.de>
923         PR tree-optimization/80032
924         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
925         if set force the cleanup to happen unconditionally.
926         (gimplify_target_expr): Push inserted clobbers with force_uncond
927         to avoid them being removed by control-dependent DCE.
929 2017-03-21  Richard Biener  <rguenther@suse.de>
931         PR tree-optimization/80122
932         * tree-inline.c (copy_bb): Do not expans va-arg packs or
933         va_arg_pack_len when the inlined call stmt requires pack
934         expansion itself.
935         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
937 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
939         PR sanitizer/78158
940         * tsan.c (instrument_builtin_call): If the memory model argument
941         is not a constant, assume it is valid.
943         PR c/67338
944         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
945         avoid UB.
947 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
949         PR rtl-optimization/79910
950         * combine.c (can_combine_p): Do not allow combining an I0 or I1
951         if its dest is used by an insn before I2 (other than the combined
952         insns themselves, which are properly handled already).
954 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
956         Revert:
957         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
959         * combine.c (record_used_regs): New static function.
960         (try_combine): Handle situations where there is an additional
961         instruction between I2 and I3 which needs to have a LOG_LINK
962         updated.
964         Revert:
965         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
967         * combine.c (try_combine): Delete redundant i1 test.  Call
968         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
970 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
972         PR target/80083
973         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
974         alternatives 13/14.
976 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
978         PR tree-optimization/80054
979         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
980         the optimization if a PHI or any of its arguments is not dominated
981         by the candidate's basis.  Use gphi* rather than gimple* as
982         appropriate.
983         (replace_profitable_candidates): Clean up a gimple* variable that
984         should be a gphi* variable.
986 2017-03-20  Martin Sebor  <msebor@redhat.com>
988         PR c++/52477
989         * doc/extend.texi (attribute constructor): Document present limitation.
991 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
993         PR target/79963
994         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
995         __POWER9_VECTOR__ #ifdef control, change template definition to
996         use Power9-specific built-in function.
997         (vec_any_eq): Likewise.
998         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
999         to control outcomes from this test.
1000         (vector_ae_<mode>p): For VEC_F modes, likewise.
1002 2017-03-20  Ian Lance Taylor  <iant@google.com>
1004         * config/i386/i386.c (ix86_function_regparm): Save an extra
1005         register for -fsplit-stack with DECL_STATIC_CHAIN.
1007 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
1009         PR target/79912
1010         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
1011         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
1013 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
1015         * config/riscv/riscv.c (riscv_print_operand): Use "fence
1016         iorw,ow".
1017         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
1018         iorw,iorw".
1020 2017-03-20  Marek Polacek  <polacek@redhat.com>
1022         PR sanitizer/80063
1023         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
1025 2017-03-20  Richard Biener  <rguenther@suse.de>
1027         PR tree-optimization/80113
1028         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
1029         allocate extra SSA name for PHI def.
1030         (add_close_phis_to_outer_loops): Likewise.
1031         (add_close_phis_to_merge_points): Likewise.
1032         (copy_loop_close_phi_args): Likewise.
1033         (copy_cond_phi_nodes): Likewise.
1035 2017-03-20  Martin Liska  <mliska@suse.cz>
1037         PR middle-end/79753
1038         * tree-chkp.c (chkp_build_returned_bound): Do not build
1039         returned bounds for a LHS that's not a BOUNDED_P type.
1041 2017-03-20  Martin Liska  <mliska@suse.cz>
1043         PR target/79769
1044         PR target/79770
1045         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
1046         COMPLEX_CST and VECTOR_CST.
1048 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1050         PR target/78857
1051         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
1052         target operand.  A new splitter adds the clobber statement in case
1053         the target operand is dead anyway.
1055 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
1057         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer 
1058         to age-old versions of binutils and glibc.
1060 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
1062         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
1064 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1066         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
1068 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1069         
1070         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
1071         requirement for binutils 2.13.
1073 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
1075         * combine.c (try_combine): Delete redundant i1 test.  Call
1076         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
1078 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
1080         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
1081         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
1082         contents.
1083         <riscv64-*-elf>: Re-arrange section
1084         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
1085         <riscv32-*-linux>: Likewise.
1086         <riscv64-*-elf>: Likewise
1087         <riscv64-*-linux>: Likewise.
1089 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
1091         PR target/80052
1092         * aarch64.opt(verbose-cost-dump): Fix typo.
1094 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
1096         PR target/79951
1097         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
1098         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
1100 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
1102         * reload.c (find_reloads): When reloading a nonoffsettable address,
1103         use RELOAD_OTHER for it and its address reloads.
1105         PR rtl-optimization/79910
1106         * combine.c (record_used_regs): New static function.
1107         (try_combine): Handle situations where there is an additional
1108         instruction between I2 and I3 which needs to have a LOG_LINK
1109         updated.
1111 2017-03-17  Jeff Law  <law@redhat.com>
1113         PR tree-optimization/71437
1114         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
1115         conditional in the hash table first.
1116         (vrp_dom_walker::before_dom_children): Extract condition from
1117         ASSERT_EXPR.  Record condition, its inverion and any implied
1118         conditions as well.
1120 2017-03-17  Marek Polacek  <polacek@redhat.com>
1121             Markus Trippelsdorf  <markus@trippelsdorf.de>
1123         PR tree-optimization/80079
1124         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
1125         m_stores_head.
1127 2017-03-17  Richard Biener  <rguenther@suse.de>
1129         PR middle-end/80075
1130         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
1131         Properly verify the LHS before the RHS possibly claims to be
1132         handled.
1133         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
1134         do not throw.
1136 2017-03-17  Martin Jambor  <mjambor@suse.cz>
1138         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
1139         (List of -O2 options): Likewise.
1140         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
1141         (-fipa-vrp) New.
1143 2017-03-17  Tom de Vries  <tom@codesourcery.com>
1145         * gcov-dump.c (print_usage): Print bug_report_url.
1147 2017-03-17  Richard Biener  <rguenther@suse.de>
1149         PR middle-end/80050
1150         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
1151         (parser::peek): Likewise.
1153 2017-03-17  Richard Biener  <rguenther@suse.de>
1155         PR tree-optimization/80048
1156         * sese.c (free_sese_info): Properly release rename_map and
1157         copied_bb_map elements.
1159 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
1161         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
1162         Add linked-list forward and backlinks.  Insert on
1163         construction, remove on destruction.
1164         (class pass_store_merging): Add m_stores_head field.
1165         (pass_store_merging::terminate_and_process_all_chains):
1166         Iterate over m_stores_head list.
1167         (pass_store_merging::terminate_all_aliasing_chains):
1168         Likewise.
1169         (pass_store_merging::execute): Check for debug stmts first.
1170         Push new chains onto the m_stores_head stack.
1172 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
1174         PR target/71294
1175         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
1176         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
1177         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
1179 2017-03-16  Jeff Law  <law@redhat.com>
1181         PR tree-optimization/71437
1182         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
1183         member function.  Implementation moved into after_dom_children
1184         member function and into the threader's thread_outgoing_edges
1185         function.
1186         (dom_opt_dom_walker::after_dom_children): Simplify by moving
1187         some code into new thread_outgoing_edges.
1188         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
1189         definition.  Simplify marker handling (do it here).   Assume we always
1190         have the available expression and the const/copies tables.
1191         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
1192         and tree-vrp.c
1193         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
1194         * tree-vrp.c (equiv_stack): No longer file scoped.
1195         (vrp_dom_walker): New class.
1196         (vrp_dom_walker::before_dom_children): New member function.
1197         (vrp_dom_walker::after_dom_children): Likewise.
1198         (identify_jump_threads):  Setup domwalker.  Use it rather than
1199         walking edges in a random order by hand.  Simplify setup/finalization.
1200         (finalize_jump_threads): Remove.
1201         (vrp_finalize): Do not call identify_jump_threads here.
1202         (execute_vrp): Do it here instead and call thread_through_all_blocks
1203         here too.
1205         PR tree-optimization/71437
1206         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
1207         callers changed.
1208         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
1209         callers changed.
1210         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
1211         (dom_opt_dom_walker::thread_across_edge): Remove
1212         handle_dominating_asserts argument.  All callers changed.
1213         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
1214         changes.  Remove calls to lhs_of_dominating_assert.  Other
1215         uses of handle_dominating_asserts turn into unconditional code
1216         (simplify_control_stmt_condition_1): Likewise.
1217         (simplify_control_stmt_condition): Likewise.
1218         (thread_through_normal_block, thread_across_edge): Likewise.
1219         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
1220         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
1221         object if it is not an SSA_NAME.
1222         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
1223         before calling into the VRP specific simplifiers.
1224         (identify_jump_threads): Remove handle_dominating_asserts
1225         argument.
1227 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
1229         PR fortran/79886
1230         * tree-diagnostic.c (default_tree_printer): No longer static.
1231         * tree-diagnostic.h (default_tree_printer): New prototype.
1233 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
1235         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
1236         Change ins into fmov.
1238 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1240         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
1241         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
1242         Use h_con constraint for operand 1.
1243         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
1244         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
1246 2017-03-15  Jeff Law  <law@redhat.com>
1248         PR tree-optimization/71437
1249         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
1250         (record_temporary_equivalences): Use it.
1252         PR tree-optimization/71437
1253         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
1254         tree-ssa-scopedtables.
1255         (lookup_avail_expr, build_and_record_new_cond): Likewise.
1256         (record_conditions, record_cond, vuse_eq): Likewise.
1257         (record_edge_info): Adjust to API tweak of record_conditions.
1258         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
1259         (record_temporary_equivalences, optimize_stmt): Likewise.
1260         (eliminate_redundant_computations): Likewise.
1261         (record_equivalences_from_stmt): Likewise.
1262         * tree-ssa-scopedtables.c: Include options.h and params.h.
1263         (vuse_eq): New function, moved from tree-ssa-dom.c
1264         (build_and_record_new_cond): Likewise.
1265         (record_conditions): Likewise.  Accept vector of conditions rather
1266         than edge_equivalence structure for first argument.
1267         for the first argument.
1268         (avail_exprs_stack::lookup_avail_expr): New member function, moved
1269         from tree-ssa-dom.c.
1270         (avail_exprs_stack::record_cond): Likewise.
1271         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
1272         from tree-ssa-dom.c.
1273         (avail_exprs_stack): Add new member functions lookup_avail_expr
1274         and record_cond.
1275         (record_conditions): Declare.
1277 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
1279         PR target/80017
1280         * lra-constraints.c (process_alt_operands): Increase reject for
1281         reloading an input/output operand.
1283 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1285         PR target/79038
1286         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
1287         insns to convert from signed/unsigned char/short to IEEE 128-bit
1288         floating point.
1289         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
1291 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
1293         PR target/80019
1294         * config/i386/i386.c (ix86_vector_duplicate_value): Create
1295         subreg of inner mode for values already in registers.
1297 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
1299         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
1300         iteration reg is used after the loop.
1302 2017-03-14  Martin Sebor  <msebor@redhat.com>
1304         PR tree-optimization/79800
1305         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
1306         precision in negative-positive range.
1307         (format_floating): Call non-const overload with adjusted precision.
1309 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1311         PR target/79947
1312         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
1313         -mpowerpc-gfxopt.
1315 2017-03-14  Martin Sebor  <msebor@redhat.com>
1317         PR middle-end/80020
1318         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
1319         * builtins.def (aligned_alloc): Use it.
1321         PR c/79936
1322         * Makefile.in (GTFILES): Add calls.c.
1323         * calls.c: Include "gt-calls.h".
1325 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
1327         PR rtl-optimization/79728
1328         * regs.h (struct target_regs): New field
1329         x_contains_allocatable_regs_of_mode.
1330         (contains_allocatable_regs_of_mode): New macro.
1331         * reginfo.c (init_reg_sets_1): Initialize it, and change
1332         contains_reg_of_mode so it includes global regs as well.
1333         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
1334         rather than contains_regs_of_mode.
1336 2017-03-14  Martin Liska  <mliska@suse.cz>
1338         * doc/invoke.texi: Document options that can't be combined with
1339         -fcheck-pointer-bounds.
1341 2017-03-14  Martin Liska  <mliska@suse.cz>
1343         PR middle-end/79831
1344         * doc/invoke.texi (-Wchkp): Document the option.
1346 2017-03-14  Martin Liska  <mliska@suse.cz>
1348         * Makefile.in: Install gcov-dump.
1350 2017-03-14  Martin Liska  <mliska@suse.cz>
1352         * multiple_target.c (expand_target_clones): Bail out for
1353         an invalid attribute.
1355 2017-03-14  Richard Biener  <rguenther@suse.de>
1357         * alias.c (struct alias_set_entry): Pack properly.
1358         * cfgloop.h (struct loop): Likewise.
1359         * cse.c (struct set): Likewise.
1360         * ipa-utils.c (struct searchc_env): Likewise.
1361         * loop-invariant.c (struct invariant): Likewise.
1362         * lra-remat.c (struct cand): Likewise.
1363         * recog.c (struct change_t): Likewise.
1364         * rtl.h (struct address_info): Likewise.
1365         * symbol-summary.h (function_summary): Likewise.
1366         * tree-loop-distribution.c (struct partition): Likewise.
1367         * tree-object-size.c (struct object_size_info): Likewise.
1368         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
1369         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
1370         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
1371         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
1372         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
1373         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
1374         (struct _stmt_vec_info): Likewise.
1376 2017-03-14  Martin Liska  <mliska@suse.cz>
1378         PR target/79892
1379         * multiple_target.c (create_dispatcher_calls): Check that
1380         a target can create a function dispatcher.
1382 2017-03-14  Martin Liska  <mliska@suse.cz>
1384         PR lto/66295
1385         * multiple_target.c (expand_target_clones): Drop local.local
1386         flag for default implementation.
1388 2017-03-14  Richard Biener  <rguenther@suse.de>
1390         PR tree-optimization/80030
1391         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
1393 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
1395         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
1396         gcc_fallthrough() instead of __attribute__((fallthrough));
1398 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
1400         * doc/gcc.texi: Remove "up" link to (DIR).
1401         * doc/gccint.texi: Ditto.
1403 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
1404         
1405         * doc/install.texi (Specific) <avr>: Remove reference to
1406         binutils 2.13.
1408 2017-03-13  Jeff Law  <law@redhat.com>
1410         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
1411         attribute rather than comments.
1413         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
1414         match_scratch operand is highest.
1416 2017-03-13  Martin Liska  <mliska@suse.cz>
1418         PR middle-end/78339
1419         * ipa-pure-const.c (warn_function_noreturn): If the declarations
1420         is a CHKP clone, use original declaration.
1422 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1424         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
1425         (arc_conditional_register_usage): Use a different allocation order
1426         when optimizing for size.
1427         * common/config/arc/arc-common.c (arc_option_optimization_table):
1428         Section anchors default on when optimizing for size.
1430 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1432         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
1434 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1436         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
1437         * config/arc/arc.md (cpu_facility): Add cd variant.
1438         (*movqi_insn): Add code density variant.
1439         (*movhi_insn): Likewise.
1440         (*movqi_insn): Likewise.
1441         (*addsi3_mixed): Likewise.
1442         (subsi3_insn): Likewise.
1444 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1446         * config/arc/arc.md (movsi_cond_exec): Update constraint.
1448 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1450         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
1451         expressions with MINUS and UNARY ops.
1453 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1455         PR target/79911
1456         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
1457         Rename to...
1458         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
1459         between vec_select and vector argument.
1460         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
1461         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
1462         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
1463         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
1464         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
1465         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
1467 2017-03-13  Richard Biener  <rguenther@suse.de>
1469         PR other/79991
1470         * params.def (vect-max-peeling-for-alignment): Fix typo.
1472 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1474         * doc/install.texi (Specific) <mips-*-*>: Remove description of
1475         issue that only occurred with binutils below 2.18.
1476         
1477 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1479         * doc/install.texi (Specific) <cris-axis-elf>: No longer
1480         refer to binutils 2.11/2.12 minimum.
1482 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1484         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
1485         ftp.kernel.org and simplify binutils requirement.
1487 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
1489         * doc/invoke.texi (Warning Options): Fix spelling of link-time
1490         optimization.
1491         (Optimize Options): Ditto.  Also remove redundancy.
1493 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1495         PR translation/79848
1496         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
1497         "%qs".
1498         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
1499         to G_ to avoid double translation.
1501 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1503         PR translation/79923
1504         * auto-profile.c (get_combined_location): Convert leading
1505         character of diagnostics to lower case and remove trailing period.
1506         (read_profile): Likewise for various diagnostics.
1507         * config/arm/arm.c (arm_option_override): Remove trailing period
1508         from various diagnostics.
1509         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
1510         (msp430_expand_delay_cycles): Likewise.
1512 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1514         PR target/79925
1515         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
1516         full command-line argument, rather than just "str".
1517         (aarch64_validate_march): Likewise.
1518         (aarch64_validate_mtune): Likewise.
1520 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
1522         PR rtl-optimization/78911
1523         * lra-assigns.c (must_not_spill_p): New function.
1524         (spill_for): Use it.
1526 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
1528         PR tree-optimization/79981
1529         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
1530         ATOMIC_COMPARE_EXCHANGE ifn result.
1531         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
1532         IFN_ATOMIC_COMPARE_EXCHANGE.
1534 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1536         PR driver/79875
1537         * opts.c (parse_sanitizer_options): Add missing question mark to
1538         "did you mean" message.
1540 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1542         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
1543         built-in.
1544         (VMULEUH_UNS): Likewise.
1545         (VMULOUB_UNS): Likewise.
1546         (VMULOUH_UNS): Likewise.
1547         * config/rs6000/rs6000.c (builtin_function_type): Remove
1548         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
1550 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1552         PR bootstrap/79952
1553         * read-rtl-function.c (function_reader::read_rtx_operand): Update
1554         x with result of extra_parsing_for_operand_code_0.
1555         (function_reader::extra_parsing_for_operand_code_0): Convert
1556         return type from void to rtx, returning x.  When reading
1557         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
1558         larger size containing struct block_symbol.
1560 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
1562         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
1563         -mfloat128-hardware without -m64.
1565 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
1567         PR target/79941
1568         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
1569         entries to the case statement that marks unsigned arguments to
1570         overloaded functions.
1572 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1574         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
1575         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
1577 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
1579         PR target/79907
1580         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
1581         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
1583 2017-03-10  Martin Liska  <mliska@suse.cz>
1585         PR target/65705
1586         PR target/69804
1587         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
1588         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
1589         FIELD != NULL.
1591 2017-03-10  Olivier Hainque  <hainque@adacore.com>
1593         * tree-switch-conversion (array_value_type): Start by resetting
1594         candidate type to it's main variant.
1596 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
1598         PR rtl-optimization/79909
1599         * combine.c (try_combine): Use simplify_replace_rtx on individual
1600         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
1601         of the whole CALL_INSN_FUNCTION_USAGE.
1603         PR tree-optimization/79972
1604         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
1605         get_range_info on SSA_NAMEs.  Formatting fixes.
1607 2017-03-10  Richard Biener  <rguenther@suse.de>
1608             Jakub Jelinek  <jakub@redhat.com>
1610         PR tree-optimization/77975
1611         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
1612         edge to be constant.
1613         (get_val_for): For constant x return it.  Formatting fix.
1614         (loop_niter_by_eval): Avoid pointless looping if the next iteration
1615         would use the same bases as the current one.
1617 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1619         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
1620         instead of vec_select for V1TImode.
1621         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
1622         longer needed.
1623         (VSX_LE_128): Add V1TI to this mode iterator.
1624         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
1625         (*vsx_le_perm_store_<mode>): Likewise.
1626         (pre-reload splitter for VSX stores): Likewise.
1627         (post-reload splitter for VSX stores): Likewise.
1628         (*vsx_xxpermdi2_le_<mode>): Likewise.
1629         (*vsx_lxvd2x2_le_<mode>): Likewise.
1630         (*vsx_stxvd2x2_le_<mode>): Likewise.
1632 2017-03-09  Michael Eager  <eager@eagercon.com>
1634         Correct failures with --enable-checking=yes,rtl.
1636         * config/microblaze/microblaze.c (microblaze_expand_shift):
1637         Replace GET_CODE test with CONST_INT_P and INTVAL test with
1638         test for const0_rtx.
1639         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
1640         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
1642 2017-03-09  Richard Biener  <rguenther@suse.de>
1644         PR tree-optimization/79977
1645         * graphite-scop-detection.c (scop_detection::merge_sese):
1646         Handle the case of extra exits to blocks dominating the entry.
1648 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
1650         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
1651         Document rdynamic.
1653 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
1655         PR rtl-optimization/79949
1656         * lra-constraints.c (process_alt_operands): Check memory when
1657         trying to predict a cycle.  Print about the overall increase.
1659 2017-03-09  Richard Biener  <rguenther@suse.de>
1661         PR middle-end/79971
1662         * gimple-expr.c (useless_type_conversion_p): Preserve
1663         TYPE_SATURATING for fixed-point types.
1665 2017-03-09  Richard Biener  <rguenther@suse.de>
1667         PR ipa/79970
1668         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
1669         alignment of BLKmode params.
1671 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1673         PR target/79913
1674         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
1675         (VALL_NO_V2Q): Likewise.
1676         (VDQF_DF): Delete.
1677         * config/aarch64/aarch64-simd.md
1678         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
1679         iterator.
1680         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
1681         VALL_NO_V2Q mode iterator.
1682         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
1684 2017-03-09  Martin Liska  <mliska@suse.cz>
1686         PR tree-optimization/79631
1687         * tree-chkp-opt.c (chkp_is_constant_addr): Call
1688         tree_int_cst_sign_bit just for INTEGER constants.
1690 2017-03-09  Martin Liska  <mliska@suse.cz>
1692         PR target/65705
1693         PR target/69804
1694         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
1695         sanitizers.
1697 2017-03-09  Marek Polacek  <polacek@redhat.com>
1699         PR c++/79672
1700         * tree.c (inchash::add_expr): Handle TREE_VEC.
1702 2017-03-09  Martin Liska  <mliska@suse.cz>
1704         PR ipa/79764
1705         (chkp_narrow_size_and_offset): New function.
1706         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
1707         (void chkp_parse_bit_field_ref): New function.
1708         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
1709         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
1711 2017-03-09  Martin Liska  <mliska@suse.cz>
1713         PR ipa/79761
1714         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
1715         (chkp_find_bounds_1): Remove gcc_unreachable.
1717 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
1719         PR sanitizer/79944
1720         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
1721         BUILT_IN_SYNC*, determine the access type from the size suffix and
1722         always build a MEM_REF with that type.  Handle forgotten
1723         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
1725         PR target/79932
1726         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
1727         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
1728         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
1729         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
1730         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
1731         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
1732         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
1733         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
1734         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
1735         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
1736         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
1737         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
1738         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
1739         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
1740         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
1741         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
1742         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
1743         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
1744         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
1745         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
1746         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
1747         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
1748         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
1749         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
1750         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
1751         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
1752         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
1753         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
1754         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
1755         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
1756         definitions outside of __OPTIMIZE__ guarded section.
1758         PR target/79932
1759         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
1760         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
1761         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
1762         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
1763         guarded section.
1765 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1767         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
1768         ("vfenez<mode>"): Add missing constraints.
1770 2017-03-08  Martin Sebor  <msebor@redhat.com>
1772         PR target/79928
1773         * config/nds32/nds32.c (nds32_option_override): 
1775 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
1777         PR c/79940
1778         * gimplify.c (gimplify_omp_for): Replace index var in outer
1779         taskloop statement with an artificial variable and add
1780         OMP_CLAUSE_PRIVATE clause for it.
1782 2017-03-08  Richard Biener  <rguenther@suse.de>
1784         PR tree-optimization/79955
1785         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
1786         for accesses that are completely outside of the variable.
1788 2017-03-08  Andrew Haley  <aph@redhat.com>
1790         PR tree-optimization/79943
1791         * tree-ssa-loop-split.c (compute_new_first_bound): When
1792         calculating the new upper bound, (END-BEG) should be added, not
1793         subtracted.
1795 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
1797         * config/avr/avr.md (setmemhi): Make sure match_dup
1798         operand number comes before match_scratch.
1800 2017-03-08  Richard Biener  <rguenther@suse.de>
1802         PR tree-optimization/79920
1803         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
1804         with ncopies == 1 to ...
1805         (vect_transform_slp_perm_load): ... here.  Properly compute
1806         all element loads by iterating VF times over the group.  Do
1807         not handle ncopies (computed in a broken way) in
1808         vect_create_mask_and_perm.
1810 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
1812         PR sanitizer/79904
1813         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
1814         is a uniform vector, use uniform_vector_p return value instead of
1815         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
1817 2017-03-07  Marek Polacek  <polacek@redhat.com>
1819         PR middle-end/79809
1820         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
1821         (alloca_call_type): Likewise.
1823 2017-03-07  Martin Liska  <mliska@suse.cz>
1825         * gcov.c (process_args): Put comment to correct location.
1827 2017-03-07  Martin Liska  <mliska@suse.cz>
1829         PR middle-end/68270
1830         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
1831         Use array_at_struct_end_p instead of DECL_CHAIN (field).
1832         (chkp_narrow_bounds_for_field): Likewise.
1833         (chkp_parse_array_and_component_ref): Pass one more argument to
1834         call.
1836 2017-03-07  Richard Biener  <rguenther@suse.de>
1838         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
1839         preheaders.
1841 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
1843         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
1844         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
1846 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1848         PR c/79855
1849         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
1850         to end of description.
1851         (PARAM_MAX_STORES_TO_MERGE): Likewise.
1853 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
1855         PR rtl-optimization/79901
1856         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
1857         ...
1858         (*avx512f_<code><mode>3<mask_name>): ... this.
1859         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
1860         iterator instead of VI8_AVX2_AVX512BW.
1862         PR rtl-optimization/79901
1863         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
1864         min/max expander, expand it using expand_vec_cond_expr.
1866         PR sanitizer/79897
1867         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
1868         temporary.
1870 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
1872         PR c++/79821
1873         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
1874         to void * for PCH reasons.
1875         * dwarf2out.c (output_loc_operands, output_die): Cast
1876         v.val_vec.array to unsigned char *.
1878 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
1880         PR target/77850
1881         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
1882         vector types.
1884 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
1886         PR rtl-optimization/79571
1887         * lra-constraints.c (process_alt_operands): Calculate static
1888         reject and subtract it from overall when only addresses will be
1889         reloaded.
1891 2017-03-06  Julia Koval  <julia.koval@intel.com>
1893         PR target/79793
1894         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
1895         incoming stack boundary to 128 for 64-bit targets.
1897 2017-03-06  Richard Biener  <rguenther@suse.de>
1899         PR tree-optimization/79894
1900         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
1901         to NULL after folding it.
1903 2017-03-06  Richard Biener  <rguenther@suse.de>
1905         PR tree-optimization/79824
1906         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
1907         check disabling peeling for gaps.
1909 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
1911         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
1912         attributes): Document gettimeofday.
1914 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1916         * config/s390/s390.c (s390_option_override_internal): Set
1917         PARAM_MIN_VECT_LOOP_BOUND
1919 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
1921         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
1922         * config/s390/s390.md: Likewise.
1924 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
1926         PR target/79812
1927         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
1928         (<avx2_avx512>_perm<mode>): Rename to ...
1929         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
1930         of VI8F_256_512.
1931         (<avx512>_perm<mode>_mask): Rename to ...
1932         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
1933         of VI8F_256_512.
1934         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
1935         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
1936         instead of VI8F_256_512.
1937         (avx512f_perm<mode>): New define_expand.
1938         (avx512f_perm<mode>_mask): Likewise.
1939         (avx512f_perm<mode>_1<mask_name>): New define_insn.
1940         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
1942 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
1944         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
1945         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
1946         if_then_else.
1947         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
1949 2017-03-06  Martin Liska  <mliska@suse.cz>
1951         PR sanitize/79783
1952         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
1953         when having a SSA NAME w/o VAR_DECL assigned to it.
1955 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
1957         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
1958         msa_dpsub_<su>_d): Fix MODE for vec_select.
1960 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
1962         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
1963         argument.
1964         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
1966 2017-03-06  Richard Biener  <rguenther@suse.de>
1968         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
1969         * plugin.c (register_plugin_info): Likewise.
1970         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
1972 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
1974         * config/i386/sse.md (sse_storehps, sse_storelps,
1975         avx_<castmode><avxsizesuffix>_<castmode>,
1976         avx512f_<castmode><avxsizesuffix>_<castmode>,
1977         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
1978         in condition that at least one operand is not a MEM.
1980 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
1982         PR middle-end/79805
1983         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
1984         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
1985         ECF_NOTHROW.
1986         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
1987         gimple_call_nothrow_p flag based on whether original builtin can throw.
1988         If it can, emit following stmts on the fallthrough edge.
1989         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
1990         don't create new bb if inserting just debug stmts on the edge, try to
1991         insert them on the fallthru bb or just reset debug stmts.
1993 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
1995         PR target/43763
1996         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
1997         restore recog_data (including the operand rtxes inside it) around
1998         the call to get_insn_template.
2000 2017-03-03  Martin Sebor  <msebor@redhat.com>
2002         PR tree-optimization/79699
2003         * context.c (context::~context): Free MPFR caches to avoid
2004         a memory leak on program exit.
2006 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2008         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
2009         Use wide_int::ulow () instead of .elt (0).
2011 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
2013         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
2014         (*pushxf): Limit oF constraint to 32bit targets and add oC
2015         constraint for 64bit targets.
2016         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
2017         (*pushdf): Change rmF constraint to rmC.
2019 2017-03-03  Martin Liska  <mliska@suse.cz>
2021         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
2022         Remove unused variable.
2024 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
2026         PR target/79807
2027         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
2028         is a memory operand, increase num_memory.
2029         (ix86_expand_args_builtin): Likewise.
2031 2017-03-03  Jan Hubicka  <jh@suse.cz>
2033         PR lto/79760
2034         * ipa-devirt.c (maybe_record_node): Properly handle
2035         __cxa_pure_virtual visibility.
2037 2017-03-03  Martin Liska  <mliska@suse.cz>
2039         PR tree-optimization/79803
2040         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
2041         assert.
2042         (pass_loop_prefetch::execute): Disabled optimization if an
2043         assumption about L1 cache size is not met.
2045 2017-03-03  Martin Liska  <mliska@suse.cz>
2047         PR rtl-optimization/79574
2048         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
2049         (hash_scan_set): Likewise.
2050         (dump_hash_table): Likewise.
2051         (hoist_code): Likewise.
2053 2017-03-03  Richard Biener  <rguenther@suse.de>
2055         * fixed-value.c (fixed_from_string): Restore use of elt (1)
2056         in place of uhigh ().
2057         (fixed_convert_from_real): Likewise.
2059 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
2061         PR target/79514
2062         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
2064 2017-03-03  Richard Biener  <rguenther@suse.de>
2066         PR middle-end/79818
2067         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
2068         TYPE_OVERFLOW_UNDEFINED check.
2070 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2072         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
2073         numbers.
2074         (vector_ae_<mode>_p): Likewise.
2075         (vector_nez_<mode>_p): Likewise.
2076         (vector_ne_v2di_p): Likewise.
2077         (vector_ae_v2di_p): Likewise.
2078         (vector_ne_<mode>_p): Likewise.
2079         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
2080         numbers.
2081         (vsx_tsqrt<mode>2_fe): Likewise.
2083 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
2085         PR target/79514
2086         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
2088 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
2090         PR rtl-optimization/79780
2091         * cprop.c (one_cprop_pass): When second and further conditional trap
2092         in a single basic block is turned into an unconditional trap, turn it
2093         into a deleted note to avoid RTL verification failures.
2095 2017-03-02  Richard Biener  <rguenther@suse.de>
2097         * fold-const.c (const_binop): Use ulow () instead of elt (0).
2099 2017-03-02  Richard Biener  <rguenther@suse.de>
2101         PR tree-optimization/79345
2102         PR c++/42000
2103         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
2104         param and abort the walk, returning -1 if it is hit.
2105         (walk_aliased_vdefs): Take a limit param and pass it on.
2106         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
2107         defaulting to 0 and return a signed int.
2108         * tree-ssa-uninit.c (struct check_defs_data): New struct.
2109         (check_defs): New helper.
2110         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
2111         about uninitialized memory.
2112         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
2113         bogus uninitialized warning.
2114         (fixed_convert_from_real): Likewise.
2116 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
2118         PR tree-optimization/66768
2119         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
2120         iv_use if base object can't be determined.
2122 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
2124         PR tree-optimization/79345
2125         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
2126         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
2127         (get_pattern_stats): Initialize it.
2128         * genemit.c (gen_expand): Verify match_scratch numbers come after
2129         match_operand/match_dup numbers.
2130         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
2131         match_scratch numbers.
2132         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
2133         Likewise.
2134         * config/s390/s390.md (trunctdsd2): Likewise.
2136 2017-03-02  Richard Biener  <rguenther@suse.de>
2138         * wide-int.h (wide_int_storage::operator=): Implement in terms
2139         of wi::copy.
2141 2017-03-02  Richard Biener  <rguenther@suse.de>
2143         PR tree-optimization/79777
2144         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
2145         the to insert expression to sth existing.
2147 2017-03-01  Martin Sebor  <msebor@redhat.com>
2149         PR middle-end/79692
2150         * gimple-ssa-sprintf.c
2151         (directive::known_width_and_precision): New function.
2152         (format_integer): Use it.
2153         (get_mpfr_format_length): Consider the full range of precision
2154         when computing %g output with the # flag.  Set the likely byte
2155         count to 3 rather than 1 when precision is indeterminate.
2156         (format_floating): Correct the lower bound of precision.
2158 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2160         * doc/invoke.texi: Document default code model for 64-bit Linux.
2162 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2164         PR target/79752
2165         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
2166         udiv rather than div since input pattern is unsigned.
2168 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
2170         * config/i386/i386.c (print_reg): Warn for values of
2171         unsupported size in integer register.
2173 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2175         PR target/79439
2176         * config/rs6000/predicates.md (current_file_function_operand): Do
2177         not allow self calls to be local if the function is replaceable.
2179 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2181         PR target/79395
2182         * config/rs6000/altivec.h (vec_ctz and others): Change the
2183         preprocessor macro that controls conditional compilation from
2184         _ARCH_PWR9 to __POWER9_VECTOR__.
2185         (vec_all_ne): Change parameterization of __altivec_scalar_pred
2186         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
2187         control (instead of _ARCH_PWR9 control) so that template
2188         definition uses power9-specific function.
2189         (vec_any_eq): Likewise.
2190         (vec_all_ne): Change macro definition to use a power9-specific
2191         expansion under #ifdef __POWER9_VECTOR__ control (instead of
2192         _ARCH_PWR9 control).
2193         (vec_any_eq) Likewise.
2194         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
2195         expansion for CMPNEF to remove support for xvcmpnesp instruction.
2196         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
2197         support for xvcmpnedp instruction.
2198         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
2199         macro expansion so that Power9 implementation of vec_all_ne does
2200         not use the AltiVec predicate framework.
2201         (VCMPNEH_P): Likewise.
2202         (VCMPNEW_P): Likewise.
2203         (VCMPNED_P): Likewise.
2204         (VCMPNEFP_P): Likewise.
2205         (VCMPNEDP_P): Likewise.
2206         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
2207         implementation of vec_any_eq to not use AltiVec predicate
2208         framework.
2209         (VCMPAEH_P): Likewise.
2210         (VCMPAEW_P): Likewise.
2211         (VCMPAED_P): Likewise.
2212         (VCMPAEFP_P): Likewise.
2213         (VCMPAEDP_P): Likewise.
2214         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
2215         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
2216         not use the AltiVec predicate framework.
2217         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
2218         of vec_any_eq to not use AltiVec predicate framework.
2219         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
2220         support for predefined __POWER9_VECTOR__ macro to indicate that
2221         Power9 instruction selection is enabled.
2222         (altivec_overloaded_builtins): Remove extraneous
2223         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
2224         function argument types RS6000_BTI_bool_V16QI and
2225         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
2226         entry for overloaded function argument types RS6000_BTI_bool_V4SI
2227         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
2228         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
2229         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
2230         Power9 for implementations of vec_cmpne.  Change the signature for
2231         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
2232         (representing vec_all_ne) to remove the previously described first
2233         argument of type RS6000_BTI_INTSI, as this was an artifact of
2234         reliance on the AltiVec predicate framework, which is no longer
2235         used in the implementation of these functions.  Add
2236         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
2237         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
2238         since, unlike the AltiVec predicate framework implementation, we
2239         do not share function descriptors between vec_alle and vec_anyeq.
2240         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
2241         set of modes that receive special treatment even when
2242         TARGET_P9_VECTOR is true.  The special treatment emits code that
2243         does not depend on Power9 instructions.
2244         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
2245         define_expand to not rely on AltiVec predicate framework.
2246         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
2247         function.
2248         (vector_ne_v2di_p): Change this define_expand to not rely on
2249         AltiVec predicate framework.
2250         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
2251         function.
2252         (vector_ne_<mode>_p): Change this define_expand to not rely on
2253         AltiVec predicate framework.
2254         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
2255         function.
2256         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
2257         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
2258         define_insn pattern.
2259         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
2260         define_insn pattern because the xvcmpne<VSs>. instruction is not
2261         supported.
2262         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
2263         instruction is not supported.
2265 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2267         * config/nvptx/nvptx.c: Include intl.h.
2269 2017-03-01  Martin Jambor  <mjambor@suse.cz>
2271         PR lto/78140
2272         * ipa-prop.h (ipa_bits): Removed field known.
2273         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
2274         to pointers.  Adjusted their comments to warn about their sharing.
2275         (ipcp_transformation_summary): Change bits to a vector of pointers.
2276         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
2277         (ipa_get_ipa_bits_for_value): Declare.
2278         * tree-vrp.h (value_range): Mark as GTY((for_user)).
2279         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
2280         (ipa_bits_hash_table): Likewise.
2281         (ipa_vr_ggc_hash_traits): Likewise.
2282         (ipa_vr_hash_table): Likewise.
2283         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
2284         being pointers and vr_known being removed.
2285         (ipa_set_jf_unknown): Likewise.
2286         (ipa_get_ipa_bits_for_value): New function.
2287         (ipa_set_jfunc_bits): Likewise.
2288         (ipa_get_value_range): New overloaded functions.
2289         (ipa_set_jfunc_vr): Likewise.
2290         (ipa_compute_jump_functions_for_edge): Use the above functions to
2291         construct bits and vr parts of jump functions.
2292         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
2293         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
2294         exist.
2295         (ipcp_grow_transformations_if_necessary): Also allocate
2296         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
2297         exist.
2298         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
2299         them.  Fix too long lines.
2300         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
2301         vr_known being removed.
2302         (ipa_read_jump_function): Use new setter functions to construct bits
2303         and vr parts of jump functions or set them to NULL.
2304         (write_ipcp_transformation_info): Adjust for bits being pointers.
2305         (read_ipcp_transformation_info): Likewise.
2306         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
2307         space.
2308         Include gt-ipa-prop.h.
2309         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
2310         being pointers.
2311         (ipcp_store_bits_results): Likewise.
2312         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
2313         Do not write to existing jump functions but use a temporary instead.
2315 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2317         PR c++/79681
2318         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
2319         attempt to use its first operand as BIT_FIELD_REF base.
2321 2017-03-01  Richard Biener  <rguenther@suse.de>
2323         PR middle-end/79721
2324         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
2325         interpolating formula in wrapping arithmetic.
2326         (chrec_apply): Convert chrec_evaluate return value to wanted type.
2328 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2330         PR tree-optimization/79734
2331         * tree-vect-generic.c (expand_vector_condition): Optimize
2332         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
2333         Handle VEC_COND_EXPR where comparison has different inner width from
2334         type's inner width.
2336 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
2338         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
2339         markup, and similar issues.  Remove @opindex entries for things
2340         that aren't options.  Add missing -mmpy-option entries.
2342 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2344         PR tree-optimization/79737
2345         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
2346         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
2347         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
2348         instead of byte_size.  Formatting fix.
2349         (shift_bytes_in_array_right): Formatting fix.
2351 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
2353         PR target/79749
2354         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
2355         condition on optimize for the leaf function test.
2357 2017-02-28  Martin Liska  <mliska@suse.cz>
2359         PR lto/79625
2360         * read-rtl-function.c (function_reader::handle_unknown_directive):
2361         Bail out when one uses -flto.
2363 2017-02-28  Martin Liska  <mliska@suse.cz>
2365         * common.opt: Replace space with tabular for options of <number>
2366         type.
2367         * config/i386/i386.opt: Show <number> value for
2368         -mlarge-data-threshold.
2369         * opts.c (print_filtered_help): Do not display number in hexadecimal
2370         format.
2372 2017-02-28  Martin Liska  <mliska@suse.cz>
2374         * common.opt: Fix --help=option -Q for options which are of
2375         an enum type.
2377 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
2379         * config/i386/i386.c (print_reg): Error out for values
2380         of 8-bit size in invalid integer register.
2382 2017-02-28  Martin Sebor  <msebor@redhat.com>
2384         PR tree-optimization/79691
2385         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
2387 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2389         PR target/79729
2390         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
2391         gcc_unreachable with output_operand_lossage.
2393 2017-02-28  Richard Biener  <rguenther@suse.de>
2395         PR tree-optimization/79740
2396         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
2397         inserts.
2398         (visit_nary_op): Insert the nary into the hashtable if we
2399         pattern-matched sth.
2400         * tree-ssa-pre.c (eliminate_insert): Robustify.
2402 2017-02-28  Richard Biener  <rguenther@suse.de>
2404         PR middle-end/79731
2405         * fold-const.c (decode_field_reference): Reject out-of-bound
2406         accesses.
2408 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2410         * config/i386/i386.c: Include intl.h.
2411         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
2412         instead of just cond ? "..." : "...".
2413         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
2414         * coverage.c (read_counts_file): Likewise.
2415         * omp-offload.c: Include intl.h.
2416         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
2417         of just cond ? "..." : "...".
2418         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
2419         of just cond ? "..." : "...".
2421 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
2423         PR target/79742
2424         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
2425         entry, if present.
2426         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
2427         'tune for' CPU name.
2428         * config/arm/arm-cpu-data.h: Regenerated.
2430 2017-02-28  Richard Biener  <rguenther@suse.de>
2432         PR tree-optimization/79732
2433         * tree-inline.c (expand_call_inline): Do not shadow var.
2435 2017-02-28  Richard Biener  <rguenther@suse.de>
2437         PR tree-optimization/79723
2438         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
2439         address-space properly.
2441 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
2443         * doc/optinfo.texi (Optimization groups): Fix option used for
2444         OPTGROUP_ALL.
2445         * doc/invoke.texi (-fopt-info): Document "omp".
2446         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
2447         (OPTGROUP_ALL): Add OPTGROUP_OMP.
2448         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
2449         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
2450         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
2452         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
2453         all users.
2454         * dumpfile.c (optgroup_options): Instead of "openmp", associate
2455         OPTGROUP_OMP with "omp".
2457 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
2459         PR target/79544
2460         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
2461         for arithmetic shift of unsigned V2DI.
2463 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
2465         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
2466         arc/linux.h headers.
2467         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
2468         (LINK_SPEC): Likewise.
2469         (ARC_TLS_EXTRA_START_SPEC): Likewise.
2470         (EXTRA_SPECS): Likewise.
2471         (STARTFILE_SPEC): Likewise.
2472         (ENDFILE_SPEC): Likewise.
2473         (LIB_SPEC): Likewise.
2474         (TARGET_SDATA_DEFAULT): Likewise.
2475         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
2476         (MULTILIB_DEFAULTS): Likewise.
2477         (DWARF2_UNWIND_INFO): Likewise.
2478         * config/arc/big.h: New file.
2479         * config/arc/elf.h: Likewise.
2480         * config/arc/linux.h: Likewise.
2481         * config/arc/t-uClibc: Remove.
2483 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
2485         PR tree-optimization/77536
2486         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
2487         (tree_transform_and_unroll_loop): Use above function to compute the
2488         estimated niter of unrolled loop and use it when scaling profile.
2489         Also use count info rather than frequency if it's non-zero.
2490         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
2491         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
2492         (vect_transform_loop): Call above function.
2494 2017-02-27  Richard Biener  <rguenther@suse.de>
2496         PR tree-optimization/45397
2497         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
2498         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
2499         (visit_nary_op): Add pattern matching for CSEing sign-changed
2500         or truncated operations with wider ones.
2502 2017-02-27  Richard Biener  <rguenther@suse.de>
2504         PR tree-optimization/79690
2505         * tree-vect-stmts.c (vectorizable_store): Use vector type
2506         built from the DR with address-space.
2508 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
2510         * doc/invoke.texi (Optimize Options): Refine the description
2511         of asan-use-after-return.
2513 2017-02-25  Alan Modra  <amodra@gmail.com>
2515         PR rtl-optimization/79584
2516         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
2517         base, not ad->base_term, the reg within base.  Remove assertion
2518         that ad->base == ad->base_term.  Replace gen_int_mode using
2519         bogus mode with const0_rtx.
2521 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
2523         PR middle-end/79396
2524         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
2525         FMA_EXPR like tcc_binary or tcc_unary.
2527         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
2529         PR debug/77589
2530         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
2531         bitfield.
2532         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
2533         (output_loc_operands): Handle DW_OP_call_ref and
2534         DW_OP_GNU_variable_value.
2535         (struct variable_value_struct): New type.
2536         (struct variable_value_hasher): Likewise.
2537         (variable_value_hash): New variable.
2538         (string_types): Remove.
2539         (copy_loc_descr): New function.
2540         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
2541         (prepend_loc_descr_to_each): New function.
2542         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
2543         instead of add_loc_descr_to_each if the first argument is single
2544         location list and the second has multiple.
2545         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
2546         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
2547         when looking for variable value which doesn't have other location info.
2548         (loc_list_from_tree): Formatting fix.
2549         (gen_array_type_die): Simplify DW_AT_string_length handling.
2550         (adjust_string_types): Remove.
2551         (gen_subprogram_die): Don't call adjust_string_types nor test/set
2552         string_types.  Call resolve_variable_values.
2553         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
2554         (resolve_addr_in_expr): Likewise.  Add A argument.
2555         (copy_deref_exprloc): Remove deref argument.  Adjust for the
2556         original expression being DW_OP_GNU_variable_value with optionally
2557         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
2558         optionally after it.
2559         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
2560         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
2561         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
2562         (variable_value_hasher::hash, variable_value_hasher::equal): New
2563         methods.
2564         (resolve_variable_value_in_expr, resolve_variable_value,
2565         resolve_variable_values, note_variable_value_in_expr,
2566         note_variable_value): New functions.
2567         (dwarf2out_early_finish): Call note_variable_value on all toplevel
2568         DIEs.
2570 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
2572         PR c/79677
2573         * opts.h (handle_generated_option): Add GENERATED_P argument.
2574         * opts-common.c (handle_option): Adjust function comment.
2575         (handle_generated_option): Add GENERATED_P argument, pass it to
2576         handle_option.
2577         (control_warning_option): Pass false to handle_generated_option
2578         GENERATED_P.
2579         * opts.c (maybe_default_option): Pass true to handle_generated_option
2580         GENERATED_P.
2581         * optc-gen.awk: Likewise.
2583 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2585         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
2586         a REG, look at the REG it is a SUBREG of.
2587         (splitter for cmpeqsi_t): Ditto.
2589 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2591         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
2592         the special USEs with the pattern of the insn, not the insn itself.
2594 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
2596         PR target/79473
2597         * doc/invoke.texi: Document -mload-store-pairs.
2599 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2600             Sandra Loosemore  <sandra@codesourcery.com>
2602         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
2603         argument isn't a CONST_INT.
2604         (nios2_alternate_compare_const): Assert op is a CONST_INT.
2605         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
2606         (nios2_validate_compare): Bypass alternate compare logic if *op2
2607         is not a CONST_INT.
2608         (ldstwm_operation_p): Return false if first_base is not a REG or
2609         if first_offset is not a CONST_INT.
2611 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2613         * config/cris/cris.md: Use correct operand in a define_peephole2.
2615 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2617         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
2619 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2621         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
2622         this_insn if it is an INSN or JUMP_INSN.
2623         (force_offsettable): Look at base, not at addr.
2624         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
2625         on things that aren't necessarily CONST_INTs.
2627 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
2629         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
2630         -mfpmath=sse is the default also for x86-32 targets with SSE2
2631         instruction set when @option{-ffast-math} is enabled
2633 2017-02-24  Jeff Law  <law@redhat.com>
2635         PR rtl-optimizatoin/79286
2636         * ira.c (update_equiv_regs): Drop may_trap_p exception to
2637         dominance test.
2639 2017-02-24  Richard Biener  <rguenther@suse.de>
2641         PR tree-optimization/79389
2642         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
2643         debug insns.
2645 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
2647         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
2648         function comment to reflect reality.
2649         (loop_exits_before_overflow): Fix typo in function description.
2651 2017-02-24  Richard Biener  <rguenther@suse.de>
2653         PR tree-optimization/79389
2654         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
2655         properly that a threading opportunity exists.  Detect conditional
2656         copy/constant propagation opportunities.
2658 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
2660         * config/visium/visium.md (type): Add trap.
2661         (b): New mode attribute.
2662         (*btst): Rename into...
2663         (*btst<mode>): ...this and adjust.
2664         (*cbranchsi4_btst_insn): Rename into...
2665         (*cbranch<mode>4_btst_insn): ...this and adjust.
2666         (trap): New define_insn.
2668 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
2670         PR tree-optimization/79389
2671         * ifcvt.c (struct noce_if_info): Add rev_cond field.
2672         (noce_reversed_cond_code): New function.
2673         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
2674         reversed_comparison_code.  Formatting fix.
2675         (noce_try_store_flag): Test rev_cond != NULL in addition to
2676         reversed_comparison_code.
2677         (noce_try_store_flag_constants): Likewise.
2678         (noce_try_store_flag_mask): Likewise.
2679         (noce_try_addcc): Use rev_cond if non-NULL instead of
2680         reversed_comparison_code.
2681         (noce_try_cmove_arith): Likewise.  Formatting fixes.
2682         (noce_try_minmax, noce_try_abs): Clear rev_cond.
2683         (noce_find_if_block): Initialize rev_cond.
2684         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
2685         instead of false as last argument never attempt to reverse it
2686         afterwards.
2688 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
2690         PR tree-optimization/79663
2691         * tree-predcom.c (combine_chains): Process refs in reverse order
2692         only for ZERO length chains, and add explaining comment.
2694 2017-02-23  Jeff Law  <law@redhat.com>
2696         PR tree-optimization/79578
2697         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
2698         in call to operand_equal_p.
2700 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
2702         PR target/71017
2703         * config/i386/cpuid.h: Fix another undefined behavior.
2705 2017-02-23  Richard Biener  <rguenther@suse.de>
2707         PR tree-optimization/79683
2708         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
2709         vector types for data-refs.
2711 2017-02-23  Martin Liska  <mliska@suse.cz>
2713         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
2715 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
2717         PR middle-end/79665
2718         * internal-fn.c (get_range_pos_neg): Moved to ...
2719         * tree.c (get_range_pos_neg): ... here.  No longer static.
2720         * tree.h (get_range_pos_neg): New prototype.
2721         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
2722         are known to be in between 0 and signed maximum inclusive, try to
2723         expand both unsigned and signed divmod and use the cheaper one from
2724         those.
2726 2017-02-22  Jeff Law  <law@redhat.com>
2728         PR tree-optimization/79578
2729         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
2730         to compare base operands.
2732 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
2734         PR target/79211
2735         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
2736         gpc_reg_operand instead of fpr_reg_operand.
2738 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
2740         * config/mips/mips.c (mips_return_in_memory): Force FP
2741         vector types to be returned in memory for o32 ABI.
2743 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
2745         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
2746         instead of DW_TAG_member for static data member declarations and don't
2747         set no_linkage_name for static inline data members.
2748         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
2749         to DW_TAG_member.
2751 2017-02-22  Martin Liska  <mliska@suse.cz>
2753         * doc/invoke.texi: Replace inequality signs with square brackets
2754         for -Wnormalized.
2756 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2758         PR tree-optimization/68644
2759         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
2761 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
2763         PR target/78660
2764         * lra-constraints.c (simplify_operand_subreg): Handle
2765         WORD_REGISTER_OPERATIONS targets.
2767 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
2769         PR target/70465
2770         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
2771         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
2772         elimination by swapping fld*.
2774 2017-02-22  Richard Biener  <rguenther@suse.de>
2776         PR tree-optimization/79673
2777         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
2778         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
2779         irrelevant address-space qualifiers and avoiding a
2780         ADDR_SPACE_CONVERT_EXPR from fold_convert.
2782 2017-02-22  Richard Biener  <rguenther@suse.de>
2784         PR tree-optimization/79666
2785         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
2786         to not symbolically negate if that may introduce undefined
2787         overflow.
2789 2017-02-22  Martin Liska  <mliska@suse.cz>
2791         PR lto/79587
2792         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
2793         * data-streamer-out.c (streamer_write_gcov_count_stream):
2794         Likewise.
2795         * value-prof.c (stream_out_histogram_value): Make assert more
2796         precise based on type of counter.
2798 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
2800         PR target/79593
2801         * config/i386/i386.md (standard_x87sse_constant_load splitter):
2802         Use nonimmediate_operand instead of memory_operand for operand 1.
2803         (float-extend standard_x87sse_constant_load splitter): Ditto.
2805 2017-02-21 Jeff Law  <law@redhat.com>
2807         PR tree-optimization/79621
2808         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
2809         blocks with edges to themselves.
2811 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
2813         PR target/79633
2814         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
2815         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
2816         Use gimple_call_builtin_p.
2818         PR target/79570
2819         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
2820         on temporarily removed DEBUG_INSNs.
2822         PR tree-optimization/79649
2823         * tree-loop-distribution.c (classify_partition): Give up on
2824         non-generic address space loads/stores.
2826 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
2828         * doc/loop.texi (Loop manipulation): Remove nonexistent
2829         tree_ssa_loop_version from the documentation.
2830         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
2832 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
2834         PR target/79494
2835         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
2836         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
2837         * config/rs6000/rs6000.c: Include except.h.
2838         (rs6000_expand_split_stack_prologue): Call
2839         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
2841 2017-02-21  Martin Jambor  <mjambor@suse.cz>
2843         PR lto/79579
2844         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
2845         have been analyzed.
2847 2017-02-21  Martin Jambor  <mjambor@suse.cz>
2849         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
2850         for backward compatibility only.
2851         * doc/invoke.texi (Option Summary): Remove all references to
2852         -fipa-cp-alignment.
2854 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
2856         PR target/78660
2857         Revert:
2858         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
2860         * lra-constraints.c (curr_insn_transform): Handle
2861         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
2863 2017-02-21  Martin Liska  <mliska@suse.cz>
2865         * config/i386/i386.opt: Replace -masm-dialect with -masm.
2867 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
2869         PR translation/79638
2870         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
2872 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
2874         PR ada/67205
2875         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
2876         (arm_function_ok_for_sibcall): Return false for an indirect call by
2877         descriptor if all the argument registers are used.
2878         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
2879         alignment of the function.
2881 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
2883         PR tree-optimization/61441
2884         * simplify-rtx.c (simplify_const_unary_operation): For
2885         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
2886         the sNaN unmodified.
2888 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2890         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
2891         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
2892         instead of SYSTEM_HEADER_DIR.
2894 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
2895             Martin LiÅ¡ka  <mliska@suse.cz>
2897         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
2898         Fix typos and grammar, use active voice, and clarify.
2900 2017-02-20  Marek Polacek  <polacek@redhat.com>
2902         PR middle-end/79537
2903         * gimplify.c (gimplify_expr): Handle unused *&&L;.
2905         PR sanitizer/79558
2906         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
2908 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
2910         PR target/79568
2911         * config/i386/i386.c (ix86_expand_builtin): Handle
2912         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
2913         ix86_builtins_isa[fcode].isa as a requirement of those
2914         flags and any other flag in the bitmask.
2915         (ix86_init_mmx_sse_builtins): Use 0 instead of
2916         ~OPTION_MASK_ISA_64BIT as mask.
2917         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
2918         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
2919         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
2920         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
2922 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
2924         PR target/78012
2925         * lra-constraints.c (split_reg): Check requested split mode
2926         is supported by the register.
2928 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
2930         * lra-constraints.c (simplify_operand_subreg): Remove early
2931         return false.
2933 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
2935         PR target/78660
2936         * lra-constraints.c (curr_insn_transform): Tighten condition
2937         for converting SUBREG reloads from OP_OUT to OP_INOUT.
2939 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
2941         PR target/78660
2942         * lra-constraints.c (curr_insn_transform): Handle
2943         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
2945 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
2947         Revert:
2948         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2950         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2952 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
2954         PR c++/69523
2955         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
2956         description.
2958 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2960         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
2961         for FMA_EXPR.
2963 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
2965         * final.c (last_columnnum, override_columnnum): New variables.
2966         (final_start_function): Set last_columnnum, pass it to begin_prologue
2967         hook and pass 0 to dwarf2out_begin_prologue.
2968         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
2969         to source_line debug hook.
2970         (notice_source_line): Compute last_columnnum and for debug_column_info
2971         return true on column changes.
2972         * debug.h (struct gcc_debug_hooks): Add column argument to
2973         source_line and begin_prologue hooks.
2974         (debug_nothing_int_charstar_int_bool): Remove prototype.
2975         (debug_nothing_int_int_charstar,
2976         debug_nothing_int_int_charstar_int_bool): New prototypes.
2977         (dwarf2out_begin_prologue): Add column argument.
2978         * debug.c (do_nothing_debug_hooks): Adjust source_line and
2979         begin_prologue hooks.
2980         (debug_nothing_int_charstar_int_bool): Remove.
2981         (debug_nothing_int_int_charstar,
2982         debug_nothing_int_int_charstar_int_bool): New functions.
2983         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
2984         through to dwarf2out_source_line.
2985         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
2986         (dwarf2out_source_line): Add column argument, emit it if requested.
2987         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
2988         arguments.
2989         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
2990         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
2991         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
2992         through to dwarf2out_begin_prologue.
2993         (vmsdbgout_source_line): Add column argument, pass it through to
2994         dwarf2out_source_line.
2995         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
2996         dbxout_source_line caller.
2997         (dbxout_source_line): Add column argument.
2999         * common.opt (gno-column-info, gcolumn-info): New options.
3000         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
3001         (check_die): Also test for multiple DW_AT_decl_column attributes.
3002         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
3003         DW_AT_decl_column if requested.
3004         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
3005         if requested.
3006         (gen_variable_die): Likewise.
3007         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
3008         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
3010         PR target/79569
3011         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
3012         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
3013         (ix86_handle_option): Handle OPT_m3dnowa.
3014         * doc/invoke.texi (-m3dnowa): Document.
3015         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
3016         -m3dnowa instead of -m3dnow -march=athlon.
3018         PR target/79559
3019         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
3020         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
3022 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3024         PR target/79261
3025         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
3026         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
3027         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
3028         generator for vsx_xxpermdi_<mode>_be.
3029         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
3030         force big-endian semantics.
3031         (vsx_xxpermdi_<mode>_be): New define_expand with same
3032         implementation as previous version of vsx_xxpermdi_<mode>.
3034 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
3036         PR tree-optimization/79327
3037         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
3038         variable, its initialization and use.
3040 2017-02-17  Julia Koval  <julia.koval@intel.com>
3042         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
3043         (OPTION_MASK_ISA_PKU_UNSET): New.
3044         (ix86_handle_option): Handle -mrdpid.
3045         * config/i386/cpuid.h (bit_RDPID): New.
3046         * config/i386/driver-i386.c (host_detect_local_cpu):
3047         Detect RDPID feature.
3048         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
3049         * config/i386/i386-c.c (ix86_target_macros_internal):
3050         Handle RDPID flag.
3051         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
3052         (ix86_valid_target_attribute_inner_p): Add "rdpid".
3053         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
3054         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
3055         * config/i386/i386.md (define_insn "rdpid"): New.
3056         * config/i386/i386.opt Add -mrdpid.
3057         * config/i386/immintrin.h (_rdpid_u32): New.
3059 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
3061         PR rtl-optimization/79541
3062         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
3063         instead of transforming it into USE.
3065 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
3067         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
3068         If HONOR_SNANS (SFmode) force the input to a register.
3069         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
3070         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
3071         an frsp or similar insn.
3073 2017-02-17  Martin Liska  <mliska@suse.cz>
3075         PR rtl-optimization/79577
3076         * params.def (selsched-max-sched-times): Increase minimum to 1.
3078 2017-02-17  Martin Liska  <mliska@suse.cz>
3080         PR rtl-optimization/79574
3081         * gcse.c (want_to_gcse_p): Prevent integer overflow.
3083 2017-02-17  Martin Liska  <mliska@suse.cz>
3085         PR tree-optimization/79529
3086         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
3087         ssa_defined_default_def_p to handle cases which are implicitly
3088         defined.
3089         * tree-ssa.c (ssa_defined_default_def_p): New function.
3090         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
3091         which are implicitly defined.
3092         * tree-ssa.h (ssa_defined_default_def_p): Declare.
3094 2017-02-17  Richard Biener  <rguenther@suse.de>
3096         PR middle-end/79576
3097         * params.def (max-ssa-name-query-depth): Limit to 10.
3099 2017-02-17  Richard Biener  <rguenther@suse.de>
3101         PR tree-optimization/79552
3102         * tree-ssa-structalias.c (visit_loadstore): Properly verify
3103         default defs.
3105 2017-02-17  Richard Biener  <rguenther@suse.de>
3107         PR bootstrap/79567
3108         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
3110 2017-02-17  Marek Polacek  <polacek@redhat.com>
3112         PR middle-end/79536
3113         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
3114         (fold_negate_expr): New wrapper.
3116 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
3118         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
3119         Correct terminology and de-emphasize pre-standard behavior.
3121 2017-02-16  Alan Modra  <amodra@gmail.com>
3123         PR rtl-optimization/79286
3124         * ira.c (def_dominates_uses): New function.
3125         (update_equiv_regs): Don't create an equivalence for insns that
3126         may trap where the register def does not dominate the use.
3128 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
3130         PR rtl-optimization/78127
3131         * lra.c (lra): Call lra_eliminate before finish the loop after
3132         lra_constraint.
3134 2017-02-16  Richard Biener  <rguenther@suse.de>
3136         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
3137         isl/isl_val.h.
3138         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
3139         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
3140         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
3141         (isl_val_int_from_wi): New function.
3142         (extract_affine_gmp): Rename to ...
3143         (extract_affine_wi): ... this, take a widest_int.
3144         (extract_affine_int): Just wrap extract_affine_wi.
3145         (add_param_constraints): Use isl_val_int_from_wi.
3146         (add_loop_constraints): Likewise, and extract_affine_wi.
3148 2017-02-15 Jeff Law  <law@redhat.com>
3150         PR middle-end/79521
3151         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
3152         ira_init_register_move_cost_if_necessary.
3154 2017-02-15  Martin Sebor  <msebor@redhat.com>
3156         PR middle-end/32003
3157         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
3158         removed in a prior commit.
3160 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
3162         PR tree-optimization/79347
3163         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
3164         counters during peeling.
3166 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
3168         * Makefile.in (site.exp): Remove "set ISLVER".
3170 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
3172         PR target/79487
3173         * real.c (real_from_integer): Call real_convert even for decimal.
3175 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3177         PR target/79421
3178         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
3180 2017-02-14  Andrew Pinski  <apinski@cavium.com>
3182         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
3183         cores and change the partno/implementer to be correct.
3184         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
3185         the 'B" as the implementer.
3186         * config/aarch64/aarch64-tune.md: Regenerate.
3188 2017-02-14  Carl Love  <cel@us.ibm.com>
3190         * config/rs6000/rs6000.c: Add case statement entry to make the
3191         xvcvuxdsp built-in argument unsigned.
3192         * config/rs6000/vsx.md: Fix the source and return operand types so they
3193         match the instruction definitions from the ISA document.  Fix typo
3194         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
3195         statement.
3197 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
3199         PR target/79282
3200         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
3201         member early_clobber_alts.
3202         * lra-lives.c (reg_early_clobber_p): New.
3203         (process_bb_lives): Use it.
3204         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
3205         (debug_operand_data): Initialize early_clobber_alts.
3206         (setup_operand_alternative): Set up early_clobber_alts.
3207         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
3208         alternatives to new_insn_reg.
3209         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
3210         it.
3211         (lra_update_insn_regno_info): Pass the new arg.
3213 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
3215         PR middle-end/79505
3216         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
3217         (new_oacc_loop_raw): Don't clear already cleared fields.
3219         PR target/79481
3220         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
3221         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
3222         _mm512_prefetch_i64gather_ps): New inline functions and macros.
3224 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
3226         PR target/79495
3227         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
3229 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
3231         PR target/79498
3232         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
3233         the extra instruction to the right place to store 128-bit constant
3234         when needed.
3236 2017-02-14  Martin Sebor  <msebor@redhat.com>
3238         PR middle-end/79448
3239         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
3240           warning for strings of unknown length.
3242 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
3244         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
3246 2017-02-14 Jeff Law  <law@redhat.com>
3248         PR target/79404
3249         * ira-costs.c (scan_one_insn): Initialize register move costs
3250         for pseudos seen in USE/CLOBBER insns.
3252         PR tree-optimization/79095
3253         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
3254         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
3255         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
3256         if the operands are known to be not equal, then the resulting range
3257         is ~[0,0].
3258         (intersect_ranges): If the new range is ~[0,0] and the old range is
3259         wide, then prefer ~[0,0].
3260         * tree-vrp.c (overflow_comparison_p_1): New function.
3261         (overflow_comparison_p): New function.
3262         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
3263         if NAME is used in an overflow test.
3264         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
3265         overflow check that can be expressed as an equality test, then adjust
3266         ops to be that equality test.
3268 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3270         * config/s390/s390-builtin-types.def: Remove flags argument.
3271         * config/s390/s390.c (s390_init_builtins): Likewise.
3273 2017-02-14  Martin Liska  <mliska@suse.cz>
3275         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
3276         vector.  Fix trailing white spaces.
3278 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
3280         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
3281         HFmode.
3283 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3285         PR rtl-optimization/68664
3286         * config/arm/arm.c (arm_sched_can_speculate_insn):
3287         New function.  Declare prototype.
3288         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
3290 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3292         PR rtl-optimization/68664
3293         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
3294         New function.
3295         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
3297 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
3299         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
3300         max skip bytes for function, loop and jump.
3302 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3304         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
3305         ABS_EXPR for gimple dump.
3307 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
3309         PR target/79462
3310         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
3312         PR tree-optimization/79408
3313         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
3314         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
3315         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
3316         also if rhs1 is INTEGER_CST.
3318 2017-02-14  Richard Biener  <rguenther@suse.de>
3320         PR middle-end/79432
3321         * tree-into-ssa.c (insert_phi_nodes): When the function can
3322         have abnormal edges rewrite SSA names with broken use-def
3323         dominance out of SSA and register them for PHI insertion.
3325 2017-02-13  Martin Sebor  <msebor@redhat.com>
3327         PR middle-end/79496
3328         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
3329         clearing info.nowrite flag when snprintf size argument is a range.
3331 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3333         * cprop.c (cprop_jump): Add missing space in string literal.
3334         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
3335         (get_constraint_for_component_ref): Likewise.
3336         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
3337         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
3338         * lra-constraints.c (process_alt_operands): Likewise.
3339         * ipa-inline.c (inline_small_functions): Likewise.
3340         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
3341         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
3342         * trans-mem.c (diagnose_tm_1_op): Likewise.
3343         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
3344         (grid_parallel_clauses_gridifiable): Likewise.
3346         * config/nvptx/mkoffload.c (process): Add space in between
3347         , and %d.
3349         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
3350         "MOD4_SSE_REGS" and "ALL_REGS".
3352         * spellcheck.c (test_data): Add , in between "foo" and "food".
3354 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3356         PR target/79449
3357         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
3358         boundary crossing check and subsequent code generation agree.
3360 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3362         * config/aarch64/aarch64.c (has_memory_op): Delete.
3363         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
3364         has_memory_op.
3366 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3368         PR rtl-optimization/79388
3369         PR rtl-optimization/79450
3370         * combine.c (distribute_notes): When removing TEM_INSN for which
3371         corresponding dest has last value recorded, invalidate that last
3372         value.
3374 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3376         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
3377         of explicit '@'.  Add missing assembly comment marker on branch costs
3378         printout.
3380 2017-02-13  Nathan Sidwell  <nathan@acm.org>
3382         * gengtype-lex.l (<in_struct>): Add '/'.
3384 2017-02-13  Martin Liska  <mliska@suse.cz>
3386         PR c/79471
3387         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
3389 2017-02-13  Richard Biener  <rguenther@suse.de>
3391         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
3392         Remove.
3393         * configure: Re-generate.
3394         * config.in: Likewise.
3395         * graphite-dependences.c: Simplify as if
3396         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
3397         * graphite-isl-ast-to-gimple.c: Likewise.
3398         * graphite-optimize-isl.c: Likewise.
3399         * graphite-poly.c: Likewise.
3400         * graphite-sese-to-poly.c: Likewise.
3401         * graphite.h: Likewise.
3402         * toplev.c: Include isl/version.h and use isl_version () for
3403         printing the ISL version.
3404         * doc/install.texi: Update ISL requirement.
3406 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
3408         * doc/standards.texi (Standards): Update reference to
3409         Objective-C 2.0.
3411 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
3412         
3413         * doc/extend.texi (Named Address Spaces): sourceware.org now
3414         defaults to https.
3415         * doc/install.texi (Binaries): Ditto.
3416         (Specific): Ditto.
3418 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
3420         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
3421         standard terminology "stringize"/"stringizing" throughout.
3422         * doc/cppinternals.texi: Likewise.
3424 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
3426         * doc/extend.texi: Fix some spelling mistakes and typos.
3427         * doc/invoke.texi: Likewise.
3429 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
3431         PR ipa/79224
3432         * params.def (inline-min-speedup) Change from 10 to 8.
3434 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
3436         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
3437         4.5.
3439 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
3441         PR ipa/79224
3442         * ipa-inline-analysis.c (get_minimal_bb): New function.
3443         (record_modified): Use it.
3444         (remap_edge_change_prob): Handle also ancestor functions.
3446 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
3448         * doc/contrib.texi (Contributors): Remove broken link into
3449         the Mauve CVS repository.
3451 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
3453         PR middle-end/79454
3454         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
3455         result computation whenever lhs doesn't have vector mode, not
3456         just when it has BLKmode.
3458 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3460         * doc/makefile.texi (profiledbootstrap): Refer to the
3461         installation instructions only in textual form.
3463 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3465         PR target/79295
3466         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
3468 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3470         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
3471         (Specific): Update mingw-w64 reference.
3472         (Binaries): Ditto.
3473         (Specific): Remove broken link to Renesas RX processor.
3475 2017-02-10  Richard Biener  <rguenther@suse.de>
3477         * toplev.c (process_options): Do not mention obsolete graphite
3478         options when printing sorry message about missing graphite support.
3479         Mention -floop-nest-optimize.
3481 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
3483         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
3484         (vtst_p16): Likewise.
3485         (vtstq_p8): Likewise.
3486         (vtstq_p16): Likewise.
3487         (vtst_p64): New.
3488         (vtstq_p64): Likewise.
3489         * config/arm/arm_neon.h (vgetq_lane_p64): New.
3490         (vset_lane_p64): New.
3491         (vsetq_lane_p64): New.
3493 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
3495         PR tree-optimization/79411
3496         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
3497         stmt operands are SSA_NAMEs used in abnormal phis.
3498         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
3499         phis.
3501 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
3503         PR ipa/70795
3504         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
3505         flag if needed.
3507 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
3509         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
3511 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
3513         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
3514         to avoid warning.
3516         PR c/79413
3517         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
3518         not arbitrary TREE_CONSTANT.
3520         PR c/79431
3521         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
3522         "omp declare target link" attribute unless is_global_var.
3523         * omp-offload.c (find_link_var_op): Likewise.
3525 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
3526             Chung-Lin Tang  <cltang@codesourcery.com>
3528         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
3529         OMP_CLAUSE_TILE.
3530         (gimplify_adjust_omp_clauses): Don't delete TILE.
3531         (gimplify_omp_for): Deal with TILE.
3532         * internal-fn.c (expand_GOACC_TILE): New function.
3533         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
3534         (GOACC_TILE): New.
3535         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
3536         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
3537         element fields.
3538         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
3539         avoid DIV for outermost collapse var.
3540         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
3541         Remove out of date comments, fix whitespace.
3542         * omp-general.c (omp_extract_for_data): Deal with tiling.
3543         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
3544         adjust OLF_DIM_BASE value.
3545         (struct omp_for_data): Add tiling field.
3546         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
3547         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
3548         for auto loops.  Remove default auto determining, moved to
3549         oacc_loop_fixed_partitions.
3550         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
3551         stmts, add e_mask field.
3552         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
3553         (oacc_thread_numbers): Use oacc_dim_call.
3554         (oacc_xform_tile): New.
3555         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
3556         (finish_oacc_loop): Adjust for ifns vector.
3557         (oacc_loop_discover_walk): Append loop abstraction sites to list,
3558         add case for GOACC_TILE fns.
3559         (oacc_loop_xform_loop): Delete.
3560         (oacc_loop_process): Iterate over call list directly, and add
3561         handling for GOACC_TILE fns.
3562         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
3563         dump partitioning.
3564         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
3565         vector partitioning to outer loops.  Assign 2 partitions to loops
3566         when available. Add TILE handling.
3567         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
3568         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
3569         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
3570         * tree.c (omp_clause_num_ops): Adjust TILE ops.
3571         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
3573 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
3575         * configure.ac (ACX_BUGURL): Update.
3576         * configure: Regenerate.
3578 2017-02-09  Richard Biener  <rguenther@suse.de>
3580         PR tree-optimization/69823
3581         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
3582         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
3584 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
3586         * config/arc/arc-c.def: Add __NPS400__ definition.
3587         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
3588         (TARGET_NPS400): Define.
3590 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
3592         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
3593         file.
3594         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
3595         pointer, arch_info.
3596         (arc_cpu_types): Fill the arch_info field with a pointer into the
3597         arc_arch_types table.
3598         (arc_selected_cpu): Declare.
3599         * config/arc/arc.c (arc_selected_cpu): Make global.
3600         (arc_selected_arch): Delete.
3601         (arc_base_cpu): Delete.
3602         (arc_override_options): Remove references to deleted variables,
3603         update access to arch information.
3604         (ARC_OPT): Update access to arch information.
3605         (ARC_OPTX): Likewise.
3606         * config/arc/arc.h (arc_base_cpu): Remove declaration.
3607         (TARGET_ARC600): Update access to arch information.
3608         (TARGET_ARC601): Likewise.
3609         (TARGET_ARC700): Likewise.
3610         (TARGET_EM): Likewise.
3611         (TARGET_HS): Likewise.
3612         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
3613         information.
3615 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
3617         PR target/78604
3618         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
3619         condition/operands for integer GE/LE/GEU/LEU operations.
3621 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
3623         PR translation/79397
3624         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
3625         of AltiVec.
3627 2017-02-08  Martin Jambor  <mjambor@suse.cz>
3629         PR ipa/79375
3630         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
3631         whether allocation happened.
3632         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
3633         nothing was allocated.
3635 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
3637         PR tree-optimization/79408
3638         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
3639         constant, but SSA_NAME with a known integer range, use the minimum
3640         of that range instead of op1 to determine if modulo can be replaced
3641         with its first operand.
3643 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3645         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
3647 2017-02-08  Richard Biener  <rguenther@suse.de>
3649         PR tree-optimization/71824
3650         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
3651         Check all loops contained in the merged region.
3653 2017-02-07  Andrew Pinski  <apinski@cavium.com>
3655         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
3657 2017-02-07  Andrew Pinski  <apinski@cavium.com>
3659         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
3660         (thunderxt88): Likewise.
3661         (thunderxt81): Disable LSE and change v8.1 to v8.
3662         (thunderxt83): Likewise.
3664 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
3665             Richard Biener  <rguenther@suse.de>
3667         PR middle-end/79399
3668         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
3669         type from int to size_t.
3670         * ira-costs.c (struct_costs_size): Change type from int to size_t.
3672 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
3674         PR rtl-optimization/79386
3675         * cprop.c (bypass_conditional_jumps): Initialize
3676         bypass_last_basic_block already before splitting bbs after
3677         unconditional traps...
3678         (bypass_conditional_jumps): ... rather than here.
3680         PR target/79299
3681         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
3682         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
3683         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
3684         fix -masm=intel patterns.
3686 2017-02-07  Richard Biener  <rguenther@suse.de>
3688         PR tree-optimization/79256
3689         PR middle-end/79278
3690         * builtins.c (get_object_alignment_2): Use min_align_of_type
3691         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
3692         and ADJUST_FIELD_ALIGN.
3694         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
3695         type parameter.
3696         * doc/tm.texi: Regenerate.
3697         * stor-layout.c (layout_decl): Adjust.
3698         (update_alignment_for_field): Likewise.
3699         (place_field): Likewise.
3700         (min_align_of_type): Likewise.
3701         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
3702         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
3703         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
3704         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
3705         * config/frv/frv.c (frv_adjust_field_align): Likewise.
3706         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
3707         * config/i386/i386.c (x86_field_alignment): Likewise.
3708         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3709         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
3710         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
3711         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3712         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
3713         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
3714          Likewise.
3716         Revert
3717         2017-01-30  Richard Biener  <rguenther@suse.de>
3719         PR tree-optimization/79256
3720         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
3721         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
3722         alignment on TYPE.
3724 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
3726         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
3727         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
3728         builtins to SImode and emit a zero-extend, if necessary.
3730 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
3732         * docs/invoke.texi (RISC-V Options): Alphabetize.
3734 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
3736         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
3737         options.
3739 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
3741         * config/riscv/riscv.c: New file.
3742         * gcc/common/config/riscv/riscv-common.c: Likewise.
3743         * config.gcc: Likewise.
3744         * config/riscv/constraints.md: Likewise.
3745         * config/riscv/elf.h: Likewise.
3746         * config/riscv/generic.md: Likewise.
3747         * config/riscv/linux.h: Likewise.
3748         * config/riscv/multilib-generator: Likewise.
3749         * config/riscv/peephole.md: Likewise.
3750         * config/riscv/pic.md: Likewise.
3751         * config/riscv/predicates.md: Likewise.
3752         * config/riscv/riscv-builtins.c: Likewise.
3753         * config/riscv/riscv-c.c: Likewise.
3754         * config/riscv/riscv-ftypes.def: Likewise.
3755         * config/riscv/riscv-modes.def: Likewise.
3756         * config/riscv/riscv-opts.h: Likewise.
3757         * config/riscv/riscv-protos.h: Likewise.
3758         * config/riscv/riscv.h: Likewise.
3759         * config/riscv/riscv.md: Likewise.
3760         * config/riscv/riscv.opt: Likewise.
3761         * config/riscv/sync.md: Likewise.
3762         * config/riscv/t-elf-multilib: Likewise.
3763         * config/riscv/t-linux: Likewise.
3764         * config/riscv/t-linux-multilib: Likewise.
3765         * config/riscv/t-riscv: Likewise.
3766         * configure.ac: Likewise.
3767         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
3768         Waterman as RISC-V maintainers.
3769         * doc/install.texi: Add RISC-V entries.
3770         * doc/invoke.texi: Add RISC-V options section.
3771         * doc/md.texi: Add RISC-V constraints section.
3772         * configure: Regenerated.
3774 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3776         PR target/66144
3777         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
3778         false values to be constant vectors with all 0 or all 1 bits set.
3779         (vcondu<mode><mode>): Likewise.
3780         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
3781         predicate.
3782         (fpmask_comparison_operator): Update comment.
3783         (vecint_comparison_operator): New predicate.
3784         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
3785         vector conditionals when the true and false values are constant
3786         vectors with all 0 bits or all 1 bits set.
3788 2017-02-06  Martin Sebor  <msebor@redhat.com>
3790         PR  tree-optimization/79376
3791         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
3793 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
3795         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
3796         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
3797         to simplify split condition.
3799 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
3801         * omp-expand.c (oxpand_omp_atomic_fetch_op,
3802         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
3803         false.
3805 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
3807         PR rtl-optimization/68664
3808         * target.def (can_speculate_insn): New hook.
3809         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
3810         * doc/tm.texi: Regenerate.
3811         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
3812         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
3813         (rs6000_sched_can_speculate_insn): New function.
3815 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
3817         PR tree-optimization/79284
3818         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
3819         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
3820         vectorizable_mask_load_store, vectorizable_operation,
3821         vect_is_simple_cond, get_same_sized_vectype): Use it instead
3822         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
3823         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
3824         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
3825         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
3826         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
3827         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
3828         is_gimple_assign (stmt).  Replace another such test with
3829         is_gimple_assign (stmt).
3831 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
3833         PR target/78883
3834         * config/avr/avr.c (rtl-iter.h): Include it.
3835         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
3836         (avr_legitimate_combined_insn): ...and implementation.
3838 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3840         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
3841         * config/s390/s390.c (s390_const_operand_ok)
3842         (s390_canonicalize_comparison, s390_extract_part)
3843         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
3844         (s390_contiguous_bitmask_p, s390_rtx_costs)
3845         (legitimize_pic_address): Likewise.
3846         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
3847         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
3848         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
3849         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
3850         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
3852 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
3854         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
3855         REGNO($0) == REGNO($1).
3857 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3859         * config/s390/linux.h(SIZE_TYPE): Add comment.
3861 2017-02-06  Julian Brown  <julian@codesourcery.com>
3862             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
3863             Virendra Pathak  <virendra.pathak@broadcom.com>
3865         * config/aarch64/aarch64-cores.def: Change the scheduler
3866         to Thunderx2t99.
3867         * config/aarch64/aarch64.md: Include thunderx2t99.md.
3868         * config/aarch64/thunderx2t99.md: New file.
3870 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
3872         * doc/standards.texi (Go Language): Update link to language
3873         standard.
3875 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
3877         * tree-eh.c (lower_resx): Sanitize profile.
3878         (cleanup_empty_eh_move_lp): Likewise.
3880 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
3882         PR tree-ssa/79347
3883         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
3884         ELSE_PROB.
3885         * cfgloopmanip.h (loop_version): Update prototype.
3886         * modulo-sched.c (sms_schedule): Update call of loop_version.
3887         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
3888         * tree-parloops.c (gen_parallel_loop): Likewise.
3889         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
3890         * tree-ssa-loop-split.c (split_loop): Likewise.
3891         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
3892         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
3894 2017-02-05  Martin Liska  <mliska@suse.cz>
3896         PR bootstrap/78985
3897         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
3898         variable to NULL.
3899         (print_operand_address): Initialize a struct to zero.
3901 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
3903         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
3904         garbage collector only in textual form.
3906 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
3907         
3908         * doc/extend.texi (x86 specific memory model extensions for
3909         transactional memory): Simplify a phrase.
3911 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
3913         PR target/79353
3914         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
3915         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
3916         (atomic_storedi_1): Likewise.
3918 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
3920         PR tree-optimization/79338
3921         * tree-parloops.c (gather_scalar_reductions): Don't call
3922         vect_analyze_loop_form for loop->inner before destroying loop's
3923         loop_vinfo.
3925 2017-02-03  Martin Sebor  <msebor@redhat.com>
3927         PR tree-optimization/79327
3928         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
3929         when precision has resulted in leading zeros.
3930         (format_integer): Adjust the likely counter to assume an unknown
3931         argument that may be zero is non-zero.
3933 2017-02-03  Jason Merrill  <jason@redhat.com>
3935         PR c++/78689
3936         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
3937         avoid copying non-taken branch.
3939 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
3941         PR tree-optimization/79340
3942         * tree-vect-loop.c (vectorizable_reduction): Release
3943         vec_defs elements after safe_splicing them into other vectors.
3944         Formatting fixes.
3946         PR tree-optimization/79327
3947         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
3948         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
3949         dirtype.
3950         (format_integer): Use wide_int_to_tree instead of build_int_cst
3951         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
3952         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
3953         of shortest and longest sequence.
3955 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
3957         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
3958         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
3960 2017-02-03  Walter Lee  <walt@tilera.com>
3962         PR target/78862
3963         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
3964         after initial stackframe link reg save.
3965         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
3967 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
3969         PR target/79354
3970         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
3971         wu for stxssp alternative.
3973 2017-02-03  Martin Sebor  <msebor@redhat.com>
3975         PR tree-optimization/79352
3976         * gimple-fold.c (get_range_strlen): Add argument.
3977         (get_range_strlen): Change return type to bool.
3978         (get_maxval_strlen): Pass in a dummy argument.
3979         * gimple-fold.h (get_range_strlen): Change return type to bool.
3980         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
3981         * tree.h (array_at_struct_end_p): Add argument.
3982         * tree.c (array_at_struct_end_p): Handle it.
3984 2017-02-03  Martin Liska  <mliska@suse.cz>
3986         PR lto/66295
3987         * multiple_target.c (create_dispatcher_calls): Redirect edge
3988         from a caller of a dispatcher.
3989         (expand_target_clones): Make the clones local.
3990         (ipa_target_clone): Do both target clones and resolvers.
3991         (ipa_dispatcher_calls): Remove the pass.
3992         (pass_dispatcher_calls::gate): Likewise.
3993         (make_pass_dispatcher_calls): Likewise.
3994         * passes.def (pass_target_clone): Put as very first IPA early
3995         pass.
3997 2017-02-03  Martin Liska  <mliska@suse.cz>
3999         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
4000         in case of a function with ifunc attribute.
4002 2017-02-03  Martin Liska  <mliska@suse.cz>
4004         * cgraph.c (cgraph_node::dump): Dump function version info.
4005         * symtab.c (symtab_node::dump_base): Add missing new line.
4007 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
4009         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
4010         (ifcombine_ifandif): Use it.
4012 2017-02-03  Martin Liska  <mliska@suse.cz>
4014         * doc/invoke.texi: Document default value for
4015         use-after-scope-direct-emission-threshold.
4017 2017-02-03  Martin Liska  <mliska@suse.cz>
4019         PR tree-optimization/79339
4020         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
4021         (format_floating): Likewise.
4023 2017-02-03  Martin Liska  <mliska@suse.cz>
4025         PR ipa/79337
4026         * ipa-prop.c (ipa_node_params_t::insert): Remove current
4027         implementation.
4028         (ipa_node_params_t::remove): Likewise.
4029         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
4030         initialization from removed ipa_node_params_t::insert.
4031         (ipa_node_params::~ipa_node_params): Move from removed
4032         ipa_node_params_t::release.
4033         * symbol-summary.h (symbol_summary::m_released): New member.
4034         Do not release a summary twice.  Do not allow to call finalizer
4035         for types of a summary that live in GGC memory.
4037 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4039         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
4040         cmp_branch fusion.
4042 2017-02-02  Martin Sebor  <msebor@redhat.com>
4044         PR middle-end/79275
4045         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
4046         (format_string): Tighten up the range of output for non-constant
4047         strings and correct the expected range for wide non-constant strings.
4049 2017-02-02  Martin Sebor  <msebor@redhat.com>
4051         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
4053         PR middle-end/32003
4054         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
4055         index.
4056         (-fdump-tree-@var): Add to index and document how to come up
4057         with pass-specific option and dump file names.
4058         (-fdump-passes): Clarify where to look for output.
4060 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
4062         PR middle-end/77445
4063         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
4064         statistics of the analyzed path; allow threading for speed when
4065         any of BBs along the path are optimized for speed.
4067 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
4069         PR middle-end/78468
4070         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
4071         settings of the virtual registers.
4073         Revert again
4074         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4076         * explow.c (get_dynamic_stack_size): Take known alignment of stack
4077         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4078         needed.
4080 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4082         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
4083         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
4085 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4087         * config/s390/s390.md: Add missing comments with the expanded
4088         mnemonics.
4089         * config/s390/vector.md: Likewise.
4090         * config/s390/vx-builtins.md: Likewise.
4092 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
4094         PR target/79197
4095         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
4096         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
4097         conditions on a single line.
4099 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4101         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
4102         __S390_VX__ to __VX__.
4104 2017-02-01  Andrew Pinski  <apinski@cavium.com>
4106         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
4107         stmt_info to record_stmt_cost.
4108         (vect_get_known_peeling_cost): Pass stmt_info if known to
4109         record_stmt_cost.
4110         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
4111         cpu_vector_cost field into
4112         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
4113         field into vec_int_stmt_cost and vec_fp_stmt_cost.
4114         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
4115         splitting of scalar_stmt_cost and vec_stmt_cost.
4116         (thunderx_vector_cost): Likewise.
4117         (cortexa57_vector_cost): LIkewise.
4118         (exynosm1_vector_cost): Likewise.
4119         (xgene1_vector_cost): Likewise.
4120         (thunderx2t99_vector_cost): Improve after the splitting of the two
4121         fields.
4122         (aarch64_builtin_vectorization_cost): Update for the splitting of
4123         scalar_stmt_cost and vec_stmt_cost.
4125 2017-02-01  Torvald Riegel  <triegel@redhat.com>
4126             Richard Henderson  <rth@redhat.com>
4128         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
4129         conditional on existance of a fast atomic load.
4130         * optabs-query.c (can_atomic_load_p): New function.
4131         * optabs-query.h (can_atomic_load_p): Declare it.
4132         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
4133         no fast atomic load is available for the particular size of access.
4134         (expand_atomic_compare_and_swap): Likewise.
4135         (expand_atomic_load): Likewise.
4136         (expand_atomic_store): Likewise.
4137         (expand_atomic_fetch_op): Likewise.
4138         * testsuite/lib/target-supports.exp
4139         (check_effective_target_sync_int_128): Remove x86 because it provides
4140         no fast atomic load.
4141         (check_effective_target_sync_int_128_runtime): Likewise.
4143 2017-02-01  Richard Biener  <rguenther@suse.de>
4145         * graphite.c: Include tree-vectorizer.h for find_loop_location.
4146         (graphite_transform_loops): Provide opt-info for optimized nests.
4147         * tree-parloop.c (parallelize_loops): Provide opt-info for
4148         parallelized loops.
4150 2017-02-01  Richard Biener  <rguenther@suse.de>
4152         PR middle-end/79315
4153         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
4154         was not set before.
4156 2017-02-01  Richard Biener  <rguenther@suse.de>
4158         PR tree-optimization/71824
4159         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
4160         Verify the loops are valid in the merged SESE region.
4161         (scop_detection::can_represent_loop_1): Check analyzing the
4162         evolution of the number of iterations in the region succeeds.
4164 2017-01-31  Ian Lance Taylor  <iant@golang.org>
4166         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
4167         REG_ARGS_SIZE note to 32-bit push insns and call insn.
4169 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
4171         PR preprocessor/79210
4172         * input.c (get_substring_ranges_for_loc): Replace line_width
4173         assertion with error-handling.
4175 2017-01-31  Richard Biener  <rguenther@suse.de>
4177         PR tree-optimization/77318
4178         * graphite-sese-to-poly.c (extract_affine): Fix assert.
4179         (create_pw_aff_from_tree): Take loop parameter.
4180         (add_condition_to_pbb): Pass loop of the condition to
4181         create_pw_aff_from_tree.
4183 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
4185         * config/s390/s390.c (s390_asan_shadow_offset): New function.
4186         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
4188 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
4190         PR target/78597
4191         PR target/79038
4192         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
4193         no longer used.
4194         (convert_int_to_float128): Likewise.
4195         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
4196         (convert_int_to_float128): Likewise.
4197         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
4198         (UNSPEC_IEEE128_CONVERT): Likewise.
4199         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
4200         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
4201         Use local variables for IBM extended format.
4202         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
4203         (fix_trunc<mode>si2_fprs): Likewise.
4204         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
4205         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
4206         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
4207         to know that we can now have integers of all sizes in vector
4208         registers.
4209         (fix<uns>_<mode>di2_hw): Likewise.
4210         (float<uns>_<mode>si2_hw): Likewise.
4211         (fix_<mode>si2_hw): Likewise.
4212         (fixuns_<mode>si2_hw): Likewise.
4213         (float<uns>_<mode>di2_hw): Likewise.
4214         (float_<mode>di2_hw): Likewise.
4215         (float_<mode>si2_hw): Likewise.
4216         (floatuns_<mode>di2_hw): Likewise.
4217         (floatuns_<mode>si2_hw): Likewise.
4218         (xscvqp<su>wz_<mode>): Delete, no longer used.
4219         (xscvqp<su>dz_<mode>): Likewise.
4220         (xscv<su>dqp_<mode>): Likewise.
4221         (ieee128_mfvsrd_64bit): Likewise.
4222         (ieee128_mfvsrd_32bit): Likewise.
4223         (ieee128_mfvsrwz): Likewise.
4224         (ieee128_mtvsrw): Likewise.
4225         (ieee128_mtvsrd_64bit): Likewise.
4226         (ieee128_mtvsrd_32bit): Likewise.
4228 2017-01-31  Martin Liska  <mliska@suse.cz>
4230         PR ipa/79285
4231         * ipa-prop.c (ipa_free_all_node_params): Call release method
4232         instead of ~sumbol_summary to not to trigger double times
4233         dtor of hash_map.
4235 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
4237         PR tree-optimization/71691
4238         * bitmap.h (class auto_bitmap): New.
4239         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
4240         is_maybe_undefined instead of ssa_undefined_value_p.
4242 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4244         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
4245         __S390_ARCH_LEVEL__ to __ARCH__.
4247 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
4249         PR tree-optimization/79267
4250         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
4251         if should_remove_lhs_p is true.
4253 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
4255         PR debug/63238
4256         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
4257         (add_alignment_attribute): New.
4258         (base_type_die): Add alignment attribute.
4259         (subrange_type_die): Likewise.
4260         (modified_type_die): Likewise.
4261         (gen_array_type_die): Likewise.
4262         (gen_descr_array_type_die: Likewise.
4263         (gen_enumeration_type_die): Likewise.
4264         (gen_subprogram_die): Likewise.
4265         (gen_variable_die): Likewise.
4266         (gen_field_die): Likewise.
4267         (gen_ptr_to_mbr_type_die): Likewise.
4268         (gen_struct_or_union_type_die): Likewise.
4269         (gen_subroutine_type_die): Likewise.
4270         (gen_typedef_die): Likewise.
4271         (base_type_cmp): Compare alignment attribute.
4273 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4275         PR target/79170
4276         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
4277         (setb_unsigned) New pattern for setb with CCUNS.
4278         * config/rs6000/rs6000.c (expand_block_compare): Use a different
4279         subfc./subfe sequence to avoid overflow problems.  Generate a
4280         shorter sequence with cmpld/setb for power9.
4281         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
4282         for generating subfc. instruction.
4283         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
4284         now uses this instruction.
4286 2017-01-30  Ian Lance Taylor  <iant@google.com>
4288         PR debug/79289
4289         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
4290         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
4292 2017-01-30  Martin Sebor  <msebor@redhat.com>
4294         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
4295         Move constant to the right of a relational operator.
4296         (get_mpfr_format_length, format_character, format_string): Ditto.
4297         (should_warn_p, maybe_warn): Same.
4299         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
4301 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
4303         PR lto/79061
4304         * asan.c (get_translation_unit_decl): Remove function.
4305         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
4307 2017-01-30  Martin Liska  <mliska@suse.cz>
4309         PR gcov-profile/79259
4310         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
4311         -fprofile-generate.
4313 2017-01-30  Martin Liska  <mliska@suse.cz>
4315         PR bootstrap/78985
4316         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
4317         Initialize variables with NULL value.
4319 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
4321         PR target/79260
4322         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
4323         tm_p_file.
4324         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
4326 2017-01-30  Richard Biener  <rguenther@suse.de>
4328         PR tree-optimization/79276
4329         * tree-vrp.c (process_assert_insertions): Properly adjust common
4330         when removing a duplicate.
4332         * gcc.dg/torture/pr79276.c: New testcase.
4334 2017-01-30  Richard Biener  <rguenther@suse.de>
4336         PR tree-optimization/79256
4337         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
4338         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
4339         alignment on TYPE.
4340         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
4342 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4344         PR target/79240
4345         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
4346         ("*r<noxa>sbg_<mode>_sll_bitmask")
4347         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
4348         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
4349         Use contiguous_bitmask_nowrap_operand.
4351 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4353         PR target/79268
4354         * config/rs6000/altivec.h (vec_xl): Revise #define.
4355         (vec_xst): Likewise.
4357 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
4359         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
4361 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
4363         PR rtl-optimization/79194
4364         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
4365         traps before call to bypass_conditional_jumps.
4367 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
4369         PR tree-optimization/71374
4370         * lra-constraints.c (check_conflict_input_operands): New.
4371         (match_reload): Use it.
4373 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
4375         PR target/79131
4376         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
4377         account to calculate conflict_set.
4379 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
4381         PR rtl-optimization/78559
4382         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
4383         other_insn in combine.
4385 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
4387         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
4388         uint16_type_node for BT_UINT16.
4390 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
4392         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
4393         "RTL Tests" to menu.
4394         (GIMPLE Tests): New node.
4395         (RTL Tests): New node.
4397 2017-01-27  Richard Biener  <rguenther@suse.de>
4399         PR tree-optimization/79245
4400         * tree-loop-distribution.c (distribute_loop): Apply cost
4401         modeling also to detected patterns.
4403 2017-01-27  Richard Biener  <rguenther@suse.de>
4405         PR tree-optimization/71433
4406         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
4407         (compare_assert_loc): New function.
4408         (process_assert_insertions): Sort and optimize assert locations
4409         to remove duplicates and push down identical assertions on
4410         edges to their destination block.
4412 2017-01-27  Richard Biener  <rguenther@suse.de>
4414         PR tree-optimization/79244
4415         * tree-vrp.c (remove_range_assertions): Forcefully propagate
4416         out SSA names even if abnormal.
4418 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
4420         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
4421         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
4422         instead of MPFR_RNDN.
4424 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
4426         PR target/79239
4427         * arm.c (arm_option_override): Don't call build_target_option_node
4428         until after doing all option overrides.
4429         (arm_valid_target_attribute_tree): Likewise.
4431 2017-01-27  Martin Liska  <mliska@suse.cz>
4433         * doc/invoke.texi (-fprofile-arcs): Document profiling support
4434         for {cd}tors and C++ {cd}tors.
4436 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4438         * config/s390/s390.md ("*setmem_long_and")
4439         ("*setmem_long_and_31z"): Use zero_extend instead of and.
4441 2017-01-26  Martin Sebor  <msebor@redhat.com>
4443         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
4444         of precision.
4446 2017-01-26  Martin Sebor  <msebor@redhat.com>
4448         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
4449         HAVE_DFmode before using XFmode or DFmode.
4450         (parse_directive): Avoid using the z length modifier to avoid
4451         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
4453         PR middle-end/78703
4454         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
4455         to accept adjustment as an array.
4456         (get_int_range): New function.
4457         (struct directive): Make width and prec arrays.
4458         (directive::set_width, directive::set_precision): Call get_int_range.
4459         (format_integer, format_floating): Handle width and precision ranges.
4460         (format_string, parse_directive): Same.
4462 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4464         PR debug/79129
4465         * dwarf2out.c (generate_skeleton_bottom_up): For children with
4466         comdat_type_p set, just clone them, but keep the children in the
4467         original DIE.
4469         PR debug/78835
4470         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
4471         which have direct callers with -fvar-tracking-assignments enabled
4472         in the current TU.
4473         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
4474         inside of type units.
4476 2017-01-26  Martin Sebor  <msebor@redhat.com>
4478         PR middle-end/78703
4479         * gimple-ssa-sprintf.c (struct result_range): Add likely and
4480         unlikely counters.
4481         (struct format_result): Replace number_chars, number_chars_min,
4482         and number_chars_max with a single member of struct result_range.
4483         Remove bounded.
4484         (format_result::operator+=): Adjust.
4485         (struct fmtresult): Remove bounded.  Handle likely and unlikely
4486         counters.
4487         (fmtresult::adjust_for_width_or_precision): New function.
4488         (fmtresult:type_max_digits): New function.
4489         (bytes_remaining): Handle likely and unlikely counters.
4490         (min_bytes_remaining): Remove.
4491         (format_percent): Simplify.
4492         (format_integer, format_floating): Set likely and unlikely counters.
4493         (get_string_length, format_character, format_string): Same.
4494         (format_plain, should_warn_p): New function.
4495         (maybe_warn): Call should_warn_p.  Update diagnostic messages
4496         and handle those for all directives, including plain strings.
4497         (format_directive): Handle likely and unlikely counters.
4498         Remove unnecessary quoting from diagnostics.  Add an informational
4499         note.
4500         (add_bytes): Remove.
4501         (pass_sprintf_length::compute_format_length): Simplify.
4502         (try_substitute_return_value): Handle likely and unlikely counters.
4504 2017-01-26  Carl Love  <cel@us.ibm.com>
4506         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
4507         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
4509 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
4511         PR target/79131
4512         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
4513         endianess for subregs into account.
4514         * lra-constraints.c (lra_constraints): Do risky transformations
4515         always on the first iteration.
4516         * lra-lives.c (check_pseudos_live_through_calls): Add arg
4517         last_call_used_reg_set.
4518         (process_bb_lives): Define and use last_call_used_reg_set.
4519         * lra.c (lra): Always continue after lra_constraints on the first
4520         iteration.
4522 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
4524         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
4525         constant.
4526         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
4528 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4530         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
4531         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
4532         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
4533         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
4534         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
4535         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
4536         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
4537         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
4538         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
4540 2017-01-26  Marek Polacek  <polacek@redhat.com>
4542         PR c/79199
4543         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
4544         for the third operand.
4546 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4548         PR middle-end/79236
4549         * omp-low.c (struct omp_context): Add simt_stmt field.
4550         (scan_omp_for): Return omp_context *.
4551         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
4552         context to the _simt_ SIMD stmt.
4553         (lower_omp_for): For combined SIMD with sibling _simt_
4554         SIMD, make sure to use the same decls in _looptemp_
4555         clauses as in the sibling.
4557 2017-01-26  David Sherwood  <david.sherwood@arm.com>
4559         PR middle-end/79212
4560         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
4561         all contexts.
4563 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4565         PR target/70465
4566         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
4567         emit fld b; fld a; if possible.
4569         * brig-builtins.def: Update copyright years.
4570         * config/arm/arm_acle_builtins.def: Update copyright years.
4572 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
4574         PR target/79179
4575         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
4576         constraint instead of o for the stxsd instruction.
4578 2017-01-25  Carl Love  <cel@us.ibm.com>
4580         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
4581         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
4583 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
4585         * doc/invoke.texi (C++ Dialect Options): Fix typo.
4587 2017-01-25  Richard Biener  <rguenther@suse.de>
4589         PR tree-optimization/69264
4590         * target.def (vector_alignment_reachable): Improve documentation.
4591         * doc/tm.texi: Regenerate.
4592         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
4593         and add a comment.
4594         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
4595         earlier changes with respect to TYPE_USER_ALIGN.
4596         (vector_alignment_reachable_p): Likewise.  Improve dumping.
4598 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4600         PR target/79145
4601         * config/arm/arm.md (xordi3): Force constant operand into a register
4602         for TARGET_IWMMXT.
4604 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4606         * doc/invoke.texi (-fstore-merging): Correct default optimization
4607         levels at which it is enabled.
4608         (-O): Move -fstore-merging from list to...
4609         (-O2): ... Here.
4611 2017-01-25  Richard Biener  <rguenther@suse.de>
4613         PR debug/78363
4614         * omp-expand.c: Include debug.h.
4615         (expand_omp_taskreg): Make sure to generate early debug before
4616         outlining anything from a function.
4617         (expand_omp_target): Likewise.
4618         (grid_expand_target_grid_body): Likewise.
4620 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
4622         PR lto/79061
4623         * asan.c (get_translation_unit_decl): New function.
4624         (asan_add_global): Extract modules file name from globals
4625         TRANSLATION_UNIT_DECL name.
4627 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
4629         PR target/77439
4630         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
4631         for long calls with APCS frame and VFP.
4633 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
4635         * cfg.c (original_copy_tables_initialized_p): New function.
4636         * cfg.h (original_copy_tables_initialized_p): New decl.
4637         * cfgrtl.c (relink_block_chain): Guard the call to
4638         free_original_copy_tables with a call to
4639         original_copy_tables_initialized_p.
4640         * cgraph.h (symtab_node::native_rtl_p): New decl.
4641         * cgraphunit.c (symtab_node::native_rtl_p): New function.
4642         (symtab_node::needed_p): Don't assert for early assembly output
4643         for __RTL functions.
4644         (cgraph_node::finalize_function): Set "force_output" for __RTL
4645         functions.
4646         (cgraph_node::analyze): Bail out early for __RTL functions.
4647         (analyze_functions): Update assertion to support __RTL functions.
4648         (cgraph_node::expand): Bail out early for __RTL functions.
4649         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
4650         __RTL functions.
4651         * function.h (struct function): Update comment for field
4652         "pass_startwith".
4653         * gimple-expr.c: Include "tree-pass.h".
4654         (gimple_has_body_p): Return false for __RTL functions.
4655         * Makefile.in (OBJS): Add run-rtl-passes.o.
4656         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
4657         accessor.
4658         (gcc::pass_manager::get_clean_slate): New accessor.
4659         * passes.c: Include "insn-addr.h".
4660         (should_skip_pass_p): Add logging.  Update logic for running
4661         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
4662         property-provider override so it is only done for gimple passes.
4663         Don't skip dfinit.
4664         (skip_pass): New function.
4665         (execute_one_pass): Call skip_pass when skipping passes.
4666         * read-md.c (md_reader::read_char): Support filtering
4667         the input to a subset of line numbers.
4668         (md_reader::md_reader): Initialize fields
4669         m_first_line and m_last_line.
4670         (md_reader::read_file_fragment): New function.
4671         * read-md.h (md_reader::read_file_fragment): New decl.
4672         (md_reader::m_first_line): New field.
4673         (md_reader::m_last_line): New field.
4674         * read-rtl-function.c (function_reader::create_function): Only
4675         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
4676         curr_properties.  Set DECL_INITIAL to a dummy block.
4677         (read_rtl_function_body_from_file_range): New function.
4678         * read-rtl-function.h (read_rtl_function_body_from_file_range):
4679         New decl.
4680         * run-rtl-passes.c: New file.
4681         * run-rtl-passes.h: New file.
4683 2017-01-24 Jeff Law  <law@redhat.com>
4685         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
4686         buffer size.
4688 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
4690         PR tree-optimization/79159
4691         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
4692         (record_nonwrapping_iv): Improve boundary using above function if no
4693         value range information.
4695 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
4696             Martin Jambor  <mjambor@suse.cz>
4698         * brig-builtins.def: New file.
4699         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
4700         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
4701         (DEF_HSAIL_SAT_BUILTIN): Likewise.
4702         (DEF_HSAIL_INTR_BUILTIN): Likewise.
4703         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
4704         * builtin-types.def (BT_INT8): New.
4705         (BT_INT16): Likewise.
4706         (BT_UINT8): Likewise.
4707         (BT_UINT16): Likewise.
4708         (BT_FN_ULONG): Likewise.
4709         (BT_FN_UINT_INT): Likewise.
4710         (BT_FN_UINT_ULONG): Likewise.
4711         (BT_FN_UINT_LONG): Likewise.
4712         (BT_FN_UINT_PTR): Likewise.
4713         (BT_FN_ULONG_PTR): Likewise.
4714         (BT_FN_INT8_FLOAT): Likewise.
4715         (BT_FN_INT16_FLOAT): Likewise.
4716         (BT_FN_UINT32_FLOAT): Likewise.
4717         (BT_FN_UINT16_FLOAT): Likewise.
4718         (BT_FN_UINT8_FLOAT): Likewise.
4719         (BT_FN_UINT64_FLOAT): Likewise.
4720         (BT_FN_UINT16_UINT32): Likewise.
4721         (BT_FN_UINT32_UINT16): Likewise.
4722         (BT_FN_UINT16_UINT16_UINT16): Likewise.
4723         (BT_FN_INT_PTR_INT): Likewise.
4724         (BT_FN_UINT_PTR_UINT): Likewise.
4725         (BT_FN_LONG_PTR_LONG): Likewise.
4726         (BT_FN_ULONG_PTR_ULONG): Likewise.
4727         (BT_FN_VOID_UINT64_UINT64): Likewise.
4728         (BT_FN_UINT8_UINT8_UINT8): Likewise.
4729         (BT_FN_INT8_INT8_INT8): Likewise.
4730         (BT_FN_INT16_INT16_INT16): Likewise.
4731         (BT_FN_INT_INT_INT): Likewise.
4732         (BT_FN_UINT_FLOAT_UINT): Likewise.
4733         (BT_FN_FLOAT_UINT_UINT): Likewise.
4734         (BT_FN_ULONG_UINT_UINT): Likewise.
4735         (BT_FN_ULONG_UINT_PTR): Likewise.
4736         (BT_FN_ULONG_ULONG_ULONG): Likewise.
4737         (BT_FN_UINT_UINT_UINT): Likewise.
4738         (BT_FN_VOID_UINT_PTR): Likewise.
4739         (BT_FN_UINT_UINT_PTR: Likewise.
4740         (BT_FN_UINT32_UINT64_PTR): Likewise.
4741         (BT_FN_INT_INT_UINT_UINT): Likewise.
4742         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
4743         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
4744         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
4745         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
4746         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
4747         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
4748         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
4749         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
4750         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
4751         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
4752         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
4753         * doc/frontends.texi: List BRIG FE.
4754         * doc/install.texi (Testing): Add BRIG tesring requirements.
4755         * doc/invoke.texi (Overall Options): Mention BRIG.
4756         * doc/standards.texi (Standards): Doucment BRIG HSA version.
4758 2017-01-24  Richard Biener  <rguenther@suse.de>
4760         PR translation/79208
4761         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
4763 2017-01-24  Martin Jambor  <mjambor@suse.cz>
4765         PR bootstrap/79198
4766         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
4767         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
4768         and known_contexts.
4770 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
4772         PR middle-end/79123
4773         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
4774         casts from signed to unsigned really don't have a range.
4776 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
4778         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
4779         GMP_RNDx for compatiblity.
4781 2017-01-24  Martin Liska  <mliska@suse.cz>
4783         PR bootstrap/79132
4784         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
4785         that would prevent us to call alloca with -1 as argument.
4787 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
4789         * dwarf2out.c (output_compilation_unit_header, output_file_names):
4790         Avoid -Wformat-security warning.
4792 2017-01-23  Andrew Pinski  <apinski@cavium.com>
4794         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
4795         cost table.
4797 2017-01-23  Martin Sebor  <msebor@redhat.com>
4799         PR middle-end/78703
4800         * gimple-ssa-sprintf.c (warn_level): New global.
4801         (format_integer): Use it here and throughout the rest of the file.
4802         Use the same switch to compute sign as base.
4803         (maybe_warn): New function.
4804         (format_directive): Factor out warnings into maybe_warn.
4805         Add debugging output.  Use warn_level.
4806         (add_bytes): Use warn_level.
4807         (pass_sprintf_length::compute_format_length): Add debugging output.
4808         (try_substitute_return_value): Same.
4809         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
4811         PR middle-end/78703
4812         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
4813         (struct fmtresult, format_integer, format_floating): Adjust.
4814         (fmtresult::fmtresult): Set max correctly in two argument ctor.
4815         (get_string_length, format_string,format_directive): Same.
4816         (pass_sprintf_length::compute_format_length): Same.
4817         (try_substitute_return_value): Simplify slightly.
4819         PR middle-end/78703
4820         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
4821         (fmtresult::operator+=): Outlined.
4822         (struct fmtresult): Add ctors.
4823         (struct conversion_spec): Rename...
4824         (struct directive): ...to this.  Add and remove data members.
4825         (directive::set_width, directive::set_precision): New functions.
4826         (format_percent): Use fmtresult ctor.
4827         (get_width_and_precision): Remove.
4828         (format_integer): Make naming changes.  Avoid computing width and
4829         precision.
4830         (format_floating): Same.  Adjust indentation.
4831         (format_character, format_none): New functions.
4832         (format_string): Moved character handling to format_character.
4833         (format_directive): Remove arguments, change return type.
4834         (parse_directive): New function.
4835         (pass_sprintf_length::compute_format_length): Move directive
4836         parsing to parse_directive.
4838 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
4840         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
4841         (assign_assembler_name_if_needed): ... this.
4842         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
4843         (assign_assembler_name_if_needed): ... this.
4844         (free_lang_data_in_cgraph): Adjust callers.
4845         * cgraphunit.c (cgraph_node::analyze): Likewise.
4846         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
4847         Likewise.
4849 2017-01-23  Richard Biener  <rguenther@suse.de>
4851         PR tree-optimization/79088
4852         PR tree-optimization/79188
4853         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
4854         resetting loop bounds after last path deletion.  Reset loop
4855         bounds of the target loop, make code match the comments.
4856         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
4857         Make sure loops need no fixups.
4859 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4861         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
4862         exponent support with double type for first argument.
4863         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
4864         type returned by __builtin_vec_extract_sig,
4865         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
4866         functions from "vector int" to "vector unsigned int" or from
4867         "vector long long int" to "vector unsigned long long int".
4868         Changed type returned by __builtin_vec_extract_exp,
4869         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
4870         functions from "vector int" to "vector unsigned int" or from
4871         "vector long long int" to "vector unsigned long long int".
4872         Changed return type of __builtin_vec_test_data_class,
4873         __builtin_vec_test_data_class_sp, and
4874         __builtin_vec_test_data_class_dp from "vector int" to
4875         "vector bool int" or from "vector long long int" to "vector bool
4876         long long int" and changed second argument type from "unsigned
4877         int" to "int".  Added new overloaded function forms "vector float
4878         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
4879         "vector float __builtin_vec_insert_exp_sp (vector float, vector
4880         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
4881         double, vector unsigned long long int)" and "vector double
4882         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
4883         long int)".  Changed return type of
4884         __builtin_scalar_test_data_class and
4885         __builtin_scalar_test_data_class_sp and
4886         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
4887         int" and changed second argument from "unsigned int" to "int".
4888         Changed type returned by __builtin_scalar_test_neg,
4889         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
4890         from "int" to "bool int".  Added new overloaded function form
4891         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
4892         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
4893         exponent double-precision with floating point first argument.
4894         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
4895         documentation of scalar_test_data_class, scalar_test_neg,
4896         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
4897         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
4898         vec_test_data_class built-in functions to reflect refinements in
4899         their type signatures.
4901 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
4903         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
4904         size of buf.
4905         (aarch64_elf_asm_destructor): Likewise.
4907 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
4909         PR rtl-optimization/78634
4910         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
4911         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
4912         * ifcvt.c (noce_try_cmove): Add missing cost check.
4914         PR rtl-optimization/71724
4915         * combine.c (if_then_else_cond): Look for situations where it is
4916         beneficial to undo the work of one of the recursive calls.
4918 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
4920         PR tree-optimization/70754
4921         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
4922         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
4923         combined stmt before it if not NULL.
4924         (combine_chains): Process refs reversely and compute dominance point
4925         for root ref.
4927 2017-01-23  Martin Liska  <mliska@suse.cz>
4929         PR tree-optimization/79196
4930         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
4931         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
4932         instead of memcmp.
4933         (strlen_optimize_stmt): Call the renamed function.
4935 2017-01-23  Michael Matz  <matz@suse.de>
4937         PR tree-optimization/78384
4938         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
4940 2017-01-23  Richard Biener  <rguenther@suse.de>
4942         PR tree-optimization/79186
4943         * tree-vrp.c (register_new_assert_for): Make sure we've seen
4944         both incoming edges before moving an assert.
4946 2017-01-23  Martin Jambor  <mjambor@suse.cz>
4948         * ipa-prop.c (load_from_param_1): Removed.
4949         (load_from_unmodified_param): Bits from load_from_param_1 put back
4950         here.
4951         (load_from_param): Removed.
4952         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
4953         with stmt.  Reverted back to use of load_from_unmodified_param.
4955 2017-01-23  Martin Jambor  <mjambor@suse.cz>
4957         PR ipa/79108
4958         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
4959         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
4960         field a pointer to garbage collected vector, mark lattices and
4961         ipcp_orig_node with GTY((skip)).
4962         (ipa_get_param_count): Adjust to descriptors being a pointer.
4963         (ipa_get_param): Likewise.
4964         (ipa_get_type): Likewise.
4965         (ipa_get_param_move_cost): Likewise.
4966         (ipa_set_param_used): Likewise.
4967         (ipa_get_controlled_uses): Likewise.
4968         (ipa_set_controlled_uses): Likewise.
4969         (ipa_is_param_used): Likewise.
4970         (ipa_node_params_t): Move into garbage collector.  New methods insert
4971         and remove.
4972         (ipa_node_params_sum): Annotate wth GTY(()).
4973         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
4974         garbage collected.
4975         (ipa_load_from_parm_agg): Adjust declaration.
4976         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
4977         * ipa-profile.c (ipa_profile): Likewise.
4978         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
4979         (ipa_populate_param_decls): Make descriptors parameter garbage
4980         collected.
4981         (ipa_dump_param): Adjust to descriptors being a pointer.
4982         (ipa_alloc_node_params): Likewise.
4983         (ipa_initialize_node_params): Likewise.
4984         (load_from_param_1): Make descriptors parameter garbage collected.
4985         (load_from_unmodified_param): Likewise.
4986         (load_from_param): Likewise.
4987         (ipa_load_from_parm_agg): Likewise.
4988         (ipa_node_params::~ipa_node_params): Removed.
4989         (ipa_free_all_node_params): Remove call to delete operator.
4990         (ipa_node_params_t::insert): New.
4991         (ipa_node_params_t::remove): Likewise.
4992         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
4993         copy known_csts and known_contexts vectors.
4994         (ipa_read_node_info): Adjust to descriptors being a pointer.
4995         (ipcp_modif_dom_walker): Make m_descriptors field garbage
4996         collected.
4997         (ipcp_transform_function): Make descriptors variable garbage
4998         collected.
5000 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
5002         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
5003         * config/i386/avx512dqintrin.h: Ditto.
5004         * config/i386/avx512fintrin.h: Ditto.
5005         * gcc/config/i386/i386.c: Handle new builtins.
5006         * config/i386/i386-builtin.def: Add new builtins.
5007         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
5008         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
5010 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
5011             Martin Liska  <mliska@suse.cz>
5013         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
5014         * asan.c (asan_expand_poison_ifn): Support stores and use
5015         appropriate ASAN report function.
5016         * internal-fn.c (expand_ASAN_POISON_USE): New function.
5017         * internal-fn.def (ASAN_POISON_USE): Declare.
5018         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
5019         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
5020         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
5021         ASAN_POISON calls w/o LHS.
5022         * tree-ssa.c (execute_update_addresses_taken): Create clobber
5023         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
5024         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
5025         * gimplify.c (asan_poison_variables): Add attribute
5026         use_after_scope_memory to variables that really needs to live
5027         in memory.
5028         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
5029         having the attribute.
5031 2017-01-23  Martin Liska  <mliska@suse.cz>
5033         * asan.c (create_asan_shadow_var): New function.
5034         (asan_expand_poison_ifn): Likewise.
5035         * asan.h (asan_expand_poison_ifn): New declaration.
5036         * internal-fn.c (expand_ASAN_POISON): Likewise.
5037         * internal-fn.def (ASAN_POISON): New builtin.
5038         * sanopt.c (pass_sanopt::execute): Expand
5039         asan_expand_poison_ifn.
5040         * tree-inline.c (copy_decl_for_dup_finish): Make function
5041         external.
5042         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
5043         * tree-ssa.c (is_asan_mark_p): New function.
5044         (execute_update_addresses_taken): Rewrite local variables
5045         (identified just by use-after-scope as addressable) into SSA.
5047 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
5049         * doc/install.texi (Specific): opensource.apple.com uses https
5050         now. Remove trailing slash.
5052 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
5054         * README.Portability: Remove note on an Irix compatibility issue.
5056 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
5058         * gcov.c (INCLUDE_ALGORITHM): Define.
5059         (INCLUDE_VECTOR): Define.
5060         No longer include <vector> and <algorithm> directly.
5062 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
5064         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
5065         to https.
5066         * doc/invoke.texi (Code Gen Options): Ditto.
5068 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
5070         PR lto/78407
5071         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
5073 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
5075         rtl-optimization/79125
5076         * cprop.c (local_cprop_pass): Handle cases where we make an
5077         unconditional trap.
5079 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
5081         PR target/61729
5082         PR target/77850
5083         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
5084         read from, for big endian.
5086 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
5088         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
5089         register pauth builtins for LP64 only.
5091 2017-01-20  Marek Polacek  <polacek@redhat.com>
5093         PR c/79152
5094         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
5095         non-case labels.
5097 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
5099         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
5100         of safelen status.
5101         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
5102         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
5103         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
5105 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5107         PR target/71270
5108         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
5109         in big-endian mode when they are not a single duplicated value.
5111 2017-01-20  Richard Biener  <rguenther@suse.de>
5113         * BASE-VER: Bump to 7.0.1.
5115 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
5117         * omp-low.c (omplow_simd_context): New struct.  Use it...
5118         (lower_rec_simd_input_clauses): ...here and...
5119         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
5120         references to idx, lane, max_vf, is_simt.
5122 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
5124         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
5125         mcpu=nps400.
5127 2017-01-20  Martin Jambor  <mjambor@suse.cz>
5129         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
5130         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
5131         gt-hsa-common.h.
5132         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
5133         (GTFILES): Rename hsa.c to hsa-common.c.
5134         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
5135         * hsa-dump.c: Likewise.
5136         * hsa-gen.c: Likewise.
5137         * hsa-regalloc.c: Likewise.
5138         * ipa-hsa.c: Likewise.
5139         * omp-expand.c: Likewise.
5140         * omp-low.c: Likewise.
5141         * toplev.c: Likewise.
5143 2017-01-20  Marek Polacek  <polacek@redhat.com>
5145         PR c/64279
5146         * doc/invoke.texi: Document -Wduplicated-branches.
5147         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
5148         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
5149         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
5150         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
5151         return 0 only when not OEP_LEXICOGRAPHIC.
5152         (fold_build_cleanup_point_expr): Use the expression
5153         location when building CLEANUP_POINT_EXPR.
5154         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
5155         * tree.c (add_expr): Handle error_mark_node.
5157 2017-01-20  Martin Liska  <mliska@suse.cz>
5159         PR lto/69188
5160         * tree-profile.c (init_ic_make_global_vars): Do not call
5161         finalize_decl.
5162         (gimple_init_gcov_profiler): Likewise.
5164 2017-01-20  Martin Liska  <mliska@suse.cz>
5166         PR ipa/71190
5167         * cgraph.h (maybe_create_reference): Remove argument and
5168         update comment.
5169         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
5170         argument.
5171         * ipa-cp.c (create_specialized_node): Likewise.
5172         * symtab.c (symtab_node::maybe_create_reference): Handle
5173         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
5175 2017-01-20  Martin Liska  <mliska@suse.cz>
5177         * read-rtl-function.c (function_reader::create_function): Use
5178         build_decl instread of build_decl_stat.
5180 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
5182         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
5183         * config/i386/avx512dqintrin.h: Ditto.
5184         * config/i386/avx512fintrin.h: Ditto.
5185         * config/i386/i386-builtin-types.def: Add new types.
5186         * gcc/config/i386/i386.c: Handle new types.
5187         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
5188         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
5189         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
5190         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
5191         (__builtin_ia32_kshiftridi): New.
5192         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
5194 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
5196         PR target/78875
5197         PR target/79140
5198         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
5199         define to rs6000_init_stack_protect_guard.
5200         (rs6000_init_stack_protect_guard): New function.
5202 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
5203             Yunqiang Su  <yunqiang.su@imgtec.com>
5205         * config.gcc (supported_defaults): Add madd4.
5206         (with_madd4): Add validation.
5207         (all_defaults): Add madd4.
5208         * config/mips/mips.opt (mmadd4): New option.
5209         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
5210         mmadd4.
5211         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
5212         __mips_no_madd4.
5213         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
5214         (ISA_HAS_FUSED_MADD4): Likewise.
5215         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
5216         * gcc/doc/install.texi (--with-madd4): Document the new option.
5218 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5220         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
5221         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
5222         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
5223         (aarch64_init_pauth_hint_builtins): New.
5224         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
5225         (aarch64_expand_builtin): Expand new builtins.
5227 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5229         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
5230         * combine-stack-adj.c (no_unhandled_cfa): Handle
5231         REG_CFA_TOGGLE_RA_MANGLE.
5232         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
5233         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
5234         info for return address signing.
5235         (aarch64_expand_epilogue): Likewise.
5237 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5239         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
5240         * config/aarch64/aarch64-protos.h
5241         (aarch64_return_address_signing_enabled): New declaration.
5242         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
5243         New function.
5244         (aarch64_expand_prologue): Sign return address before it's pushed onto
5245         stack.
5246         (aarch64_expand_epilogue): Authenticate return address fetched from
5247         stack.
5248         (aarch64_override_options): Sanity check for ILP32 and ISA level.
5249         (aarch64_attributes): New function attributes for "sign-return-address".
5250         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
5251         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
5252         ("*do_return"): Generate combined instructions according to key index.
5253         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
5254         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
5255         iterators.
5256         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
5257         * config/aarch64/aarch64.opt (msign-return-address=): New.
5258         * doc/extend.texi (AArch64 Function Attributes): Documents
5259         "sign-return-address=".
5260         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
5262 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
5264         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
5265         overall option summary.
5267 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5269         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
5270         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
5271         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
5272         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
5274 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
5276         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
5277         -mpower9-minmax by default for -mcpu=power9.
5278         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
5279         128-bit floating point.
5281 2017-01-20  Alan Modra  <amodra@gmail.com>
5283         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
5284         optimizing for size.
5286 2017-01-20  Alan Modra  <amodra@gmail.com>
5288         PR target/79144
5289         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
5290         for strcmp and strncmp from corresponding builtin decl.
5292 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
5294         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
5295         instead of i386/rtems-64.h.
5296         * config/i386/rtems-64.h: Remove.
5298 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
5300         PR target/78478
5301         Revert:
5302         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
5304         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
5306 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
5308         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
5309         Change int to HOST_WIDE_INT.
5310         * config/aarch64/aarch64-protos.h
5311         (aarch64_simd_gen_const_vector_dup): Likewise.
5312         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
5314 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
5316         * langhooks-def.h (lhd_type_for_size): New decl.
5317         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
5318         * langhooks.c (lhd_type_for_size): New function, taken from
5319         lto_type_for_size.
5321 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
5323         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
5324         define_bypass for CR latency.
5325         (power9-cracked-alu): Update bypass latency and remove power9-branch.
5326         (power9-alu2): Add define_bypass for CR latency.
5327         (power9-cmp): New.
5328         (power9-mul): Update insn latency.
5329         (power9-mul-compare): Update insn latency, bypass latency and remove
5330         power9-branch.
5332 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5334         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
5335         Delete.
5336         * config/aarch64/aarch64.md
5337         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
5338         aarch64_nopcrelative_literal_loads.
5339         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5341 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
5343         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
5344         TARGET_LOONGSON_3A.
5345         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
5347 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
5349         PR target/78176
5350         * config.gcc (supported_defaults): Add lxc1-sxc1.
5351         (with_lxc1_sxc1): Add validation.
5352         (all_defaults): Add lxc1-sxc1.
5353         * config/mips/mips.opt (mlxc1-sxc1): New option.
5354         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
5355         mlxc1-sxc1.
5356         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
5357         __mips_no_lxc1_sxc1.
5358         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
5359         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
5360         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
5362 2017-01-19  Richard Biener  <rguenther@suse.de>
5364         PR tree-optimization/72488
5365         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
5366         sure to restore SSA info.
5367         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
5369 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
5371         PR rtl-optimization/79121
5372         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
5373         of the inner type when shifting an extended value.
5375 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
5377         PR lto/78407
5378         * symtab.c (symtab_node::equal_address_to): Fix comparing of
5379         interposable aliases.
5381 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
5383         PR target/78516
5384         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
5385         Use the evmergelohi instruction.
5386         (mov_si<mode>_e500_subreg4_2_le): Likewise.
5387         (mov_sitf_e500_subreg8_2_be): Likewise.
5388         (mov_sitf_e500_subreg12_2_le): Likewise.
5389         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
5390         (mov_si<mode>_e500_subreg4_2_be): Likewise.
5391         (mov_sitf_e500_subreg8_2_le): Likewise.
5392         (mov_sitf_e500_subreg12_2_be): Likewise.
5394 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5396         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
5397         attribute from vecsimple to vecperm.
5398         (altivec_vbpermq2): Likewise.
5400 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5402         PR target/79040
5403         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
5405 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5406         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
5407         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
5408         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
5409         case where N arg is SIZE_MAX.
5410         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
5411         (cmpstrsi): Add pattern.
5413 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5415         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5416         __builtin_vec_revb builtins.
5417         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
5418         built-in functions to support generation of the ISA 3.0 XXBR<x>
5419         vector byte reverse instructions.
5420         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
5421         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
5422         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
5423         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
5424         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
5425         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
5426         (P9V_BUILTIN_VEC_REVB): Likewise.
5427         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
5428         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
5429         (p9_xxbrq_v16qi): Likewise.
5430         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
5431         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
5432         (p9_xxbrh_v8hi): Likewise.
5433         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
5434         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
5435         vec_revb built-in functions.
5437 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
5439         PR rtl-optimization/78952
5440         * config/i386/i386.md (any_extract): New code iterator.
5441         (*insvqi_2): Use any_extract for source operand.
5442         (*insvqi_3): Use any_shiftrt for source operand.
5444 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
5446         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
5447         New function.
5448         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
5450 2017-01-18  Matthias Klose  <doko@ubuntu.com>
5452         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
5454 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5456         * config/rs6000/altivec.h (vec_bperm): Change #define.
5457         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
5458         (altivec_vbpermq2): New define_insn.
5459         (altivec_vbpermd): Likewise.
5460         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
5461         function interface.
5462         (VBPERMD): Likewise.
5463         (VBPERM): New polymorphic function interface.
5464         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
5465         Add entries for P9V_BUILTIN_VEC_VBPERM.
5466         * doc/extend.texi: Add interfaces for vec_bperm.
5468 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5470         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
5471         first letter of error messages.
5472         (s390_resolve_overloaded_builtin): Likewise.
5473         * config/s390/s390.c (s390_expand_builtin): Likewise.
5474         (s390_invalid_arg_for_unprototyped_fn): Likewise.
5475         (s390_valid_target_attribute_inner_p): Likewise.
5476         * config/s390/s390.md ("tabort"): Likewise.
5478 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
5480         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
5481         (ISA_AVOID_DIV_HILO): New macro.
5482         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
5483         (ISA_HAS_DDIV): Likewise.
5485 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5487         * doc/invoke.texi (fabi-version): Correct number of occurrences.
5489 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5491         * doc/invoke.texi (fabi-version): Spelling fix.
5493 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5495         PR c++/70182
5496         * doc/invoke.texi (fabi-version): Mention mangling fix for
5497         operator names.
5499 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5501         PR c++/77489
5502         * doc/invoke.texi (fabi-version): Document discriminator mangling.
5504 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
5506         PR target/78875
5507         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
5508         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
5509         the new options.
5510         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
5511         flexible settings.
5512         (stack_protect_test): Ditto.
5513         * config/rs6000/rs6000.opt (mstack-protector-guard=,
5514         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
5515         options.
5516         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
5517         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
5518         -mstack-protector-guard-offset=.
5519         (RS/6000 and PowerPC Options): Ditto.
5521 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
5523         * config/i386/i386.h (MASK_CLASS_P): New define.
5524         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
5525         there are no registers from different register sets also when
5526         mask registers are used.  Update function comment.
5527         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
5528         to (*k/*r) and (*k/*km) alternatives.
5530 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
5532         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
5533         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
5534         (EH_RETURN_HANDLER_RTX): New define.
5535         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
5536         Force frame pointer in EH return functions.
5537         (aarch64_expand_epilogue): Add barrier for eh_return.
5538         (aarch64_final_eh_return_addr): Remove.
5539         (aarch64_eh_return_handler_rtx): New function.
5540         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
5541         Remove.
5542         (aarch64_eh_return_handler_rtx): New prototype.
5544 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5546         * config/rs6000/altivec.h (vec_rlmi): New #define.
5547         (vec_vrlnm): Likewise.
5548         (vec_rlnm): Likewise.
5549         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
5550         (UNSPEC_VRLNM): Likewise.
5551         (VIlong): New mode iterator.
5552         (altivec_vrl<VI_char>mi): New define_insn.
5553         (altivec_vrl<VI_char>nm): Likewise.
5554         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
5555         function entry.
5556         (VRLDNM): Likewise.
5557         (RLNM): New polymorphic function entry.
5558         (VRLWMI): New monomorphic function entry.
5559         (VRLDMI): Likewise.
5560         (RLMI): New polymorphic function entry.
5561         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
5562         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
5563         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
5564         vec_vrlnm.
5566 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
5568         PR debug/78839
5569         * dwarf2out.c (field_byte_offset): Restore the
5570         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
5571         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
5572         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
5573         of build2 + fold.
5575 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5577         PR ada/67205
5578         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
5580 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
5582         PR debug/71669
5583         * dwarf2out.c (add_data_member_location_attribute): For constant
5584         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
5585         instead of DW_AT_data_member_location, DW_AT_bit_offset and
5586         DW_AT_byte_size attributes.
5588 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5590         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
5591         after forcing to constant memory when the code model is medium.
5593 2017-01-17  Julia Koval  <julia.koval@intel.com>
5595         PR target/76731
5596         * config/i386/avx512fintrin.h
5597         (_mm512_i32gather_ps): Change __addr type to void const*.
5598         (_mm512_mask_i32gather_ps): Ditto.
5599         (_mm512_i32gather_pd): Ditto.
5600         (_mm512_mask_i32gather_pd): Ditto.
5601         (_mm512_i64gather_ps): Ditto.
5602         (_mm512_mask_i64gather_ps): Ditto.
5603         (_mm512_i64gather_pd): Ditto.
5604         (_mm512_mask_i64gather_pd): Ditto.
5605         (_mm512_i32gather_epi32): Ditto.
5606         (_mm512_mask_i32gather_epi32): Ditto.
5607         (_mm512_i32gather_epi64): Ditto.
5608         (_mm512_mask_i32gather_epi64): Ditto.
5609         (_mm512_i64gather_epi32): Ditto.
5610         (_mm512_mask_i64gather_epi32): Ditto.
5611         (_mm512_i64gather_epi64): Ditto.
5612         (_mm512_mask_i64gather_epi64): Ditto.
5613         (_mm512_i32scatter_ps): Change __addr type to void*.
5614         (_mm512_mask_i32scatter_ps): Ditto.
5615         (_mm512_i32scatter_pd): Ditto.
5616         (_mm512_mask_i32scatter_pd): Ditto.
5617         (_mm512_i64scatter_ps): Ditto.
5618         (_mm512_mask_i64scatter_ps): Ditto.
5619         (_mm512_i64scatter_pd): Ditto.
5620         (_mm512_mask_i64scatter_pd): Ditto.
5621         (_mm512_i32scatter_epi32): Ditto.
5622         (_mm512_mask_i32scatter_epi32): Ditto.
5623         (_mm512_i32scatter_epi64): Ditto.
5624         (_mm512_mask_i32scatter_epi64): Ditto.
5625         (_mm512_i64scatter_epi32): Ditto.
5626         (_mm512_mask_i64scatter_epi32): Ditto.
5627         (_mm512_i64scatter_epi64): Ditto.
5628         (_mm512_mask_i64scatter_epi64): Ditto.
5629         * config/i386/avx512pfintrin.h
5630         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
5631         (_mm512_mask_prefetch_i32gather_ps): Ditto.
5632         (_mm512_mask_prefetch_i64gather_pd): Ditto.
5633         (_mm512_mask_prefetch_i64gather_ps): Ditto.
5634         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
5635         (_mm512_prefetch_i32scatter_ps): Ditto.
5636         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
5637         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
5638         (_mm512_prefetch_i64scatter_pd): Ditto.
5639         (_mm512_prefetch_i64scatter_ps): Ditto.
5640         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
5641         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
5642         * config/i386/avx512vlintrin.h
5643         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
5644         (_mm_mmask_i32gather_ps): Ditto.
5645         (_mm256_mmask_i32gather_pd): Ditto.
5646         (_mm_mmask_i32gather_pd): Ditto.
5647         (_mm256_mmask_i64gather_ps): Ditto.
5648         (_mm_mmask_i64gather_ps): Ditto.
5649         (_mm256_mmask_i64gather_pd): Ditto.
5650         (_mm_mmask_i64gather_pd): Ditto.
5651         (_mm256_mmask_i32gather_epi32): Ditto.
5652         (_mm_mmask_i32gather_epi32): Ditto.
5653         (_mm256_mmask_i32gather_epi64): Ditto.
5654         (_mm_mmask_i32gather_epi64): Ditto.
5655         (_mm256_mmask_i64gather_epi32): Ditto.
5656         (_mm_mmask_i64gather_epi32): Ditto.
5657         (_mm256_mmask_i64gather_epi64): Ditto.
5658         (_mm_mmask_i64gather_epi64): Ditto.
5659         (_mm256_i32scatter_ps): Change __addr type to void*.
5660         (_mm256_mask_i32scatter_ps): Ditto.
5661         (_mm_i32scatter_ps): Ditto.
5662         (_mm_mask_i32scatter_ps): Ditto.
5663         (_mm256_i32scatter_pd): Ditto.
5664         (_mm256_mask_i32scatter_pd): Ditto.
5665         (_mm_i32scatter_pd): Ditto.
5666         (_mm_mask_i32scatter_pd): Ditto.
5667         (_mm256_i64scatter_ps): Ditto.
5668         (_mm256_mask_i64scatter_ps): Ditto.
5669         (_mm_i64scatter_ps): Ditto.
5670         (_mm_mask_i64scatter_ps): Ditto.
5671         (_mm256_i64scatter_pd): Ditto.
5672         (_mm256_mask_i64scatter_pd): Ditto.
5673         (_mm_i64scatter_pd): Ditto.
5674         (_mm_mask_i64scatter_pd): Ditto.
5675         (_mm256_i32scatter_epi32): Ditto.
5676         (_mm256_mask_i32scatter_epi32): Ditto.
5677         (_mm_i32scatter_epi32): Ditto.
5678         (_mm_mask_i32scatter_epi32): Ditto.
5679         (_mm256_i32scatter_epi64): Ditto.
5680         (_mm256_mask_i32scatter_epi64): Ditto.
5681         (_mm_i32scatter_epi64): Ditto.
5682         (_mm_mask_i32scatter_epi64): Ditto.
5683         (_mm256_i64scatter_epi32): Ditto.
5684         (_mm256_mask_i64scatter_epi32): Ditto.
5685         (_mm_i64scatter_epi32): Ditto.
5686         (_mm_mask_i64scatter_epi32): Ditto.
5687         (_mm256_i64scatter_epi64): Ditto.
5688         (_mm256_mask_i64scatter_epi64): Ditto.
5689         (_mm_i64scatter_epi64): Ditto.
5690         (_mm_mask_i64scatter_epi64): Ditto.
5691         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
5692         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
5693         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
5694         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
5695         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
5696         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
5697         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
5698         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
5699         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
5700         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
5701         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
5702         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
5703         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
5704         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
5705         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
5706         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
5707         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
5708         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
5709         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
5710         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
5711         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
5712         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
5713         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
5714         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
5715         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
5716         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
5717         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
5718         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
5719         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
5720         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
5721         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
5722         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
5723         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
5724         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
5725         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
5726         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
5727         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
5728         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
5729         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
5730         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
5731         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
5732         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
5733         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
5734         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
5735         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
5736         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
5737         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
5738         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
5739         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
5740         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
5741         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
5742         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
5743         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
5744         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
5745         definitions accordingly.
5747 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
5748             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
5750         PR target/79079
5751         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
5752         gen_lowpart.
5754 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
5756         PR target/79058
5757         * ira-conflicts.c (ira_build_conflicts): Update total conflict
5758         hard regs for inner regno.
5760 2017-01-17  Martin Liska  <mliska@suse.cz>
5762         PR ipa/71207
5763         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
5764         assumption and add comment.
5766 2017-01-17  Nathan Sidwell  <nathan@acm.org>
5768         * ipa-visibility.c (localize_node): New function, broken out of ...
5769         (function_and_variable_visibility): ... here. Call it.
5771 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
5773         PR middle-end/77445
5774         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
5775         correctly set frequency of oudgoing edge.
5776         (duplicate_thread_path): Fix profile updating.
5778 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
5780         PR other/79046
5781         * configure.ac: Add GCC_BASE_VER.
5782         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
5783         version from BASE-VER file.
5784         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
5785         (gcc.o): Depend on $(BASEVER).
5786         * common.opt (dumpfullversion): New option.
5787         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
5788         * doc/invoke.texi: Document -dumpfullversion.
5789         * doc/install.texi: Document --with-gcc-major-version-only.
5790         * configure: Regenerated.
5792 2017-01-17  Richard Biener  <rguenther@suse.de>
5794         PR tree-optimization/71433
5795         * tree-vrp.c (register_new_assert_for): Merge same asserts
5796         on all incoming edges.
5797         (process_assert_insertions_for): Handle insertions at the
5798         beginning of BBs.
5800 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
5802         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
5803         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
5805 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5807         PR target/78633
5808         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
5809         RTL sharing.
5811 2017-01-17  Alan Modra  <amodra@gmail.com>
5813         PR target/79066
5814         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
5815         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
5816         symbolic stack limit when pic.
5818 2017-01-16  Martin Sebor  <msebor@redhat.com>
5820         PR tree-optimization/78608
5821         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
5823 2017-01-16  Jeff Law  <law@redhat.com>
5825         Revert:
5826         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
5827         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
5828         for several include directories that may be relative to sysroot.
5829         * config/i386/x-mingw32 (gplus_includedir): Define.
5830         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
5831         (native_system_includedir): Likewise.
5832         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
5833         override if TARGET_SYSTEM_ROOT is defined.
5834         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
5836         PR tree-optimization/79090
5837         PR tree-optimization/33562
5838         PR tree-optimization/61912
5839         PR tree-optimization/77485
5840         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
5841         and computed trims into the dump file.
5843 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
5845         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
5847 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
5849         PR c/79089
5850         * gimplify.c (gimplify_init_constructor): If want_value and
5851         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
5852         fix.
5854         PR target/79080
5855         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
5856         sequence.  Formatting fixes.
5857         (doloop_optimize): Formatting fixes.
5859         PR driver/49726
5860         * gcc.c (debug_level_greater_than_spec_func): New function.
5861         (static_spec_functions): Add debug-level-gt spec function.
5862         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
5863         !g0.
5864         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
5865         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
5866         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
5867         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
5868         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
5869         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
5871 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
5873         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
5874         QImode fixups to general and mask registers only.
5876 2017-01-16  Carl Love  <cel@us.ibm.com>
5878         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
5879         for built-in functions
5880         vector signed char vec_nabs (vector signed char)
5881         vector signed short vec_nabs (vector signed short)
5882         vector signed int vec_nabs (vector signed int)
5883         vector signed long long vec_nabs (vector signed long long)
5884         vector float vec_nabs (vector float)
5885         vector double vec_nabs (vector double)
5886         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
5887         and NABS overload.
5888         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
5889         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
5890         * doc/extend.texi: Update the documentation file for the new built-in
5891         functions.
5893 2017-01-16  Martin Sebor  <msebor@redhat.com>
5895         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
5896         message.
5898 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5900         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
5901         UNSPEC_VSX__XXSPLTD to require special splat handling.
5903 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
5905         PR bootstrap/78616
5906         * system.h: Poison strndup.
5908 2017-01-16  Alan Modra  <amodra@gmail.com>
5910         PR target/79098
5911         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
5912         use a switch.
5914 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
5916         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
5918 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
5920         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
5921         call recog here.  Assert that INSN_CODE (insn) is non-negative.
5923 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
5925         PR target/72749
5926         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
5927         fallthrough.
5928         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
5929         in the currently scheduled RTL fragment.
5931 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
5933         PR rtl-optimization/78751
5934         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
5935         give up.
5937 2017-01-14  Jeff Law  <law@redhat.com>
5939         PR tree-optimization/79090
5940         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
5941         variable length stores.
5942         (compute_trims): Delete dead assignment to *trim_tail.
5943         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
5944         zero length.
5946 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
5948         PR rtl-optimization/78626
5949         PR rtl-optimization/78727
5950         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
5951         of a block, and split such blocks after everything else is finished.
5953 2017-01-14  Alan Modra  <amodra@gmail.com>
5955         PR target/72749
5956         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
5957         target legitimate_combined_insn.
5958         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
5959         (rs6000_legitimate_combined_insn): New function.
5960         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
5961         all uses.
5962         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
5963         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
5964         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
5966 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
5968         * doc/frontends.texi (G++ and GCC): Remove references to Java.
5970 2017-01-13  Jeff Law  <law@redhat.com>
5972         PR tree-optimization/33562
5973         PR tree-optimization/61912
5974         PR tree-optimization/77485
5975         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
5976         a statement.
5977         (delete_dead_assignment): Likewise.
5978         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
5979         statement to delete_dead_call and delete_dead_assignment.
5981 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
5983         PR c/78304
5984         * substring-locations.c (format_warning_va): Strengthen case 1 so
5985         that both endpoints of the substring must be within the format
5986         range for just the substring to be printed.
5988 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
5990         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
5991         * config/i386/i386.c (ix86_target_string): Add missing options
5992         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
5993         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
5994         flags_other and ix86_target_other to flags2_other.  Display unknown
5995         isa2 options.
5996         (ix86_valid_target_attribute_inner_p): Add missing options and
5997         reorder options by implied ISAs, as in ix86_target_string.
5999 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
6001         * hash-table.h (hash_table::too_empty_p): New function.
6002         (hash_table::expand): Use it.
6003         (hash_table::traverse): Likewise.
6004         (hash_table::empty_slot): Use sizeof (value_type) instead of
6005         sizeof (PTR) to convert bytes to elements.  Shrink the table
6006         if the current size is excessive for the current number of
6007         elements.
6009 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
6011         * ira-costs.c (record_reg_classes): Break from the inner loop
6012         early once alt_fail is known to be true.  Update outer loop
6013         handling accordingly.
6015 2017-01-13  Jeff Law  <law@redhat.com>
6017         * tree-ssa-dse.c (decrement_count): New function.
6018         (increment_start_addr, maybe_trim_memstar_call): Likewise.
6019         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
6020         when we know the partially dead statement is a mem* function.
6022         PR tree-optimization/61912
6023         PR tree-optimization/77485
6024         * tree-ssa-dse.c: Include expr.h.
6025         (maybe_trim_constructor_store): New function.
6026         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
6028         PR tree-optimization/33562
6029         PR tree-optimization/61912
6030         PR tree-optimization/77485
6031         * doc/invoke.texi: Document new dse-max-object-size param.
6032         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
6033         * tree-ssa-dse.c: Include params.h.
6034         (dse_store_status): New enum.
6035         (initialize_ao_ref_for_dse): New, partially extracted from
6036         dse_optimize_stmt.
6037         (valid_ao_ref_for_dse, normalize_ref): New.
6038         (setup_live_bytes_from_ref, compute_trims): Likewise.
6039         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
6040         (maybe_trim_partially_dead_store): Likewise.
6041         (maybe_trim_complex_store): Likewise.
6042         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
6043         Track what bytes live from the original store.  Return tri-state
6044         for dead, partially dead or live.
6045         (dse_dom_walker): Add constructor, destructor and new private members.
6046         (delete_dead_call, delete_dead_assignment): New extracted from
6047         dse_optimize_stmt.
6048         (dse_optimize_stmt): Make a member of dse_dom_walker.
6049         Use initialize_ao_ref_for_dse.
6051         PR tree-optimization/33562
6052         PR tree-optimization/61912
6053         PR tree-optimization/77485
6054         * sbitmap.h (bitmap_count_bits): Prototype.
6055         (bitmap_clear_range, bitmap_set_range): Likewise.
6056         * sbitmap.c (bitmap_clear_range): New function.
6057         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
6059 2017-01-13  Martin Liska  <mliska@suse.cz>
6061         PR ipa/79043
6062         * function.c (set_cfun): Add new argument force.
6063         * function.h (set_cfun): Likewise.
6064         * ipa-inline-transform.c (inline_call): Use the function when
6065         strict alising from is dropped for function we inline to.
6067 2017-01-13  Richard Biener  <rguenther@suse.de>
6069         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
6070         for dumping GIMPLE INTEGER_CSTs.
6072 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6074         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
6075         to 201112L since C++17.
6077 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
6079         PR sanitizer/78887
6080         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
6081         if -fsanitize=kernel-address is present.
6083 2017-01-13  Richard Biener  <rguenther@suse.de>
6085         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
6086         as _Literal ( type ) number in case usual suffixes do not
6087         preserve all information.
6089 2017-01-13  Richard Biener  <rguenther@suse.de>
6091         PR tree-optimization/77283
6092         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
6093         and ssa-iterators.h.
6094         (is_feasible_trace): Implement a cost model based on joiner
6095         PHI node uses.
6097 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6099         PR target/79004
6100         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
6101         char or short to __float128/_Float128 directly.
6103 2017-01-12  Martin Sebor  <msebor@redhat.com>
6105         to -Wformat-overflow.
6106         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
6107         (min_bytes_remaining): Same.
6108         (get_string_length): Same.
6109         (format_string): Same.
6110         (format_directive): Same.
6111         (add_bytes): Same.
6112         (pass_sprintf_length::handle_gimple_call): Same.
6114 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
6116         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
6117         info.nowrite calls with no lhs that can't throw.  Return bool
6118         whether gsi_remove has been called or not.
6119         (pass_sprintf_length::handle_gimple_call): Return bool whether
6120         try_substitute_return_value called gsi_remove.  Formatting fix.
6121         (pass_sprintf_length::execute): Don't use gsi_remove if
6122         handle_gimple_call returned true.
6124         PR bootstrap/79069
6125         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
6126         be removed due to side-effects, don't remove following barrier nor
6127         turn the successor edge into fallthru edge.
6129 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6131         PR target/79044
6132         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
6133         element-reversing loads and stores as not swappable.
6135 2017-01-12  Nathan Sidwell  <nathan@acm.org>
6136             Nicolai Stange  <nicstange@gmail.com>
6138         * combine.c (try_combine): Don't ignore result of overlap checking
6139         loop.  Combine overlap & asm check into single loop.
6141 2017-01-12  Richard Biener  <rguenther@suse.de>
6143         * tree-pretty-print.c (dump_generic_node): Provide -gimple
6144         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
6146 2017-01-12  Richard Biener  <rguenther@suse.de>
6148         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
6149         and TS_TARGET_OPTION directly derive from TS_BASE.
6150         * tree-core.h (tree_optimization_option): Derive from tree_base.
6151         (tree_target_option): Likewise.
6153 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
6155         * config/i386/i386.c (memory_address_length): Increase len
6156         only when rip_relative_addr_p returns false.
6158 2017-01-11  Julia Koval  <julia.koval@intel.com>
6160         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
6161         (OPTION_MASK_ISA_SGX_SET): New.
6162         (ix86_handle_option): Handle OPT_msgx.
6163         * config.gcc: Added sgxintrin.h.
6164         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
6165         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
6166         * config/i386/i386.c (ix86_target_string): Add -msgx.
6167         (PTA_SGX): New.
6168         (ix86_option_override_internal): Handle new options.
6169         (ix86_valid_target_attribute_inner_p): Add sgx.
6170         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
6171         * config/i386/i386.opt: Add msgx.
6172         * config/i386/sgxintrin.h: New file.
6173         * config/i386/x86intrin.h: Add sgxintrin.h.
6175 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
6177         PR c++/71537
6178         * fold-const.c (maybe_nonzero_address): Return 1 for function
6179         local objects.
6180         (tree_single_nonzero_warnv_p): Don't handle function local objects
6181         here.
6183         PR c++/72813
6184         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
6185         of c-header.
6187 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
6189         PR driver/78877
6190         * opts.c: Include "spellcheck.h"
6191         (struct string_fragment): New struct.
6192         (struct edit_distance_traits<const string_fragment &>): New
6193         struct.
6194         (get_closest_sanitizer_option): New function.
6195         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
6197 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
6199         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
6200         by 12.
6201         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
6202         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
6203         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
6204         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
6205         for initial die_offset if dwarf_split_debug_info.
6206         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
6207         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
6208         fields.
6209         (output_skeleton_debug_sections): Formatting fix.  Use
6210         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
6211         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
6213 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
6215         * config/arm/cortex-a53.md: Add bypasses for
6216         cortex_a53_r2f_cvt.
6217         (cortex_a53_r2f): Only use for transfers.
6218         (cortex_a53_f2r): Likewise.
6219         (cortex_a53_r2f_cvt): Add reservation for conversions.
6220         (cortex_a53_f2r_cvt): Likewise.
6222 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
6224         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
6225         to all inlined functions, change static to extern.
6227 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
6229         PR target/78253
6230         * config/arm/arm.c (legitimize_pic_address): Handle reference to
6231         weak symbol.
6232         (arm_assemble_integer): Likewise.
6234 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
6236         * config.gcc: Use new awk script to check CPU, FPU and architecture
6237         parameters for --with-... options.
6238         * config/arm/parsecpu.awk: New file
6239         * config/arm/arm-cpus.in: New file.
6240         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
6241         files.
6242         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
6243         files.
6244         * config/arm/t-arm: Update dependency rules.
6245         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
6246         of processing .def files.
6247         * config/arm/genopt.sh: Deleted.
6248         * config/arm/gentune.sh: Deleted.
6249         * config/arm/arm-cores.def: Deleted.
6250         * config/arm/arm-arches.def: Deleted.
6251         * config/arm/arm-fpus.def: Deleted.
6252         * config/arm/arm-tune.md: Regenerated.
6253         * config/arm/arm-tables.opt: Regenerated.
6254         * config/arm/arm-cpu.h: New generated file.
6255         * config/arm/arm-cpu-data.h: New generated file.
6256         * config/arm/arm-cpu-cdata.h: New generated file.
6258 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
6260         PR lto/79042
6261         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
6262         bit.
6263         (input_varpool_node): Unpack dynamically_initialized bit.
6265 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6267         PR rtl-optimization/79032
6268         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
6269         the alignment of the adjusted memory reference against that of MODE,
6270         instead of the alignment of the original memory reference.
6272 2017-01-11  Martin Jambor  <mjambor@suse.cz>
6274         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
6275         test.
6276         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
6277         decorated functions.
6279 2017-01-11  Richard Biener  <rguenther@suse.de>
6281         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
6282         set range/nonnull info for PHI results.  Do not set it on
6283         stmts marked for removal.
6285 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
6287         * expr.c (store_field): In the bitfield case, fetch the return value
6288         from the registers before applying a single big-endian adjustment.
6289         Always do a final load for a BLKmode value not larger than a word.
6291 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
6293         PR c++/77949
6294         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
6295         that we correctly handle column numbers greater than
6296         LINE_MAP_MAX_COLUMN_NUMBER.
6298 2017-01-10  Martin Sebor  <msebor@redhat.com>
6300         PR middle-end/78245
6301         * gimple-ssa-sprintf.c (get_destination_size): Call
6302         {init,fini}object_sizes.
6303         * tree-object-size.c (addr_object_size): Adjust.
6304         (pass_through_call): Adjust.
6305         (pass_object_sizes::execute): Adjust.
6306         * tree-object-size.h (fini_object_sizes): Declare.
6308 2017-01-10  Martin Sebor  <msebor@redhat.com>
6310         PR tree-optimization/78775
6311         * builtins.c (get_size_range): Move...
6312         * calls.c: ...to here.
6313         (alloc_max_size): Accept zero argument.
6314         (operand_signed_p): Remove.
6315         (maybe_warn_alloc_args_overflow): Call get_size_range.
6316         * calls.h (get_size_range): Declare.
6318 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
6320         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
6321         from TI's devices.csv file as of September 2016.
6322         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
6324 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
6326         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
6327         * doc/invoke.texi: Likewise.
6328         * doc/md.texi: Likewise.
6329         * doc/objc.texi: Likewise.
6331 2017-01-10  Joshua Conner  <joshconner@google.com>
6333         * config/arm/fuchsia-elf.h: New file.
6334         * config/fuchsia.h: New file.
6335         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
6336         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
6337         targets.
6338         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
6340 2016-01-10  Richard Biener  <rguenther@suse.de>
6342         PR tree-optimization/79034
6343         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
6344         Propagate out degenerate PHIs in the joiner.
6346 2017-01-10  Martin Liska  <mliska@suse.cz>
6348         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
6349         (sort_congruence_classes_by_decl_uid): Likewise.
6350         (sort_congruence_class_groups_by_decl_uid): Likewise.
6351         (sem_item_optimizer::merge_classes): Sort class, groups in these
6352         classes and members in the groups by DECL_UID of declarations.
6353         This would make merge operations stable.
6355 2017-01-10  Martin Liska  <mliska@suse.cz>
6357         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
6358         usage of m_classes_vec.
6359         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
6360         (sem_item_optimizer::get_group_by_hash): Likewise.
6361         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6362         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
6363         (sem_item_optimizer::verify_classes): Likewise.
6364         (sem_item_optimizer::process_cong_reduction): Likewise.
6365         (sem_item_optimizer::dump_cong_classes): Likewise.
6366         (sem_item_optimizer::merge_classes): Likewise.
6367         * ipa-icf.h (congruence_class_hash): Rename from
6368         congruence_class_group_hash.  Remove declaration of m_classes_vec.
6370 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
6372         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
6373         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
6374         * config.gcc: Add avx512vpopcntdqintrin.h.
6375         * config/i386/avx512vpopcntdqintrin.h: New.
6376         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
6377         * config/i386/i386-builtin-types.def: Add new types.
6378         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
6379         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
6380         __builtin_ia32_vpopcountq_v8di_mask): New.
6381         * config/i386/i386-c.c (ix86_target_macros_internal): Define
6382         __AVX512VPOPCNTDQ__.
6383         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
6384         (PTA_AVX512VPOPCNTDQ): Define.
6385         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
6386         TARGET_AVX512VPOPCNTDQ_P): Define.
6387         * config/i386/i386.opt: Add mavx512vpopcntdq.
6388         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
6389         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
6391 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6393         PR middle-end/77484
6394         * predict.def (PRED_CALL): Set to 67.
6396 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
6398         * expr.c (store_field): In the bitfield case, if the value comes from
6399         a function call and is of an aggregate type returned in registers, do
6400         not modify the field mode; extract the value in all cases if the mode
6401         is BLKmode and the size is not larger than a word.
6403 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
6405         PR target/71017
6406         * config/i386/cpuid.h: Fix undefined behavior.
6408 2017-01-04  Jeff Law  <law@redhat.com>
6410         PR tree-optimization/79007
6411         PR tree-optimization/67955
6412         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
6413         conservative for pt.null when flag_non_call_exceptions is on.
6415 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
6417         PR translation/79019
6418         PR translation/79020
6419         * params.def (PARAM_INLINE_MIN_SPEEDUP,
6420         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
6421         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
6422         in descriptions.
6423         * config/avr/avr.opt (maccumulate-args): Likewise.
6424         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
6425         * common.opt (freport-bug): Likewise.
6426         * cif-code.def (CIF_FINAL_ERROR): Likewise.
6427         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
6428         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
6429         translatable string.
6430         * config/i386/i386.c (function_value_32): Likewise.
6431         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
6432         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
6433         Likewise.
6434         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
6435         * common/config/msp430/msp430-common.c (msp430_handle_option):
6436         Likewise.
6437         * symtab.c (symtab_node::verify_base): Likewise.
6438         * opts.c (set_debug_level): Likewise.
6439         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
6440         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
6441         missing whitespace to translatable strings.
6442         * config/avr/avr.md (bswapsi2): Fix typo in comment.
6443         * config/sh/superh.h: Likewise.
6444         * config/i386/xopintrin.h: Likewise.
6445         * config/i386/znver1.md: Likewise.
6446         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
6447         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
6448         * double-int.h (struct double_int): Likewise.
6449         * double-int.c (div_and_round_double): Likewise.
6450         * wide-int.cc: Likewise.
6451         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
6452         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6453         * cfgcleanup.c (crossjumps_occured): Renamed to ...
6454         (crossjumps_occurred): ... this.
6455         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
6456         Adjust all uses.
6458         PR tree-optimization/78899
6459         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
6460         returning bool return struct loop *, NULL for failure and the new
6461         loop on success.
6462         (versionable_outer_loop_p): Don't version outer loop if it has
6463         dont_vectorized bit set.
6464         (tree_if_conversion): When versioning outer loop, ensure
6465         tree_if_conversion is performed also on the inner loop of the
6466         non-vectorizable outer loop copy.
6467         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
6468         LOOP_VECTORIZED in inner loop of the scalar outer loop and
6469         prevent vectorization of it.
6470         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
6471         the outer loop vectorization of the non-scalar version is attempted
6472         before vectorization of the inner loop in scalar version.  If
6473         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
6474         vectorization of its inner loop.
6475         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
6476         has 2 inner loops, rename also on edges from bb whose single pred
6477         is outer_loop->header.  Fix typo in function comment.
6479 2017-01-09  Martin Sebor  <msebor@redhat.com>
6481         PR bootstrap/79033
6482         * asan.c (asan_emit_stack_protection): Increase local buffer size
6483         to avoid snprintf truncation warning.
6485 2017-01-09  Andrew Pinski  <apinski@cavium.com>
6487         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
6488         to reference thunderx2t99 for the tuning structure
6489         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
6490         Rename to ...
6491         (thunderx2t99_extra_costs): This.
6492         * config/aarch64/aarch64-tune.md: Regenerate.
6493         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
6494         (vulcan_addrcost_table): This.
6495         (vulcan_regmove_cost): Rename to ...
6496         (thunderx2t99_regmove_cost): This.
6497         (vulcan_vector_cost): Rename to ...
6498         (thunderx2t99_vector_cost): this.
6499         (vulcan_branch_cost): Rename to ...
6500         (thunderx2t99_branch_cost): This.
6501         (vulcan_tunings): Rename to ...
6502         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
6503         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
6505 2017-01-09  Martin Jambor  <mjambor@suse.cz>
6507         PR ipa/78365
6508         PR ipa/78599
6509         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
6510         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
6511         (propagate_vr_accross_jump_function): Use the above function for all
6512         value range computations for pass-through jump functions and type
6513         converasion from explicit value range values.
6514         (ipcp_propagate_stage): Do not attempt to deduce types of formal
6515         parameters from TYPE_ARG_TYPES.
6516         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
6517         (ipa_write_node_info): Stream type of the actual argument.
6518         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
6520 2017-01-09  Martin Liska  <mliska@suse.cz>
6522         PR pch/78970
6523         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
6524         (lookup_compiler): Do not show error message with have_E.
6526 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
6528         PR tree-optimization/78938
6529         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
6530         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
6531         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
6532         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
6533         fixes.
6535 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6537         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
6538         is const0_rtx.
6540 2017-01-09  Richard Biener  <rguenther@suse.de>
6542         PR tree-optimization/78997
6543         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
6544         name condition properly.
6546 2017-01-09  Richard Biener  <rguenther@suse.de>
6548         PR debug/79000
6549         * dwarf2out.c (is_cxx): New overload with context.
6550         (is_naming_typedef_decl): Use it.
6552 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6554         * invoke.texi (Option Summary): Correct spacing in option lists
6555         and add line breaks to fix over-long lines.
6557 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6559         PR middle-end/17660
6561         * extend.texi (Common Variable Attributes): Add xref to GCC
6562         Internals manual to explain mode attribute keywords.
6564 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6566         PR other/16519
6567         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
6568         and Preprocessor Options.
6569         (Options for Linking): Document -pthread here....
6570         (RS/6000 and PowerPC Options): ...not here.
6571         (Solaris 2 Options): ...or here.
6572         * doc/cppopts.texi: Document -pthread.
6574 2017-01-08  Martin Sebor  <msebor@redhat.com>
6576         PR middle-end/77708
6577         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
6578         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
6579         New member functions.
6580         (format_directive): Used them.
6581         (add_bytes): Same.
6582         (pass_sprintf_length::handle_gimple_call): Same.
6583         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
6584         to avoid truncation for any argument.
6585         (extract_affine_mul): Same.
6586         * tree.c (get_file_function_name): Same.
6588 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6590         PR middle-end/77484
6591         * predict.def (PRED_INDIR_CALL): Set to 86.
6593 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6595         PR preprocessor/54124
6596         * doc/cppopts.texi: Reformat -d subtable to list the full name
6597         of the options.  Add cross-reference to the docs for the general
6598         compiler -d options.
6599         * doc/invoke.texi (Developer Options): Add cross-reference to the
6600         preprocessor-specific -d option documentation.
6602 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6604         PR preprocessor/13498
6605         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
6606         redudant material, and reflect new command-line options.
6607         (System Headers): Likewise.
6609 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6611         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
6612         -isystem, and -idirafter.  Copy-edit.
6613         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
6614         default for -ftrack-macro-expansion.  Delete obsolete and
6615         badly-formatted implementation details about -fdebug-cpp output.
6616         * doc/cppwarnopts.texi: Copy-edit.
6618 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
6620         PR c++/72803
6621         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
6622         that the transition from a max line width >= 1<<10 to narrower
6623         lines works correctly.
6625 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
6627         * doc/options.texi (PerFunction): New.
6628         * opt-functions.awk (switch_flags): Map both Optimization and
6629         PerFunction to CL_OPTIMIZATION.
6630         * opth-gen.awk: Test for PerFunction flag along with
6631         Optimization.
6632         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
6633         it only when the latter is present.  Skip those that don't in
6634         the hash function generator.
6635         * common.opt (fvar-tracking): Mark as PerFunction instead of
6636         Optimization.
6637         (fvar-tracking-assignments): Likewise.
6638         (fvar-tracking-assignments-toggle): Likewise.
6639         (fvar-tracking-uninit): Likewise.
6641 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
6643         PR translation/79018
6644         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
6645         the and store.
6647 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
6649         PR target/57583
6650         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
6651         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
6652         TARGET_LONG_JUMP_TABLE_OFFSETS.
6653         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
6654         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
6655         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
6656         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
6657         * config/m68k/m68k.md (tablejump expander): Likewise.
6658         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
6659         TARGET_LONG_JUMP_TABLE_OFFSETS.
6660         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
6661         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
6663 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
6664             David Holsgrove <david.holsgrove@xilinx.com>
6666         * common/config/microblaze/microblaze-common.c
6667         (TARGET_EXCEPT_UNWIND_INFO): Remove.
6668         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
6669         New prototype.
6670         * config/microblaze/microblaze.c (microblaze_must_save_register)
6671         (microblaze_expand_epilogue, microblaze_return_addr): Handle
6672         calls_eh_return.
6673         (microblaze_eh_return): New function.
6674         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
6675         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
6676         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
6677         * config/microblaze/microblaze.md (eh_return): New pattern.
6679 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
6681         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
6682         GCC_DIAGNOSTIC_STRINGIFY): Define.
6684         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
6686 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6688         * config/arm/arm.md (<mcrr>): New.
6689         (<mrrc>): New.
6690         * config/arm/arm.c (arm_arch5te): New.
6691         (arm_option_override): Set arm_arch5te.
6692         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
6693         and mrrc2.
6694         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
6695         (arm_mcrr_qualifiers): ... this. New.
6696         (MRRC_QUALIFIERS): Define to...
6697         (arm_mrrc_qualifiers): ... this. New.
6698         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
6699         __arm_mrrc2): New.
6700         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
6701         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
6702         (MRRCI, mrrc, MRRC): New.
6703         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
6704         VUNSPEC_MRRC2): New.
6706 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6708         * config/arm/arm.md (<mcr>): New.
6709         (<mrc>): New.
6710         * config/arm/arm.c (arm_coproc_builtin_available): Add
6711         support for mcr, mrc, mcr2 and mrc2.
6712         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
6713         (arm_mcr_qualifiers): ... this. New.
6714         (MRC_QUALIFIERS): Define to ...
6715         (arm_mrc_qualifiers): ... this. New.
6716         (MCR_QUALIFIERS): Define to ...
6717         (arm_mcr_qualifiers): ... this. New.
6718         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
6719         __arm_mrc2): New.
6720         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
6721         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
6722         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
6723         VUNSPEC_MRC2): New.
6725 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6727         * config/arm/arm.md (*ldc): New.
6728         (*stc): New.
6729         (<ldc>): New.
6730         (<stc>): New.
6731         * config/arm/arm.c (arm_coproc_builtin_available): Add
6732         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
6733         (arm_coproc_ldc_stc_legitimate_address): New.
6734         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
6735         'qualifier_const_pointer'.
6736         (LDC_QUALIFIERS): Define to...
6737         (arm_ldc_qualifiers): ... this. New.
6738         (STC_QUALIFIERS): Define to...
6739         (arm_stc_qualifiers): ... this. New.
6740         * config/arm/arm-protos.h
6741         (arm_coproc_ldc_stc_legitimate_address): New.
6742         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
6743         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
6744         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
6745         stc2, stcl, stc2l): New.
6746         * config/arm/constraints.md (Uz): New.
6747         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
6748         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
6749         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
6750         VUNSPEC_STC2L): New.
6752 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6754         * config/arm/arm.md (<cdp>): New.
6755         * config/arm/arm.c (neon_const_bounds): Rename this ...
6756         (arm_const_bounds): ... this.
6757         (arm_coproc_builtin_available): New.
6758         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
6759         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
6760         (CDP_QUALIFIERS): Define to...
6761         (arm_cdp_qualifiers): ... this. New.
6762         (void_UP): Define.
6763         (arm_expand_builtin_args): Add case for 6 arguments.
6764         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
6765         (arm_const_bounds): ... this.
6766         (arm_coproc_builtin_available): New.
6767         * config/arm/arm_acle.h (__arm_cdp): New.
6768         (__arm_cdp2): New.
6769         * config/arm/arm_acle_builtins.def (cdp): New.
6770         (cdp2): New.
6771         * config/arm/iterators.md (CDPI,CDP,cdp): New.
6772         * config/arm/neon.md: Rename all 'neon_const_bounds' to
6773         'arm_const_bounds'.
6774         * config/arm/types.md (coproc): New.
6775         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
6776         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
6777         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
6778         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
6780 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6782         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
6783         (UBINOP_QUALIFIERS): New.
6784         (si_UP): Define.
6785         (acle_builtin_data): New. Change comment.
6786         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
6787         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
6788         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
6789         arm_acle_builtins.def.
6790         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
6791         (arm_init_acle_builtins): New.
6792         (CRC32_BUILTIN): Remove.
6793         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
6794         crc32cb, crc32ch and crc32cw.
6795         (arm_init_crc32_builtins): Remove.
6796         (arm_init_builtins): Use arm_init_acle_builtins rather
6797         than arm_init_crc32_builtins.
6798         (arm_expand_acle_builtin): New.
6799         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
6800         * config/arm/arm_acle_builtins.def: New.
6802 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6804         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
6805         (arm_builtin_datum): ... this.
6806         (arm_init_neon_builtin): Rename to ...
6807         (arm_init_builtin): ... this. Add a new parameters PREFIX
6808         and USE_SIG_IN_NAME.
6809         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
6810         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
6811         'arm_builtin_datum'.
6812         (arm_init_vfp_builtins): Likewise.
6813         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
6814         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
6815         (arm_expand_neon_args): Rename to ...
6816         (arm_expand_builtin_args): ... this. Rename builtin_arg
6817         enum values and differentiate between ARG_BUILTIN_MEMORY
6818         and ARG_BUILTIN_NEON_MEMORY.
6819         (arm_expand_neon_builtin_1): Rename to ...
6820         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
6821         values, arm_expand_builtin_args and add bool parameter NEON.
6822         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
6823         (arm_expand_vfp_builtin): Likewise.
6824         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
6826 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6828         PR middle-end/77484
6829         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
6830         * predict.c (tree_estimate_probability_bb): Reverse direction of
6831         polymorphic call predictor.
6833 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
6835         * passes.c (execute_one_pass): Split out pass-skipping logic into...
6836         (determine_pass_name_match): ...this new function and...
6837         (should_skip_pass_p): ...this new function.
6839 2017-01-06  Nathan Sidwell  <nathan@acm.org>
6841         * ipa-visibility.c (function_and_variable_visibility): Reformat
6842         comments and long lines.  Remove extrneous if.
6843         * symtab.c (symtab_node::make_decl_local): Fix code format.
6844         (symtab_node::set_section_for_node): Fix comment typo.
6846 2017-01-06  Martin Liska  <mliska@suse.cz>
6848         PR bootstrap/79003
6849         * lra-constraints.c: Rename invariant to lra_invariant.
6850         * predict.c (set_even_probabilities): Initialize e to NULL.
6852 2017-01-05  Martin Sebor  <msebor@redhat.com>
6854         PR tree-optimization/78910
6855         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
6856         (format_integer): Correct off-by-one error in the handling
6857         of precision with negative numbers in signed conversions..
6859 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
6861         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
6863 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
6865         PR tree-optimization/71016
6866         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
6867         factor_out_conditional_conversion.  Formatting fix.
6868         (factor_out_conditional_conversion): Add cond_stmt argument.
6869         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
6870         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
6871         Formatting fix.
6873 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
6875         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
6876         read-rtl-function.o, and selftest-rtl.o.
6877         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
6878         (selftest::aarch64_test_loading_full_dump): New function.
6879         (selftest::aarch64_run_selftests): New function.
6880         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
6881         selftest::aarch64_run_selftests.
6882         * config/i386/i386.c
6883         (selftest::ix86_test_loading_dump_fragment_1): New function.
6884         (selftest::ix86_test_loading_call_insn): New function.
6885         (selftest::ix86_test_loading_full_dump): New function.
6886         (selftest::ix86_test_loading_unspec): New function.
6887         (selftest::ix86_run_selftests): Call the new functions.
6888         * emit-rtl.c (maybe_set_max_label_num): New function.
6889         * emit-rtl.h (maybe_set_max_label_num): New decl.
6890         * function.c (instantiate_decls): Guard call to
6891         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
6892         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
6893         "static".
6894         * gensupport.c (gen_reader::gen_reader): Pass "false"
6895         for new "compact" param of rtx_reader.
6896         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
6897         rather than an empty string for NULL strings.
6898         * read-md.c: Potentially include config.h rather than bconfig.h.
6899         Wrap include of errors.h with #ifdef GENERATOR_FILE.
6900         (have_error): New global, copied from errors.c.
6901         (md_reader::read_name): Rename to...
6902         (md_reader::read_name_1): ...this, adding "out_loc" param,
6903         and converting "missing name or number" to returning false, rather
6904         than failing.
6905         (md_reader::read_name): Reimplement in terms of read_name_1.
6906         (md_reader::read_name_or_nil): New function.
6907         (md_reader::read_string): Handle "(nil)" by returning NULL.
6908         (md_reader::md_reader): Add new param "compact".
6909         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
6910         (md_reader::read_file): New method.
6911         * read-md.h (md_reader::md_reader): Add new param "compact".
6912         (md_reader::read_file): New method.
6913         (md_reader::is_compact): New accessor.
6914         (md_reader::read_name): Convert return type from void to file_location.
6915         (md_reader::read_name_or_nil): New decl.
6916         (md_reader::read_name_1): New decl.
6917         (md_reader::m_compact): New field.
6918         (noop_reader::noop_reader): Pass "false" for new "compact" param
6919         of rtx_reader.
6920         (rtx_reader::rtx_reader): Add new "compact" param.
6921         (rtx_reader::read_rtx_operand): Make virtual and convert return
6922         type from void to rtx.
6923         (rtx_reader::read_until): New decl.
6924         (rtx_reader::handle_any_trailing_information): New virtual function.
6925         (rtx_reader::postprocess): New virtual function.
6926         (rtx_reader::finalize_string): New virtual function.
6927         (rtx_reader::m_in_call_function_usage): New field.
6928         (rtx_reader::m_reuse_rtx_by_id): New field.
6929         * read-rtl-function.c: New file.
6930         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
6931         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
6932         (selftest::verify_three_block_rtl_cfg): New decl.
6933         * read-rtl-function.h: New file.
6934         * read-rtl.c: Potentially include config.h rather than bconfig.h.
6935         For host, include function.h, memmodel.h, and emit-rtl.h.
6936         (one_time_initialization): New function.
6937         (struct compact_insn_name): New struct.
6938         (compact_insn_names): New array.
6939         (find_code): Handle insn codes in compact dumps.
6940         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
6941         (bind_subst_iter_and_attr): Likewise.
6942         (add_condition_to_string): Likewise.
6943         (add_condition_to_rtx): Likewise.
6944         (apply_attribute_uses): Likewise.
6945         (add_current_iterators): Likewise.
6946         (apply_iterators): Likewise.
6947         (initialize_iterators): Guard usage of apply_subst_iterator with
6948         #ifdef GENERATOR_FILE.
6949         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
6950         (md_reader::read_mapping): Likewise.
6951         (add_define_attr_for_define_subst): Likewise.
6952         (add_define_subst_attr): Likewise.
6953         (read_subst_mapping): Likewise.
6954         (check_code_iterator): Likewise.
6955         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
6956         logic to...
6957         (one_time_initialization): New function.
6958         (rtx_reader::read_until): New method.
6959         (read_flags): New function.
6960         (parse_reg_note_name): New function.
6961         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
6962         Handle reuse_rtx ids.
6963         Wrap iterator lookup within #ifdef GENERATOR_FILE.
6964         Add parsing support for RTL dumps, mirroring the special-cases in
6965         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
6966         values, and calling handle_any_trailing_information.
6967         (rtx_reader::read_rtx_operand): Convert return type from void
6968         to rtx, returning return_rtx.  Handle case 'e'.  Call
6969         finalize_string on XSTR and XTMPL fields.
6970         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
6971          "(nil)" values were omitted.  Call the postprocess vfunc on the
6972         return_rtx.
6973         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
6974         class ctor.  Initialize m_in_call_function_usage.  Call
6975         one_time_initialization.
6976         * rtl-tests.c (selftest::test_uncond_jump): Call
6977         set_new_first_and_last_insn.
6978         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
6979         * selftest-rtl.c: New file.
6980         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
6981         (selftest::get_insn_by_uid): New decl.
6982         * selftest-run-tests.c (selftest::run_tests): Call
6983         read_rtl_function_c_tests.
6984         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
6985         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
6986         dumps.
6988 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
6990         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
6991         operands in a special way.  Assert that pos+len <= mode precision.
6993 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
6995         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
6996         3 argument Alias with unlimited for the negative form.
6997         (fno-vect-cost-model): Removed.
6999 2017-01-05  Martin Liska  <mliska@suse.cz>
7001         * hsa-gen.c (gen_hsa_divmod): New function.
7002         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
7004 2017-01-05  Martin Liska  <mliska@suse.cz>
7006         PR pch/78970
7007         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
7008         header.
7010 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7012         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
7013         small constant length operands.
7015 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7017         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
7018         between loop iterations.
7020 2017-01-05  Martin Liska  <mliska@suse.cz>
7022         PR sanitizer/78815
7023         * gimplify.c (gimplify_decl_expr): Compare to
7024         asan_poisoned_variables instread of checking flags.
7025         (gimplify_target_expr): Likewise.
7026         (gimplify_expr): Likewise.
7027         (gimplify_function_tree): Conditionally initialize
7028         asan_poisoned_variables.
7030 2017-01-04  Jeff Law  <law@redhat.com>
7032         PR tree-optimizatin/78812
7033         * rtl.h (contains_mem_rtx_p): Prototype.
7034         * ifcvt.c (containts_mem_rtx_p): Move from here to...
7035         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
7036         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
7037         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
7038         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
7040 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7042         * input.c (assert_char_at_range): Default-initialize actual_range.
7044 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7046         * df-scan.c (df_ref_create_structure): Make regno unsigned,
7047         to match the caller.
7049 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7051         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
7052         insns after final jump in test to emit dummy move.
7054 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7056         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
7057         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
7059 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7061         * multiple_target.c (create_dispatcher_calls): Init e_next.
7062         * tree-ssa-loop-split.c (split_loop): Init border.
7063         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
7064         scalar_type.
7066 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
7068         PR target/71977
7069         PR target/70568
7070         PR target/78823
7071         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
7072         (altivec_register_operand): Do not return true if the operand
7073         contains a SUBREG mixing SImode and SFmode.
7074         (vsx_register_operand): Likewise.
7075         (vsx_reg_sfsubreg_ok): New predicate.
7076         (vfloat_operand): Do not return true if the operand contains a
7077         SUBREG mixing SImode and SFmode.
7078         (vint_operand): Likewise.
7079         (vlogical_operand): Likewise.
7080         (gpc_reg_operand): Likewise.
7081         (int_reg_operand): Likewise.
7082         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
7083         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
7084         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
7085         SImode and SFmode.
7086         (rs6000_emit_move_si_sf_subreg): New helper function.
7087         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
7088         fixup SUBREGs involving SImode and SFmode.
7089         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
7090         numbers for the new peephole2 optimization.
7091         (peephole2 for SFmode unions): New peephole2 to optimize cases in
7092         the GLIBC math library that do AND/IOR/XOR operations on single
7093         precision floating point.
7094         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
7095         target macros to say whether we need to avoid SUBREGs mixing
7096         SImode and SFmode.
7097         (TARGET_ALLOW_SF_SUBREG): Likewise.
7098         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
7099         (UNSPEC_SI_FROM_SF): Likewise.
7100         (iorxor): Change spacing.
7101         (and_ior_xor): New iterator for AND, IOR, and XOR.
7102         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
7103         (movdi_from_sf_zero_ext): Likewise.
7104         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
7105         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
7106         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
7107         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
7108         (fms<mode>4): Likewise.
7109         (fnma<mode>4): Likewise.
7110         (fnms<mode>4): Likewise.
7111         (nfma<mode>4): Likewise.
7112         (nfms<mode>4): Likewise.
7114 2017-01-04  Marek Polacek  <polacek@redhat.com>
7116         PR c++/64767
7117         * doc/invoke.texi: Document -Wpointer-compare.
7119 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7121         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
7122         RejectNegative.
7124         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
7125         descriptions for -gdwarf-5 and emit them as uleb128 instead of
7126         2-byte data.
7128 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7130         PR target/78056
7131         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
7132         documentation of the powerpc_popcntb_ok attribute.
7133         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7134         code to issue warning messages if a requested CPU configuration is
7135         not supported by the binary (assembler and loader) toolchain.
7136         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
7137         made to define a built-in function that has been disabled.
7138         (paired_init_builtins): Add assertion to prevent ICE if attempt is
7139         made to define a built-in function that has been disabled.
7140         (altivec_init_builtins): Add comment explaining why definition
7141         of the DST built-in functions is not preceded by an assertion
7142         check.  Add assertions to prevent ICE if attempts are made to
7143         define an altivec predicate or an abs* built-in function that has
7144         been disabled.
7145         (htm_init_builtins): Add comment explaining why definition of the
7146         htm built-in functions is not preceded by an assertion check.
7148 2017-01-04  Jeff Law  <law@redhat.com>
7150         PR tree-optimizatin/67955
7151         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
7152         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
7153         the points-to solution does not include pt_null.  Use DECL_PT_UID
7154         unconditionally.
7156 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
7158         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
7159         Use gen_int_mode instead of gen_lopwart for const_int operands.
7161 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7163         PR tree-optimization/71563
7164         * match.pd: Simplify X << Y into X if Y is known to be 0 or
7165         out of range value - has low bits known to be zero.
7167 2017-01-04  Alan Modra  <amodra@gmail.com>
7169         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
7170         * configure: Regenerate.
7171         * config.in: Regenerate.
7173 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7175         PR bootstrap/77569
7176         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
7177         a substring of the message, but strcmp with the whole message.  Ifdef
7178         ENABLE_NLS, translate the message first using dgettext.
7180 2017-01-03  Jeff Law  <law@redhat.com>
7182         PR tree-optimizatin/78856
7183         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
7184         (mark_threaded_blocks): Remove code to truncate thread paths that
7185         cross multiple loop headers.  Instead invalidate the cached loop
7186         iteration information and handle case of a thread path walking
7187         into an irreducible region.
7189 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7191         PR target/78900
7192         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
7193         assertions.  Add support for doing the signbit if the IEEE 128-bit
7194         floating point value is in a GPR.
7195         * config/rs6000/rs6000.md (Fsignbit): Delete.
7196         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
7197         Update the length attribute if the value is in a GPR.
7198         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
7199         the sign or zero extension instruction, since the value is always 0/1.
7200         (signbit<mode>2_dm2): Delete using <Fsignbit>.
7202         PR target/78953
7203         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
7204         extracting SImode to a GPR register so that we can generate a
7205         store, limit the vector to be in a traditional Altivec register
7206         for the vextuwrx instruction.
7208 2017-01-03  Ian Lance Taylor  <iant@google.com>
7210         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
7212 2017-01-03  Martin Sebor  <msebor@redhat.com>
7214         PR tree-optimization/78696
7215         * gimple-ssa-sprintf.c (format_floating): Correct handling of
7216         precision.  Use MPFR for %f for greater fidelity.  Correct handling
7217         of %g.
7218         (pass_sprintf_length::compute_format_length): Set width and precision
7219         specified by asrerisk to void_node for vararg functions.
7220         (try_substitute_return_value): Adjust dump output.
7222 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
7224         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
7226 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7228         * doc/invoke.texi (SPARC options): Document -mlra as the default.
7229         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
7230         -mlra/-mno-lra was passed to the compiler.
7232 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
7234         PR rtl-optimization/65618
7235         * emit-rtl.c (try_split): Move initialization of "before" and
7236         "after" to just before the call to emit_insn_after_setloc.
7238 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
7240         * doc/md.texi (Standard Names): Remove reference to Java frontend.
7242 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7244         * dwarf2out.c (gen_enumeration_type_die): When
7245         -gno-strict-dwarf, add a DW_AT_encoding attribute.
7247 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
7249         PR tree-optimization/78965
7250         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
7251         Change first argument from const call_info & to call_info &.  For %n
7252         set info.nowrite to false.
7254         PR middle-end/78901
7255         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
7256         possibly throwing calls.
7258         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
7259         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
7260         and fns handling, rather than in a separate case SSA_NAME.
7262 2017-01-02  Jeff Law  <law@redhat.com>
7264         * config/darwin-driver.c (darwin_driver_init): Const-correctness
7265         fixes for first_period and second_period variables.
7267 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
7269         PR target/78967
7270         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
7271         (*insvqi_1): New insn pattern.
7272         (*insvqi_1_mem_rex64): Ditto.
7273         (*insvqi_2): Ditto.
7274         (*insvqi_3): Rename from *insvqi.
7276         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
7278 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
7280         * doc/cfg.texi (Edges): Remove reference to Java.
7281         (Maintaining the CFG): Ditto.
7283 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
7285         PR middle-end/77674
7286         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
7287         transparent aliases.
7289 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
7291         PR middle-end/77484
7292         * predict.def (PRED_CALL): Update hitrate.
7293         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
7294         * predict.c (tree_estimate_probability_bb): Split CALL predictor
7295         into direct/indirect/polymorphic variants.
7297 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
7299         Update copyright years.
7301         * gcc.c (process_command): Update copyright notice dates.
7302         * gcov-dump.c (print_version): Ditto.
7303         * gcov.c (print_version): Ditto.
7304         * gcov-tool.c (print_version): Ditto.
7305         * gengtype.c (create_file): Ditto.
7306         * doc/cpp.texi: Bump @copying's copyright year.
7307         * doc/cppinternals.texi: Ditto.
7308         * doc/gcc.texi: Ditto.
7309         * doc/gccint.texi: Ditto.
7310         * doc/gcov.texi: Ditto.
7311         * doc/install.texi: Ditto.
7312         * doc/invoke.texi: Ditto.
7314 Copyright (C) 2017 Free Software Foundation, Inc.
7316 Copying and distribution of this file, with or without modification,
7317 are permitted in any medium without royalty provided the copyright
7318 notice and this notice are preserved.