2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
[official-gcc.git] / gcc / ChangeLog
blob5f3c5fc95773664d326a8c6180136c4cb0c3b3f8
1 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
3         PR rtl-optimization/70703
4         * ira-color.c (update_conflict_hard_regno_costs): Use
5         int64_t instead of HOST_WIDE_INT.
7 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
9         PR rtl-optimization/70478
10         * lra-constraints.c (process_alt_operands): Disfavor alternative
11         insn memory operands.
13 2017-04-07  Jeff Law  <law@redhat.com>
15         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
16         CALL and NOTE_INSN_CALL_ARG_LOCATION.
18 2017-04-07  Martin Liska  <mliska@suse.cz>
20         PR target/79889
21         * config/aarch64/aarch64.c (aarch64_process_target_attr):
22         Show error message instead of an ICE.
24 2017-04-07  Martin Liska  <mliska@suse.cz>
26         PR ipa/80212
27         * ipa-split.c (split_function): Add function part to a same comdat
28         group.
30 2017-04-07  Richard Biener  <rguenther@suse.de>
32         PR middle-end/80341
33         * tree.c (get_unwidened): Also handle ! for_type case for
34         INTEGER_CSTs.
35         * convert.c (do_narrow): Split out from ...
36         (convert_to_integer_1): ... here.  Do not pass final truncation
37         type to get_unwidened for TRUNC_DIV_EXPR.
39 2017-04-07  Richard Biener  <rguenther@suse.de>
41         * tree-affine.c (wide_int_ext_for_comb): Take type rather
42         than aff_tree.
43         (aff_combination_const): Adjust.
44         (aff_combination_scale): Likewise.
45         (aff_combination_add_elt): Likewise.
46         (aff_combination_add_cst): Likewise.
47         (aff_combination_convert): Likewise.
48         (add_elt_to_tree): Likewise.  Remove unused argument.
49         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
51 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
53         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
54         definition.
55         * config/arm/arm.c (arm_default_short_enums): Use
56         ARM_DEFAULT_SHORT_ENUMS.
57         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
59 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
61         PR debug/80234
62         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
63         members with redundant out-of-class redeclaration.
65 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
67         PR target/80286
68         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
69         * config/i386/i386.md (*zero_extendsidi2):
70         Add (?*x,*x) and (?*v,*v) alternatives.
72 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
74         PR target/79733
75         * config/i386/i386.c (ix86_expand_builtin)
76         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
77         mode from insn data. Convert operands to insn operand mode.
78         Copy operands that don't satisfy insn predicate to a register.
80 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
82         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
83         Update comments.
85 2017-04-06  Richard Biener  <rguenther@suse.de>
87         PR tree-optimization/80334
88         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
89         preserve alignment of accesses.
91 2017-04-06  Richard Biener  <rguenther@suse.de>
93         PR tree-optimization/80262
94         * tree-sra.c (build_ref_for_offset): Preserve address-space
95         information.
96         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
97         Drop useless address-space information on MEM_REF offsets.
99 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
101         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
103 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
105         PR rtl-optimization/70703
106         * ira-color.c (update_conflict_hard_regno_costs): Use
107         HOST_WIDE_INT instead of long.
109 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
111         PR target/80298
112         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
113         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
114         is not defined.
115         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
116         for x86_64 target.  Handle -m3dnowa option.
118 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
120         PR rtl-optimization/70703
121         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
122         (update_conflict_hard_regno_costs): Use long instead of unsigned
123         arithmetic for cost calculation.
125 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
126             Bernd Edlinger  <bernd.edlinger@hotmail.de>
128         PR sanitizer/80308
129         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
130         for big endian.
132 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
134         PR target/78002
135         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
136         ptr_mode with Pmode throughout.
137         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
138         into probe_stack_range and use DImode.
140 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
142         PR target/79890
143         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
144         call_eh_return is true.
146 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
148         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
149         Initialize last_match_fntype_index.
151 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
153         PR target/80310
154         * tree-nvr.c: Include internal-fn.h.
155         (pass_return_slot::execute): Ignore internal calls without
156         direct optab.
158 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
159             Richard Biener  <rguenther@suse.de>
161         PR c++/80297
162         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
163         captures used multiple times, except for the last use.
164         * generic-match-head.c: Include gimplify.h.
166 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
168         PR tree-optimization/79390
169         * target.h (struct noce_if_info): Declare.
170         * targhooks.h (default_noce_conversion_profitable_p): Declare.
171         * target.def (noce_conversion_profitable_p): New target hook.
172         * ifcvt.h (struct noce_if_info): New type, moved from ...
173         * ifcvt.c (struct noce_if_info): ... here.
174         (noce_conversion_profitable_p): Renamed to ...
175         (default_noce_conversion_profitable_p): ... this.  No longer
176         static nor inline.
177         (noce_try_store_flag_constants, noce_try_addcc,
178         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
179         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
180         instead of noce_conversion_profitable_p.
181         * config/i386/i386.c: Include ifcvt.h.
182         (ix86_option_override_internal): Don't override
183         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
184         (ix86_noce_conversion_profitable_p): New function.
185         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
186         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
187         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
188         * doc/tm.texi: Regenerated.
190 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
192         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
193         correction.
195 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
197         PR target/80307
198         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
199         instructions for small multiply cores.
201 2017-04-04  Jeff Law  <law@redhat.com>
203         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
204         added member.
205         (mips_expand_vec_perm_const): Initialize elements in orig_perm
206         that are not set by the loop over the elements.
208 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
210         PR target/80286
211         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
212         int mode, convert_modes it to mode as unsigned, otherwise use
213         lowpart_subreg to mode rather than SImode.
214         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
215         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
216         Use DImode instead of SImode for the shift count operand.
217         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
218         Likewise.
220 2017-04-04  Richard Biener  <rguenther@suse.de>
222         PR middle-end/80281
223         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
224         arithmetic done for the negate or the plus.  Simplify.
225         (A - (-B) -> A + B): Likewise.
226         * fold-const.c (split_tree): Make sure to not negate pointers.
228 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
230         PR rtl-optimization/60818
231         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
232         a compare of comparisons with the thing compared if this results
233         in a different machine mode.
235 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
237         * alias.c (base_alias_check): Fix typo in comment.
238         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
239         * cgraphunit.c (symbol_table::compile): Likewise.
240         * collect2.c (maybe_run_lto_and_relink): Likewise.
241         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
242         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
243         * config/avr/avr.c (avr_map_op_t): Likewise.
244         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
245         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
246         * config/epiphany/epiphany.md (movcc): Likewise.
247         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
248         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
249         Likewise.
250         * config/mips/mips.c (mips_save_restore_reg): Likewise.
251         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
252         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
253         * config/sh/sh.c (sh_rtx_costs): Likewise.
254         * fold-const.c (fold_truth_andor): Likewise.
255         * genautomata.c (collapse_flag): Likewise.
256         * gengtype.h (struct type::u::s): Likewise.
257         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
258         * input.c (FORMAT_AMOUNT): Likewise.
259         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
260         (known_aggs_to_agg_replacement_list): Likewise.
261         * ipa-inline-analysis.c: Likewise.
262         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
263         * ipa-polymorphic-call.c
264         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
265         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
266         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
267         Likewise.
268         * modulo-sched.c (apply_reg_moves): Likewise.
269         * omp-expand.c (build_omp_regions_1): Likewise.
270         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
271         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
272         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
273         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
274         * value-prof.c: Likewise.
275         * var-tracking.c (val_reset): Likewise.
277 2017-04-03  Richard Biener  <rguenther@suse.de>
279         PR tree-optimization/80275
280         * fold-const.c (split_address_to_core_and_offset): Handle
281         POINTER_PLUS_EXPR.
283 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
285         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
286         descriptors is at least equal to that of functions.
288 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
290         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
292 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
294         PR target/80250
295         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
296         (mov<IMOD4:mode>): New expander.
297         (*mov<IMOD4:mode>_internal): New insn and split pattern.
299 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
301         PR rtl-optimization/79405
302         * fwprop.c (propagations_left): New variable.
303         (forward_propagate_into): Decrement it.
304         (fwprop_init): Initialize it.
305         (fw_prop): If the variable has reached zero, stop propagating.
306         (fwprop_addr): Ditto.
308 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
310         PR debug/79255
311         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
312         a FUNCTION_DECL, pass it as decl instead of origin to
313         process_scope_var.
315 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
317         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
318         string.
320 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
322         PR target/80107
323         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
324         TARGET_VSX_SMALL_INTEGER.
326 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
328         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
329         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
331 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
333         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
334         extraction from odd-numbered MSA register.
336 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
338         PR middle-end/80173
339         * expmed.c (store_bit_field_1): Don't attempt to create
340         a word subreg out of hard registers wider than word if they
341         have HARD_REGNO_NREGS of 1 for their mode.
343         PR middle-end/80163
344         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
345         conversions to integer types wider than word and pointer.
347         PR debug/80025
348         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
349         (rtx_equal_for_cselib_p): Pass 0 to it.
350         * cselib.c (cselib_hasher::equal): Likewise.
351         (rtx_equal_for_cselib_1): Add depth argument.  If depth
352         is 128, don't look up VALUE locs and punt.  Increment
353         depth in recursive calls when walking VALUE locs.
355 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
357         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
358         (make_gcov_file_name): Use the canonical path name for generating
359         the MD5 value.
360         (read_line): Fix handling of files with ascii null bytes.
362 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
364         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
365         to initialise a vector register instead
366         of using a const_int.
368 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
370         PR translation/80189
371         * gimplify.c (omp_default_clause): Use %qs instead of %s in
372         diagnostic messages.
374 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
376         PR target/80246
377         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
378         (dfp_diex_<mode>): Update mode of operand 1.
379         * doc/extend.texi (dxex, dxexq): Document change to return type.
380         (diex, diexq): Document change to argument type.
382 2017-03-30  Martin Jambor  <mjambor@suse.cz>
384         PR ipa/77333
385         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
386         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
387         it reflects the signature changes performed at the callee side.
388         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
389         to cgraph_build_function_type_skip_args.
390         (build_function_decl_skip_args): Adjust call to the above function.
392 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
394         PR target/80206
395         * config/i386/sse.md
396         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
397         register as dest whenever it is a MEM not rtx_equal_p to the
398         corresponding dup operand, and when forcing into reg move the
399         reg into the memory afterwards.
400         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
401         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
402         for the force_reg mode.
403         (avx512vl_vextractf128<mode>): Use register as dest either
404         always when a MEM, or when it is a MEM not rtx_equal_p to the
405         corresponding dup operand, or even not when it is a CONST_VECTOR
406         depending on the mode and lo vs. hi.
407         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
408         parens.
409         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
410         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
411         Likewise.  Require that operands[2] is even.
412         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
413         Remove extraneous parens.  Require that operands[2] is a multiple
414         of 4.
415         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
416         operands[0] is a MEM if <mask_applied>, the predicates/constraints
417         disallow memory then.
419 2017-03-30  Richard Biener  <rguenther@suse.de>
421         PR tree-optimization/77498
422         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
423         to non-constants over backedges.
425 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
427         PR rtl-optimization/80233
428         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
429         as last_combined_insn.  Do not test for BARRIER_P separately.
431 2017-03-29  Andreas Schwab  <schwab@suse.de>
433         PR ada/80146
434         * calls.c (prepare_call_address): Convert funexp to Pmode before
435         copying to temp reg.
437 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
439         PR tree-optimization/80158
440         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
441         Handle possible future case of more than one alternate
442         interpretation.
443         (replace_rhs_if_not_dup): Likewise.
444         (replace_one_candidate): Likewise.
446 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
448         PR rtl-optimization/80193
449         * ira.c (ira): Do not check allocation for LRA.
451 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
453         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
454         (nvptx_output_simt_exit): Declare.
455         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
456         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
457         (init_softstack_frame): Move initialization of crtl->is_leaf to...
458         (nvptx_declare_function_name): ...here.  Emit declaration of local
459         memory space buffer for omp_simt_enter insn.
460         (nvptx_output_unisimt_switch): New.
461         (nvptx_output_softstack_switch): New.
462         (nvptx_output_simt_enter): New.
463         (nvptx_output_simt_exit): New.
464         * config/nvptx/nvptx.h (struct machine_function): New fields
465         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
466         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
467         (UNSPECV_SIMT_EXIT): Ditto.
468         (omp_simt_enter_insn): New insn.
469         (omp_simt_enter): New expansion.
470         (omp_simt_exit): New insn.
471         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
473         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
474         (expand_GOMP_SIMT_ENTER_ALLOC): New.
475         (expand_GOMP_SIMT_EXIT): New.
476         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
477         (GOMP_SIMT_ENTER_ALLOC): Ditto.
478         (GOMP_SIMT_EXIT): Ditto.
479         * target-insns.def (omp_simt_enter): New insn.
480         (omp_simt_exit): Ditto.
481         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
482         simt_dlist.
483         (lower_rec_simd_input_clauses): Implement SIMT privatization.
484         (lower_rec_input_clauses): Likewise.
485         (lower_lastprivate_clauses): Handle SIMT privatization.
487         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
488         (ompdevlow_adjust_simt_enter): New.
489         (find_simtpriv_var_op): New.
490         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
491         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
493         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
494         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
495         (copy_decl_for_dup_finish): Ditto.
497         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
499 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
501         PR target/53383
502         * config/i386/i386.c (ix86_option_override_internal): Always
503         allow -mpreferred-stack-boundary=3 for 64-bit targets.
505 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
507         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
509 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
511         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
512         mark new edge's irreducible flag accordign to it.
513         (vect_do_peeling): Check loop preheader edge's irreducible flag
514         and pass it to function slpeel_add_loop_guard.
516 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
518         PR tree-optimization/80218
519         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
520         Update block frequencies and counts.
522 2017-03-28  Richard Biener  <rguenther@suse.de>
524         PR tree-optimization/78644
525         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
526         of a simplification result we may not use it at all.
528 2017-03-28  Richard Biener  <rguenther@suse.de>
530         PR ipa/80205
531         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
532         without arguments, generate default definition of a SSA name.
534 2017-03-28  Richard Biener  <rguenther@suse.de>
536         PR middle-end/80222
537         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
538         TYPE_REF_CAN_ALIAS_ALL references.
539         * fold-const.c (fold_indirect_ref_1): Likewise.
541 2017-03-28  Martin Liska  <mliska@suse.cz>
543         PR ipa/80104
544         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
545         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
547 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
548             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
550         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
551         (EXTRA_SPECS): Define.
552         (SUBTARGET_EXTRA_SPECS): Likewise.
553         (SUBTARGET_CPP_SPEC): Likewise.
554         * config/arc/elf.h (EXTRA_SPECS): Renamed to
555         SUBTARGET_EXTRA_SPECS.
556         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
558 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
560         * config/arc/simdext.md (vst64_insn): Update pattern.
561         (vld32wh_insn): Likewise.
562         (vld32wl_insn): Likewise.
563         (vld64_insn): Likewise.
564         (vld32_insn): Likewise.
566 2017-03-28  Marek Polacek  <polacek@redhat.com>
568         PR sanitizer/80067
569         * fold-const.c (fold_comparison): Use protected_set_expr_location
570         instead of SET_EXPR_LOCATION.
572 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
574         * tree.c (add_expr): Avoid name lookup warning.
576 2017-03-27  Jeff Law  <law@redhat.com>
578         PR tree-optimization/80216
579         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
580         function name.  Limit recursion depth.
581         (record_temporary_equivalences): Corresponding changes.
583 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
585         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
586         covered first.
588 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
590         PR target/80102
591         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
592         notes.
593         * cfgcleanup.c (reg_note_cfa_p): New array.
594         (insns_have_identical_cfa_notes): New function.
595         (old_insns_match_p): Don't cross-jump in between /f
596         and non-/f instructions.  If both i1 and i2 are frame related,
597         verify all CFA notes, their order and content.
599 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
601         PR target/78543
602         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
603         HImode and SImode with zero extend to DImode to one insn.
604         (bswap<mode>2_extenddi): Likewise.
605         (bswapsi2_extenddi): Likewise.
606         (bswaphi2_extendsi): Likewise.
607         (bswaphi2): Combine bswap HImode and SImode into one insn.
608         Separate memory insns from swapping register.
609         (bswapsi2): Likewise.
610         (bswap<mode>2): Likewise.
611         (bswaphi2_internal): Delete, no longer used.
612         (bswapsi2_internal): Likewise.
613         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
614         store, and gpr<-gpr swap insns.
615         (bswap<mode>2_store): Likewise.
616         (bswaphi2_reg): Register only splitter, combine with the splitter.
617         (bswaphi2 splitter): Likewise.
618         (bswapsi2_reg): Likewise.
619         (bswapsi2 splitter): Likewise.
620         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
621         the insns into load, store, and register/register insns.
622         (bswapdi2_ldbrx): Likewise.
623         (bswapdi2_load): Likewise.
624         (bswapdi2_store): Likewise.
625         (bswapdi2_reg): Likewise.
627 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
629         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
630         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
632 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
634         PR target/80103
635         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
636         add comments.
637         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
638         special handling for target option conflicts between dform
639         options (-mpower9-dform, -mpower9-dform-vector,
640         -mpower9-dform-scalar) and -mno-direct-move.
642 2017-03-27  Richard Biener  <rguenther@suse.de>
644         PR tree-optimization/80181
645         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
647 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
649         * config/arc/predicates.md (move_double_src_operand): Replace the
650         call to move_double_src_operand with a call to address_operand.
652 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
654         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
655         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
656         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
658 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
660         * config/arc/predicates.md (long_immediate_loadstore_operand):
661         Consider scaled addresses cases.
663 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
665         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
666         restored when in interrupt.
667         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
668         doesn't have delay slot.
670 2017-03-27  Richard Biener  <rguenther@suse.de>
672         PR ipa/79776
673         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
674         inlined thunk clones.
676 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
678         PR sanitizer/80168
679         * asan.c (instrument_derefs): Copy over last operand from
680         original COMPONENT_REF to the new COMPONENT_REF with
681         DECL_BIT_FIELD_REPRESENTATIVE.
682         * ubsan.c (instrument_object_size): Likewise.
684 2017-03-27  Richard Biener  <rguenther@suse.de>
686         PR tree-optimization/80170
687         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
688         sure DR/SCEV didnt fold in constants we do not see when looking
689         at the reference base alignment.
691 2017-03-27  Richard Biener  <rguenther@suse.de>
693         PR middle-end/80171
694         * gimple-fold.c (fold_ctor_reference): Properly guard against
695         NULL return value from canonicalize_constructor_val.
697 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
699         PR target/80180
700         * config/i386/i386.c (ix86_expand_builtin)
701         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
702         flags reg setting and flags reg using instructions.
703         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
704         clobbering instructions to zero extend op2.
706 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
708         * doc/install.texi (Configuration) <--with-aix-soname>:
709         Update link to AIX ld.
711 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
713         PR rtl-optimization/80160
714         PR rtl-optimization/80159
715         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
716         reg_alternate_class into account.
718 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
720         PR target/80148
721         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
722         to consider in curr_insn_transform.
724 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
726         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
727         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
728         and emit_mode_inner.
730 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
732         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
733         argument to the overloaded builtin variants.  Use the new flag to
734         deprecate certain builtin variants.
735         * config/s390/s390-builtin-types.def: Add new builtin types.
736         * config/s390/s390-builtins.h: Support new flags field for
737         overloaded builtins.
738         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
739         (s390_macro_to_expand): Enable vector float data type.
740         (s390_cpu_cpp_builtins_internal): Indicate support of the new
741         builtins by incrementing the __VEC__ version number.
742         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
743         vec_xst.
744         (s390_resolve_overloaded_builtin): Emit error messages depending
745         on the builtin flags.
746         * config/s390/s390.c (s390_expand_builtin): Support additional
747         flags argument.  Change error message to match the messages
748         emitted in s390-c.c.
749         * config/s390/s390.md: New UNSPEC_* constants.
750         (op_type): Add new instruction types.
751         * config/s390/vecintrin.h: Add new builtins and test data class
752         constants.
753         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
754         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
755         (VEC_INEXACT, VEC_NOINEXACT): New constants.
756         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
757         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
758         ("vec_mergel<mode>"): V_HW -> VEC_HW.
760         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
761         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
762         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
763         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
765         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
766         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
767         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
768         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
770         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
771         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
772         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
773         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
774         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
775         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
776         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
778         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
779         ("vec_scatter_element<V_HW_4:mode>_DI")
780         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
781         ("vec_fpint<mode>", "vflls")
782         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
783         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
784         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
785         ("*vec_cmphe<mode>_cc"): ... these.
787         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
788         mode constant instead of magic value.
790 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
792         * config/s390/s390.c (s390_expand_vec_compare): Support other
793         vector floating point modes than just V2DF.
794         (s390_expand_vcond): Likewise.
795         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
796         (s390_cannot_change_mode_class): Prevent mode changes between TF
797         and V1TF in vector registers.
798         * config/s390/s390.md (DF, SF): New mode attributes.
799         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
800         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
801         SFmode support for VRs.
802         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
803         vector fp modes.
804         (VFT, VF_HW): New mode iterators.
805         (vw, sdx): New mode attributes.
806         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
807         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
808         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
809         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
810         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
811         also the new vector floating point modes.  Renaming to ...
813         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
814         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
815         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
816         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
817         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
818         ("vec_unordered<mode>"): ... these.
820         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
821         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
822         ("*vec_extendv2df"): New insn definitions.
824 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
826         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
827         ("mulditi3_2", "*muldi3_sign"): New patterns.
828         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
829         rename the pattern definition.
831 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
833         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
834         expander.
835         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
837 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
839         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
840         instruction if possible.
841         * config/s390/vector.md (vec_halfnumelts): New mode
842         attribute.
843         ("*vec_vllezlf<mode>"): New pattern.
845 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
847         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
848         ("popcountv4si2", "popcountv2di2"): Rename to ...
849         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
850         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
851         condition.
852         ("popcount<mode>2_vxe"): New pattern.
854 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
856         * common/config/s390/s390-common.c (processor_flags_table): Add
857         arch12.
858         * config.gcc: Add arch12.
859         * config/s390/driver-native.c (s390_host_detect_local_cpu):
860         Default to arch12 for unknown CPU model numbers.
861         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
862         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
863         PROCESSOR_max sanity check.
864         * config/s390/s390-opts.h (enum processor_type): Add
865         PROCESSOR_ARCH12.
866         * config/s390/s390.c (processor_table): Add arch12.
867         (s390_expand_builtin): Add check for B_VXE flag.
868         (s390_issue_rate): Add PROCESSOR_ARCH12.
869         (s390_get_sched_attrmask): Likewise.
870         (s390_get_unit_mask): Likewise.
871         (s390_sched_score): Enable z13 scheduling for arch12.
872         (s390_sched_reorder): Likewise.
873         (s390_sched_variable_issue): Likewise.
874         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
875         PF_VXE.
876         (s390_tune_attr): Use z13 scheduling also for arch12.
877         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
878         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
879         (TARGET_VXE_P): New macros.
880         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
881         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
882         * config/s390/s390.opt: Add arch12 as processor_type.
884 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
886         * config/s390/s390.md
887         ("fixuns_truncdddi2", "fixuns_trunctddi2")
888         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
889         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
891         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
892         Rename expanders to ...
894         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
895         ("fixuns_truncdddi2_emu"): ... these.
897         ("fixuns_trunc<mode>si2_emu"): New expander.
899         ("*fixuns_truncdfdi2_z13"): Rename to ...
900         ("*fixuns_truncdfdi2_vx"): ... this.
902 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
904         * config/s390/2964.md: Remove the single element vector compare
905         instructions which are no longer used.
906         * config/s390/s390.c (s390_select_ccmode): Remove handling of
907         vector CCmodes.
908         (s390_canonicalize_comparison): Remove handling of DFmode
909         compares.
910         (s390_expand_vec_compare_scalar): Remove function.
911         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
912         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
913         pattern.
914         ("*cmp<mode>_ccs"): Add wfcdb instruction.
916 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
918         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
919         FP zero.
920         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
921         will anyway by matched by mov<mode>_64dfp.
923 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
925         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
926         vlef/vstef.  Add missing operand to vleif.
928 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
930         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
931         pair for all vector types with 64 bit elements.
932         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
933         * config/s390/vector.md (V_HW_64): ... here.
934         (V_128_NOSINGLE): New mode iterator.
935         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
936         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
937         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
938         ("*vec_load_pairv2di"): Change to ...
939         ("*vec_load_pair<mode>"): ... this one.
941 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
943         * config/s390/constraints.md: Add comments.
944         (jKK): Reject element sizes > 8 bytes.
945         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
946         s_operands.
947         * config/s390/s390.md: Add the s_operand checks formerly in
948         s390_split_ok_p to various splitters where they are still
949         required.
950         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
951         for 128 bit vectors.  Plus two splitters.
953 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
955         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
956         the file.
958 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
960         PR target/79893
961         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
962         error if the boundary argument is not constant.
964 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
966         PR rtl-optimization/80112
967         * loop-doloop.c (doloop_condition_get): Don't check condition
968         if cmp isn't SET with IF_THEN_ELSE src.
970 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
972         PR tree-optimization/80158
973         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
974         replacing a candidate statement, also replace it for the
975         candidate's alternate interpretation.
976         (replace_rhs_if_not_dup): Likewise.
977         (replace_one_candidate): Likewise.
979 2017-03-24  Richard Biener  <rguenther@suse.de>
981         PR tree-optimization/80167
982         * graphite-isl-ast-to-gimple.c
983         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
984         properly.
985         (translate_isl_ast_to_gimple::get_rename): Likewise.
987 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
989         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
990         handling of certain combinations of target options, including the
991         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
992         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
994 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
996         PR target/71436
997         * config/arm/arm.md (*load_multiple): Add reload_completed to
998         matching condition.
1000 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1001             Richard Biener  <rguenth@suse.de>
1003         PR tree-optimization/79908
1004         PR tree-optimization/80136
1005         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
1006         been cast away, gimplify_and_add suffices.
1008 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de> 
1010         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
1012 2017-03-23  Richard Biener  <rguenther@suse.de>
1014         PR tree-optimization/80032
1015         * gimplify.c (gimple_push_cleanup): Forced unconditional
1016         cleanups still have to go to the conditional_cleanups
1017         sequence.
1019 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
1021         PR tree-optimization/80072
1022         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
1023         to unsigned int.
1024         (next_operand_entry_id): Change type to unsigned int.
1025         (sort_by_operand_rank): Make sure to return the right return value
1026         even if unsigned fields are bigger than INT_MAX.
1027         (struct oecount): Change cnt and id type to unsigned int.
1028         (oecount_hasher::equal): Formatting fix.
1029         (oecount_cmp): Make sure to return the right return value
1030         even if unsigned fields are bigger than INT_MAX.
1031         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
1033         PR c++/80129
1034         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
1035         TREE_READONLY on result if writing it more than once.
1037         PR sanitizer/80110
1038         * doc/invoke.texi (-fsanitize=thread): Document that with
1039         -fnon-call-exceptions atomics are not able to throw
1040         exceptions.
1042         PR sanitizer/80110
1043         * tsan.c: Include tree-eh.h.
1044         (instrument_builtin_call): Call maybe_clean_eh_stmt or
1045         maybe_clean_or_replace_eh_stmt where needed.
1046         (instrument_memory_accesses): Add cfg_changed argument.
1047         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
1048         if it returned true.
1049         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
1051         PR rtl-optimization/63191
1052         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
1053         wrapper function, moved the whole old content into ...
1054         (ix86_delegitimize_address_1): ... this.  New inline function.
1055         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
1056         true as last argument instead of ix86_delegitimize_address.
1058 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
1060         * config/aarch64/aarch64.c (generic_branch_cost): Copy
1061         cortexa57_branch_cost.
1063 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
1065         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
1067 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1069         PR target/80123
1070         * doc/md.texi (Constraints): Document wA constraint.
1071         * config/rs6000/constraints.md (wA): New.
1072         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
1073         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
1074         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
1075         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
1077 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
1079         PR c++/80029
1080         * gimplify.c (is_oacc_declared): New function.
1081         (oacc_default_clause): Use it to set default flags for acc declared
1082         variables inside parallel regions.
1083         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
1084         declared variables.
1085         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
1086         declare attribute to any decl as necessary.
1088 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1090         PR target/80082
1091         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
1092         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
1093         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
1094         (arm_arch_lpae): This.
1095         * config/arm/arm.c (arm_arch7ve): Rename into ...
1096         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
1097         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
1098         arm_arch_lpae.
1100 2017-03-22  Martin Liska  <mliska@suse.cz>
1102         PR target/79906
1103         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
1104         error message instead of an ICE.
1106 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1108         * doc/extend.texi (6.11 Additional Floating Types): Revise.
1110 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1112         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
1113         comments.
1114         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
1115         comments.
1117 2017-03-21  Martin Sebor  <msebor@redhat.com>
1119         * doc/extend.texi: Use "cannot" instead of "can't."
1120         * doc/hostconfig.texi: Same.
1121         * doc/install.texi: Same.
1122         * doc/invoke.texi: Same.
1123         * doc/loop.texi: Same.
1124         * doc/md.texi: Same.
1125         * doc/objc.texi: Same.
1126         * doc/rtl.texi: Same.
1127         * doc/tm.texi: Same.
1128         * doc/tm.texi.in: Same.
1129         * doc/trouble.texi: Same.
1131 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
1133         PR debug/63238
1134         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
1135         (collect_checksum_attributes): Set it.
1136         (die_checksum_ordered): Use it.
1138 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1140         PR tree-optimization/79908
1141         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
1142         change: For a VA_ARG whose LHS has been cast away, use
1143         force_gimple_operand to construct the side effects.
1145 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
1147         PR translation/80001
1148         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
1149         more amenable to translation.
1150         (oacc_loop_auto_partitions): Likewise.
1152 2017-03-21  Marek Polacek  <polacek@redhat.com>
1153             Martin Sebor  <msebor@redhat.com>
1155         PR tree-optimization/80109
1156         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
1157         on INTEGRAL_TYPE_P.
1159 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
1160             Segher Boessenkool  <segher@kernel.crashing.org>
1162         PR target/80125
1163         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
1164         check reg_used_between_p between insn and one of succ or succ2
1165         depending on if succ is artificial insn not inserted into insn
1166         stream.
1168 2017-03-21  Martin Liska  <mliska@suse.cz>
1170         PR gcov-profile/80081
1171         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
1172         * doc/gcc.texi: Include gcov-dump stuff.
1173         * doc/gcov-dump.texi: New file.
1175 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
1177         PR rtl-optimization/79150
1178         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
1179         conditional jump, if the jump is the last insn of the loop.
1181 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1182             Richard Biener  <rguenth@suse.de>
1184         PR tree-optimization/79908
1185         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
1186         been cast away, use force_gimple_operand to construct the side
1187         effects.
1189 2017-03-21  Martin Liska  <mliska@suse.cz>
1191         PR libfortran/79956
1192         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
1193         to NULL.
1195 2017-03-21  Brad Spengler <spender@grsecurity.net>
1197         PR plugins/80094
1198         * plugin.c (htab_hash_plugin): New function.
1199         (add_new_plugin): Use it and adjust.
1200         (parse_plugin_arg_opt): Adjust.
1201         (init_one_plugin): Likewise.
1203 2017-03-21  Richard Biener  <rguenther@suse.de>
1205         PR tree-optimization/80032
1206         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
1207         if set force the cleanup to happen unconditionally.
1208         (gimplify_target_expr): Push inserted clobbers with force_uncond
1209         to avoid them being removed by control-dependent DCE.
1211 2017-03-21  Richard Biener  <rguenther@suse.de>
1213         PR tree-optimization/80122
1214         * tree-inline.c (copy_bb): Do not expans va-arg packs or
1215         va_arg_pack_len when the inlined call stmt requires pack
1216         expansion itself.
1217         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
1219 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
1221         PR sanitizer/78158
1222         * tsan.c (instrument_builtin_call): If the memory model argument
1223         is not a constant, assume it is valid.
1225         PR c/67338
1226         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
1227         avoid UB.
1229 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
1231         PR rtl-optimization/79910
1232         * combine.c (can_combine_p): Do not allow combining an I0 or I1
1233         if its dest is used by an insn before I2 (other than the combined
1234         insns themselves, which are properly handled already).
1236 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
1238         Revert:
1239         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
1241         * combine.c (record_used_regs): New static function.
1242         (try_combine): Handle situations where there is an additional
1243         instruction between I2 and I3 which needs to have a LOG_LINK
1244         updated.
1246         Revert:
1247         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
1249         * combine.c (try_combine): Delete redundant i1 test.  Call
1250         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
1252 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1254         PR target/80083
1255         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
1256         alternatives 13/14.
1258 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1260         PR tree-optimization/80054
1261         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
1262         the optimization if a PHI or any of its arguments is not dominated
1263         by the candidate's basis.  Use gphi* rather than gimple* as
1264         appropriate.
1265         (replace_profitable_candidates): Clean up a gimple* variable that
1266         should be a gphi* variable.
1268 2017-03-20  Martin Sebor  <msebor@redhat.com>
1270         PR c++/52477
1271         * doc/extend.texi (attribute constructor): Document present limitation.
1273 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1275         PR target/79963
1276         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
1277         __POWER9_VECTOR__ #ifdef control, change template definition to
1278         use Power9-specific built-in function.
1279         (vec_any_eq): Likewise.
1280         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
1281         to control outcomes from this test.
1282         (vector_ae_<mode>p): For VEC_F modes, likewise.
1284 2017-03-20  Ian Lance Taylor  <iant@google.com>
1286         * config/i386/i386.c (ix86_function_regparm): Save an extra
1287         register for -fsplit-stack with DECL_STATIC_CHAIN.
1289 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
1291         PR target/79912
1292         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
1293         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
1295 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
1297         * config/riscv/riscv.c (riscv_print_operand): Use "fence
1298         iorw,ow".
1299         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
1300         iorw,iorw".
1302 2017-03-20  Marek Polacek  <polacek@redhat.com>
1304         PR sanitizer/80063
1305         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
1307 2017-03-20  Richard Biener  <rguenther@suse.de>
1309         PR tree-optimization/80113
1310         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
1311         allocate extra SSA name for PHI def.
1312         (add_close_phis_to_outer_loops): Likewise.
1313         (add_close_phis_to_merge_points): Likewise.
1314         (copy_loop_close_phi_args): Likewise.
1315         (copy_cond_phi_nodes): Likewise.
1317 2017-03-20  Martin Liska  <mliska@suse.cz>
1319         PR middle-end/79753
1320         * tree-chkp.c (chkp_build_returned_bound): Do not build
1321         returned bounds for a LHS that's not a BOUNDED_P type.
1323 2017-03-20  Martin Liska  <mliska@suse.cz>
1325         PR target/79769
1326         PR target/79770
1327         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
1328         COMPLEX_CST and VECTOR_CST.
1330 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1332         PR target/78857
1333         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
1334         target operand.  A new splitter adds the clobber statement in case
1335         the target operand is dead anyway.
1337 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
1339         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer 
1340         to age-old versions of binutils and glibc.
1342 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
1344         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
1346 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1348         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
1350 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
1351         
1352         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
1353         requirement for binutils 2.13.
1355 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
1357         * combine.c (try_combine): Delete redundant i1 test.  Call
1358         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
1360 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
1362         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
1363         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
1364         contents.
1365         <riscv64-*-elf>: Re-arrange section
1366         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
1367         <riscv32-*-linux>: Likewise.
1368         <riscv64-*-elf>: Likewise
1369         <riscv64-*-linux>: Likewise.
1371 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
1373         PR target/80052
1374         * aarch64.opt(verbose-cost-dump): Fix typo.
1376 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
1378         PR target/79951
1379         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
1380         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
1382 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
1384         * reload.c (find_reloads): When reloading a nonoffsettable address,
1385         use RELOAD_OTHER for it and its address reloads.
1387         PR rtl-optimization/79910
1388         * combine.c (record_used_regs): New static function.
1389         (try_combine): Handle situations where there is an additional
1390         instruction between I2 and I3 which needs to have a LOG_LINK
1391         updated.
1393 2017-03-17  Jeff Law  <law@redhat.com>
1395         PR tree-optimization/71437
1396         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
1397         conditional in the hash table first.
1398         (vrp_dom_walker::before_dom_children): Extract condition from
1399         ASSERT_EXPR.  Record condition, its inverion and any implied
1400         conditions as well.
1402 2017-03-17  Marek Polacek  <polacek@redhat.com>
1403             Markus Trippelsdorf  <markus@trippelsdorf.de>
1405         PR tree-optimization/80079
1406         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
1407         m_stores_head.
1409 2017-03-17  Richard Biener  <rguenther@suse.de>
1411         PR middle-end/80075
1412         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
1413         Properly verify the LHS before the RHS possibly claims to be
1414         handled.
1415         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
1416         do not throw.
1418 2017-03-17  Martin Jambor  <mjambor@suse.cz>
1420         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
1421         (List of -O2 options): Likewise.
1422         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
1423         (-fipa-vrp) New.
1425 2017-03-17  Tom de Vries  <tom@codesourcery.com>
1427         * gcov-dump.c (print_usage): Print bug_report_url.
1429 2017-03-17  Richard Biener  <rguenther@suse.de>
1431         PR middle-end/80050
1432         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
1433         (parser::peek): Likewise.
1435 2017-03-17  Richard Biener  <rguenther@suse.de>
1437         PR tree-optimization/80048
1438         * sese.c (free_sese_info): Properly release rename_map and
1439         copied_bb_map elements.
1441 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
1443         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
1444         Add linked-list forward and backlinks.  Insert on
1445         construction, remove on destruction.
1446         (class pass_store_merging): Add m_stores_head field.
1447         (pass_store_merging::terminate_and_process_all_chains):
1448         Iterate over m_stores_head list.
1449         (pass_store_merging::terminate_all_aliasing_chains):
1450         Likewise.
1451         (pass_store_merging::execute): Check for debug stmts first.
1452         Push new chains onto the m_stores_head stack.
1454 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
1456         PR target/71294
1457         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
1458         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
1459         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
1461 2017-03-16  Jeff Law  <law@redhat.com>
1463         PR tree-optimization/71437
1464         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
1465         member function.  Implementation moved into after_dom_children
1466         member function and into the threader's thread_outgoing_edges
1467         function.
1468         (dom_opt_dom_walker::after_dom_children): Simplify by moving
1469         some code into new thread_outgoing_edges.
1470         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
1471         definition.  Simplify marker handling (do it here).   Assume we always
1472         have the available expression and the const/copies tables.
1473         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
1474         and tree-vrp.c
1475         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
1476         * tree-vrp.c (equiv_stack): No longer file scoped.
1477         (vrp_dom_walker): New class.
1478         (vrp_dom_walker::before_dom_children): New member function.
1479         (vrp_dom_walker::after_dom_children): Likewise.
1480         (identify_jump_threads):  Setup domwalker.  Use it rather than
1481         walking edges in a random order by hand.  Simplify setup/finalization.
1482         (finalize_jump_threads): Remove.
1483         (vrp_finalize): Do not call identify_jump_threads here.
1484         (execute_vrp): Do it here instead and call thread_through_all_blocks
1485         here too.
1487         PR tree-optimization/71437
1488         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
1489         callers changed.
1490         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
1491         callers changed.
1492         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
1493         (dom_opt_dom_walker::thread_across_edge): Remove
1494         handle_dominating_asserts argument.  All callers changed.
1495         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
1496         changes.  Remove calls to lhs_of_dominating_assert.  Other
1497         uses of handle_dominating_asserts turn into unconditional code
1498         (simplify_control_stmt_condition_1): Likewise.
1499         (simplify_control_stmt_condition): Likewise.
1500         (thread_through_normal_block, thread_across_edge): Likewise.
1501         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
1502         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
1503         object if it is not an SSA_NAME.
1504         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
1505         before calling into the VRP specific simplifiers.
1506         (identify_jump_threads): Remove handle_dominating_asserts
1507         argument.
1509 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
1511         PR fortran/79886
1512         * tree-diagnostic.c (default_tree_printer): No longer static.
1513         * tree-diagnostic.h (default_tree_printer): New prototype.
1515 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
1517         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
1518         Change ins into fmov.
1520 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1522         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
1523         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
1524         Use h_con constraint for operand 1.
1525         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
1526         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
1528 2017-03-15  Jeff Law  <law@redhat.com>
1530         PR tree-optimization/71437
1531         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
1532         (record_temporary_equivalences): Use it.
1534         PR tree-optimization/71437
1535         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
1536         tree-ssa-scopedtables.
1537         (lookup_avail_expr, build_and_record_new_cond): Likewise.
1538         (record_conditions, record_cond, vuse_eq): Likewise.
1539         (record_edge_info): Adjust to API tweak of record_conditions.
1540         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
1541         (record_temporary_equivalences, optimize_stmt): Likewise.
1542         (eliminate_redundant_computations): Likewise.
1543         (record_equivalences_from_stmt): Likewise.
1544         * tree-ssa-scopedtables.c: Include options.h and params.h.
1545         (vuse_eq): New function, moved from tree-ssa-dom.c
1546         (build_and_record_new_cond): Likewise.
1547         (record_conditions): Likewise.  Accept vector of conditions rather
1548         than edge_equivalence structure for first argument.
1549         for the first argument.
1550         (avail_exprs_stack::lookup_avail_expr): New member function, moved
1551         from tree-ssa-dom.c.
1552         (avail_exprs_stack::record_cond): Likewise.
1553         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
1554         from tree-ssa-dom.c.
1555         (avail_exprs_stack): Add new member functions lookup_avail_expr
1556         and record_cond.
1557         (record_conditions): Declare.
1559 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
1561         PR target/80017
1562         * lra-constraints.c (process_alt_operands): Increase reject for
1563         reloading an input/output operand.
1565 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
1567         PR target/79038
1568         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
1569         insns to convert from signed/unsigned char/short to IEEE 128-bit
1570         floating point.
1571         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
1573 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
1575         PR target/80019
1576         * config/i386/i386.c (ix86_vector_duplicate_value): Create
1577         subreg of inner mode for values already in registers.
1579 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
1581         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
1582         iteration reg is used after the loop.
1584 2017-03-14  Martin Sebor  <msebor@redhat.com>
1586         PR tree-optimization/79800
1587         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
1588         precision in negative-positive range.
1589         (format_floating): Call non-const overload with adjusted precision.
1591 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1593         PR target/79947
1594         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
1595         -mpowerpc-gfxopt.
1597 2017-03-14  Martin Sebor  <msebor@redhat.com>
1599         PR middle-end/80020
1600         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
1601         * builtins.def (aligned_alloc): Use it.
1603         PR c/79936
1604         * Makefile.in (GTFILES): Add calls.c.
1605         * calls.c: Include "gt-calls.h".
1607 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
1609         PR rtl-optimization/79728
1610         * regs.h (struct target_regs): New field
1611         x_contains_allocatable_regs_of_mode.
1612         (contains_allocatable_regs_of_mode): New macro.
1613         * reginfo.c (init_reg_sets_1): Initialize it, and change
1614         contains_reg_of_mode so it includes global regs as well.
1615         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
1616         rather than contains_regs_of_mode.
1618 2017-03-14  Martin Liska  <mliska@suse.cz>
1620         * doc/invoke.texi: Document options that can't be combined with
1621         -fcheck-pointer-bounds.
1623 2017-03-14  Martin Liska  <mliska@suse.cz>
1625         PR middle-end/79831
1626         * doc/invoke.texi (-Wchkp): Document the option.
1628 2017-03-14  Martin Liska  <mliska@suse.cz>
1630         * Makefile.in: Install gcov-dump.
1632 2017-03-14  Martin Liska  <mliska@suse.cz>
1634         * multiple_target.c (expand_target_clones): Bail out for
1635         an invalid attribute.
1637 2017-03-14  Richard Biener  <rguenther@suse.de>
1639         * alias.c (struct alias_set_entry): Pack properly.
1640         * cfgloop.h (struct loop): Likewise.
1641         * cse.c (struct set): Likewise.
1642         * ipa-utils.c (struct searchc_env): Likewise.
1643         * loop-invariant.c (struct invariant): Likewise.
1644         * lra-remat.c (struct cand): Likewise.
1645         * recog.c (struct change_t): Likewise.
1646         * rtl.h (struct address_info): Likewise.
1647         * symbol-summary.h (function_summary): Likewise.
1648         * tree-loop-distribution.c (struct partition): Likewise.
1649         * tree-object-size.c (struct object_size_info): Likewise.
1650         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
1651         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
1652         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
1653         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
1654         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
1655         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
1656         (struct _stmt_vec_info): Likewise.
1658 2017-03-14  Martin Liska  <mliska@suse.cz>
1660         PR target/79892
1661         * multiple_target.c (create_dispatcher_calls): Check that
1662         a target can create a function dispatcher.
1664 2017-03-14  Martin Liska  <mliska@suse.cz>
1666         PR lto/66295
1667         * multiple_target.c (expand_target_clones): Drop local.local
1668         flag for default implementation.
1670 2017-03-14  Richard Biener  <rguenther@suse.de>
1672         PR tree-optimization/80030
1673         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
1675 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
1677         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
1678         gcc_fallthrough() instead of __attribute__((fallthrough));
1680 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
1682         * doc/gcc.texi: Remove "up" link to (DIR).
1683         * doc/gccint.texi: Ditto.
1685 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
1686         
1687         * doc/install.texi (Specific) <avr>: Remove reference to
1688         binutils 2.13.
1690 2017-03-13  Jeff Law  <law@redhat.com>
1692         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
1693         attribute rather than comments.
1695         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
1696         match_scratch operand is highest.
1698 2017-03-13  Martin Liska  <mliska@suse.cz>
1700         PR middle-end/78339
1701         * ipa-pure-const.c (warn_function_noreturn): If the declarations
1702         is a CHKP clone, use original declaration.
1704 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1706         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
1707         (arc_conditional_register_usage): Use a different allocation order
1708         when optimizing for size.
1709         * common/config/arc/arc-common.c (arc_option_optimization_table):
1710         Section anchors default on when optimizing for size.
1712 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1714         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
1716 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1718         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
1719         * config/arc/arc.md (cpu_facility): Add cd variant.
1720         (*movqi_insn): Add code density variant.
1721         (*movhi_insn): Likewise.
1722         (*movqi_insn): Likewise.
1723         (*addsi3_mixed): Likewise.
1724         (subsi3_insn): Likewise.
1726 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1728         * config/arc/arc.md (movsi_cond_exec): Update constraint.
1730 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
1732         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
1733         expressions with MINUS and UNARY ops.
1735 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1737         PR target/79911
1738         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
1739         Rename to...
1740         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
1741         between vec_select and vector argument.
1742         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
1743         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
1744         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
1745         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
1746         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
1747         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
1749 2017-03-13  Richard Biener  <rguenther@suse.de>
1751         PR other/79991
1752         * params.def (vect-max-peeling-for-alignment): Fix typo.
1754 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1756         * doc/install.texi (Specific) <mips-*-*>: Remove description of
1757         issue that only occurred with binutils below 2.18.
1758         
1759 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1761         * doc/install.texi (Specific) <cris-axis-elf>: No longer
1762         refer to binutils 2.11/2.12 minimum.
1764 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
1766         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
1767         ftp.kernel.org and simplify binutils requirement.
1769 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
1771         * doc/invoke.texi (Warning Options): Fix spelling of link-time
1772         optimization.
1773         (Optimize Options): Ditto.  Also remove redundancy.
1775 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1777         PR translation/79848
1778         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
1779         "%qs".
1780         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
1781         to G_ to avoid double translation.
1783 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1785         PR translation/79923
1786         * auto-profile.c (get_combined_location): Convert leading
1787         character of diagnostics to lower case and remove trailing period.
1788         (read_profile): Likewise for various diagnostics.
1789         * config/arm/arm.c (arm_option_override): Remove trailing period
1790         from various diagnostics.
1791         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
1792         (msp430_expand_delay_cycles): Likewise.
1794 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1796         PR target/79925
1797         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
1798         full command-line argument, rather than just "str".
1799         (aarch64_validate_march): Likewise.
1800         (aarch64_validate_mtune): Likewise.
1802 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
1804         PR rtl-optimization/78911
1805         * lra-assigns.c (must_not_spill_p): New function.
1806         (spill_for): Use it.
1808 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
1810         PR tree-optimization/79981
1811         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
1812         ATOMIC_COMPARE_EXCHANGE ifn result.
1813         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
1814         IFN_ATOMIC_COMPARE_EXCHANGE.
1816 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1818         PR driver/79875
1819         * opts.c (parse_sanitizer_options): Add missing question mark to
1820         "did you mean" message.
1822 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1824         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
1825         built-in.
1826         (VMULEUH_UNS): Likewise.
1827         (VMULOUB_UNS): Likewise.
1828         (VMULOUH_UNS): Likewise.
1829         * config/rs6000/rs6000.c (builtin_function_type): Remove
1830         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
1832 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
1834         PR bootstrap/79952
1835         * read-rtl-function.c (function_reader::read_rtx_operand): Update
1836         x with result of extra_parsing_for_operand_code_0.
1837         (function_reader::extra_parsing_for_operand_code_0): Convert
1838         return type from void to rtx, returning x.  When reading
1839         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
1840         larger size containing struct block_symbol.
1842 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
1844         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
1845         -mfloat128-hardware without -m64.
1847 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
1849         PR target/79941
1850         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
1851         entries to the case statement that marks unsigned arguments to
1852         overloaded functions.
1854 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1856         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
1857         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
1859 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
1861         PR target/79907
1862         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
1863         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
1865 2017-03-10  Martin Liska  <mliska@suse.cz>
1867         PR target/65705
1868         PR target/69804
1869         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
1870         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
1871         FIELD != NULL.
1873 2017-03-10  Olivier Hainque  <hainque@adacore.com>
1875         * tree-switch-conversion (array_value_type): Start by resetting
1876         candidate type to it's main variant.
1878 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
1880         PR rtl-optimization/79909
1881         * combine.c (try_combine): Use simplify_replace_rtx on individual
1882         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
1883         of the whole CALL_INSN_FUNCTION_USAGE.
1885         PR tree-optimization/79972
1886         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
1887         get_range_info on SSA_NAMEs.  Formatting fixes.
1889 2017-03-10  Richard Biener  <rguenther@suse.de>
1890             Jakub Jelinek  <jakub@redhat.com>
1892         PR tree-optimization/77975
1893         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
1894         edge to be constant.
1895         (get_val_for): For constant x return it.  Formatting fix.
1896         (loop_niter_by_eval): Avoid pointless looping if the next iteration
1897         would use the same bases as the current one.
1899 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1901         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
1902         instead of vec_select for V1TImode.
1903         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
1904         longer needed.
1905         (VSX_LE_128): Add V1TI to this mode iterator.
1906         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
1907         (*vsx_le_perm_store_<mode>): Likewise.
1908         (pre-reload splitter for VSX stores): Likewise.
1909         (post-reload splitter for VSX stores): Likewise.
1910         (*vsx_xxpermdi2_le_<mode>): Likewise.
1911         (*vsx_lxvd2x2_le_<mode>): Likewise.
1912         (*vsx_stxvd2x2_le_<mode>): Likewise.
1914 2017-03-09  Michael Eager  <eager@eagercon.com>
1916         Correct failures with --enable-checking=yes,rtl.
1918         * config/microblaze/microblaze.c (microblaze_expand_shift):
1919         Replace GET_CODE test with CONST_INT_P and INTVAL test with
1920         test for const0_rtx.
1921         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
1922         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
1924 2017-03-09  Richard Biener  <rguenther@suse.de>
1926         PR tree-optimization/79977
1927         * graphite-scop-detection.c (scop_detection::merge_sese):
1928         Handle the case of extra exits to blocks dominating the entry.
1930 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
1932         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
1933         Document rdynamic.
1935 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
1937         PR rtl-optimization/79949
1938         * lra-constraints.c (process_alt_operands): Check memory when
1939         trying to predict a cycle.  Print about the overall increase.
1941 2017-03-09  Richard Biener  <rguenther@suse.de>
1943         PR middle-end/79971
1944         * gimple-expr.c (useless_type_conversion_p): Preserve
1945         TYPE_SATURATING for fixed-point types.
1947 2017-03-09  Richard Biener  <rguenther@suse.de>
1949         PR ipa/79970
1950         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
1951         alignment of BLKmode params.
1953 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1955         PR target/79913
1956         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
1957         (VALL_NO_V2Q): Likewise.
1958         (VDQF_DF): Delete.
1959         * config/aarch64/aarch64-simd.md
1960         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
1961         iterator.
1962         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
1963         VALL_NO_V2Q mode iterator.
1964         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
1966 2017-03-09  Martin Liska  <mliska@suse.cz>
1968         PR tree-optimization/79631
1969         * tree-chkp-opt.c (chkp_is_constant_addr): Call
1970         tree_int_cst_sign_bit just for INTEGER constants.
1972 2017-03-09  Martin Liska  <mliska@suse.cz>
1974         PR target/65705
1975         PR target/69804
1976         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
1977         sanitizers.
1979 2017-03-09  Marek Polacek  <polacek@redhat.com>
1981         PR c++/79672
1982         * tree.c (inchash::add_expr): Handle TREE_VEC.
1984 2017-03-09  Martin Liska  <mliska@suse.cz>
1986         PR ipa/79764
1987         (chkp_narrow_size_and_offset): New function.
1988         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
1989         (void chkp_parse_bit_field_ref): New function.
1990         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
1991         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
1993 2017-03-09  Martin Liska  <mliska@suse.cz>
1995         PR ipa/79761
1996         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
1997         (chkp_find_bounds_1): Remove gcc_unreachable.
1999 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
2001         PR sanitizer/79944
2002         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
2003         BUILT_IN_SYNC*, determine the access type from the size suffix and
2004         always build a MEM_REF with that type.  Handle forgotten
2005         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
2007         PR target/79932
2008         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
2009         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
2010         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
2011         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
2012         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
2013         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
2014         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
2015         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
2016         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
2017         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
2018         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
2019         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
2020         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
2021         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
2022         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
2023         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
2024         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
2025         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
2026         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
2027         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
2028         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
2029         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
2030         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
2031         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
2032         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
2033         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
2034         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
2035         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
2036         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
2037         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
2038         definitions outside of __OPTIMIZE__ guarded section.
2040         PR target/79932
2041         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
2042         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
2043         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
2044         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
2045         guarded section.
2047 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2049         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
2050         ("vfenez<mode>"): Add missing constraints.
2052 2017-03-08  Martin Sebor  <msebor@redhat.com>
2054         PR target/79928
2055         * config/nds32/nds32.c (nds32_option_override): 
2057 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
2059         PR c/79940
2060         * gimplify.c (gimplify_omp_for): Replace index var in outer
2061         taskloop statement with an artificial variable and add
2062         OMP_CLAUSE_PRIVATE clause for it.
2064 2017-03-08  Richard Biener  <rguenther@suse.de>
2066         PR tree-optimization/79955
2067         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
2068         for accesses that are completely outside of the variable.
2070 2017-03-08  Andrew Haley  <aph@redhat.com>
2072         PR tree-optimization/79943
2073         * tree-ssa-loop-split.c (compute_new_first_bound): When
2074         calculating the new upper bound, (END-BEG) should be added, not
2075         subtracted.
2077 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
2079         * config/avr/avr.md (setmemhi): Make sure match_dup
2080         operand number comes before match_scratch.
2082 2017-03-08  Richard Biener  <rguenther@suse.de>
2084         PR tree-optimization/79920
2085         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
2086         with ncopies == 1 to ...
2087         (vect_transform_slp_perm_load): ... here.  Properly compute
2088         all element loads by iterating VF times over the group.  Do
2089         not handle ncopies (computed in a broken way) in
2090         vect_create_mask_and_perm.
2092 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
2094         PR sanitizer/79904
2095         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
2096         is a uniform vector, use uniform_vector_p return value instead of
2097         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
2099 2017-03-07  Marek Polacek  <polacek@redhat.com>
2101         PR middle-end/79809
2102         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
2103         (alloca_call_type): Likewise.
2105 2017-03-07  Martin Liska  <mliska@suse.cz>
2107         * gcov.c (process_args): Put comment to correct location.
2109 2017-03-07  Martin Liska  <mliska@suse.cz>
2111         PR middle-end/68270
2112         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
2113         Use array_at_struct_end_p instead of DECL_CHAIN (field).
2114         (chkp_narrow_bounds_for_field): Likewise.
2115         (chkp_parse_array_and_component_ref): Pass one more argument to
2116         call.
2118 2017-03-07  Richard Biener  <rguenther@suse.de>
2120         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
2121         preheaders.
2123 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
2125         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
2126         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
2128 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2130         PR c/79855
2131         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
2132         to end of description.
2133         (PARAM_MAX_STORES_TO_MERGE): Likewise.
2135 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
2137         PR rtl-optimization/79901
2138         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
2139         ...
2140         (*avx512f_<code><mode>3<mask_name>): ... this.
2141         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
2142         iterator instead of VI8_AVX2_AVX512BW.
2144         PR rtl-optimization/79901
2145         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
2146         min/max expander, expand it using expand_vec_cond_expr.
2148         PR sanitizer/79897
2149         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
2150         temporary.
2152 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
2154         PR c++/79821
2155         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
2156         to void * for PCH reasons.
2157         * dwarf2out.c (output_loc_operands, output_die): Cast
2158         v.val_vec.array to unsigned char *.
2160 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
2162         PR target/77850
2163         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
2164         vector types.
2166 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
2168         PR rtl-optimization/79571
2169         * lra-constraints.c (process_alt_operands): Calculate static
2170         reject and subtract it from overall when only addresses will be
2171         reloaded.
2173 2017-03-06  Julia Koval  <julia.koval@intel.com>
2175         PR target/79793
2176         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
2177         incoming stack boundary to 128 for 64-bit targets.
2179 2017-03-06  Richard Biener  <rguenther@suse.de>
2181         PR tree-optimization/79894
2182         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
2183         to NULL after folding it.
2185 2017-03-06  Richard Biener  <rguenther@suse.de>
2187         PR tree-optimization/79824
2188         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
2189         check disabling peeling for gaps.
2191 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
2193         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2194         attributes): Document gettimeofday.
2196 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
2198         * config/s390/s390.c (s390_option_override_internal): Set
2199         PARAM_MIN_VECT_LOOP_BOUND
2201 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
2203         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
2204         * config/s390/s390.md: Likewise.
2206 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
2208         PR target/79812
2209         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
2210         (<avx2_avx512>_perm<mode>): Rename to ...
2211         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
2212         of VI8F_256_512.
2213         (<avx512>_perm<mode>_mask): Rename to ...
2214         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
2215         of VI8F_256_512.
2216         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
2217         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
2218         instead of VI8F_256_512.
2219         (avx512f_perm<mode>): New define_expand.
2220         (avx512f_perm<mode>_mask): Likewise.
2221         (avx512f_perm<mode>_1<mask_name>): New define_insn.
2222         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
2224 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
2226         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
2227         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
2228         if_then_else.
2229         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
2231 2017-03-06  Martin Liska  <mliska@suse.cz>
2233         PR sanitize/79783
2234         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
2235         when having a SSA NAME w/o VAR_DECL assigned to it.
2237 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
2239         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
2240         msa_dpsub_<su>_d): Fix MODE for vec_select.
2242 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
2244         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
2245         argument.
2246         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
2248 2017-03-06  Richard Biener  <rguenther@suse.de>
2250         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
2251         * plugin.c (register_plugin_info): Likewise.
2252         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
2254 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
2256         * config/i386/sse.md (sse_storehps, sse_storelps,
2257         avx_<castmode><avxsizesuffix>_<castmode>,
2258         avx512f_<castmode><avxsizesuffix>_<castmode>,
2259         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
2260         in condition that at least one operand is not a MEM.
2262 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
2264         PR middle-end/79805
2265         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
2266         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
2267         ECF_NOTHROW.
2268         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
2269         gimple_call_nothrow_p flag based on whether original builtin can throw.
2270         If it can, emit following stmts on the fallthrough edge.
2271         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
2272         don't create new bb if inserting just debug stmts on the edge, try to
2273         insert them on the fallthru bb or just reset debug stmts.
2275 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
2277         PR target/43763
2278         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
2279         restore recog_data (including the operand rtxes inside it) around
2280         the call to get_insn_template.
2282 2017-03-03  Martin Sebor  <msebor@redhat.com>
2284         PR tree-optimization/79699
2285         * context.c (context::~context): Free MPFR caches to avoid
2286         a memory leak on program exit.
2288 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2290         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
2291         Use wide_int::ulow () instead of .elt (0).
2293 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
2295         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
2296         (*pushxf): Limit oF constraint to 32bit targets and add oC
2297         constraint for 64bit targets.
2298         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
2299         (*pushdf): Change rmF constraint to rmC.
2301 2017-03-03  Martin Liska  <mliska@suse.cz>
2303         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
2304         Remove unused variable.
2306 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
2308         PR target/79807
2309         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
2310         is a memory operand, increase num_memory.
2311         (ix86_expand_args_builtin): Likewise.
2313 2017-03-03  Jan Hubicka  <jh@suse.cz>
2315         PR lto/79760
2316         * ipa-devirt.c (maybe_record_node): Properly handle
2317         __cxa_pure_virtual visibility.
2319 2017-03-03  Martin Liska  <mliska@suse.cz>
2321         PR tree-optimization/79803
2322         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
2323         assert.
2324         (pass_loop_prefetch::execute): Disabled optimization if an
2325         assumption about L1 cache size is not met.
2327 2017-03-03  Martin Liska  <mliska@suse.cz>
2329         PR rtl-optimization/79574
2330         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
2331         (hash_scan_set): Likewise.
2332         (dump_hash_table): Likewise.
2333         (hoist_code): Likewise.
2335 2017-03-03  Richard Biener  <rguenther@suse.de>
2337         * fixed-value.c (fixed_from_string): Restore use of elt (1)
2338         in place of uhigh ().
2339         (fixed_convert_from_real): Likewise.
2341 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
2343         PR target/79514
2344         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
2346 2017-03-03  Richard Biener  <rguenther@suse.de>
2348         PR middle-end/79818
2349         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
2350         TYPE_OVERFLOW_UNDEFINED check.
2352 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2354         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
2355         numbers.
2356         (vector_ae_<mode>_p): Likewise.
2357         (vector_nez_<mode>_p): Likewise.
2358         (vector_ne_v2di_p): Likewise.
2359         (vector_ae_v2di_p): Likewise.
2360         (vector_ne_<mode>_p): Likewise.
2361         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
2362         numbers.
2363         (vsx_tsqrt<mode>2_fe): Likewise.
2365 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
2367         PR target/79514
2368         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
2370 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
2372         PR rtl-optimization/79780
2373         * cprop.c (one_cprop_pass): When second and further conditional trap
2374         in a single basic block is turned into an unconditional trap, turn it
2375         into a deleted note to avoid RTL verification failures.
2377 2017-03-02  Richard Biener  <rguenther@suse.de>
2379         * fold-const.c (const_binop): Use ulow () instead of elt (0).
2381 2017-03-02  Richard Biener  <rguenther@suse.de>
2383         PR tree-optimization/79345
2384         PR c++/42000
2385         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
2386         param and abort the walk, returning -1 if it is hit.
2387         (walk_aliased_vdefs): Take a limit param and pass it on.
2388         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
2389         defaulting to 0 and return a signed int.
2390         * tree-ssa-uninit.c (struct check_defs_data): New struct.
2391         (check_defs): New helper.
2392         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
2393         about uninitialized memory.
2394         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
2395         bogus uninitialized warning.
2396         (fixed_convert_from_real): Likewise.
2398 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
2400         PR tree-optimization/66768
2401         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
2402         iv_use if base object can't be determined.
2404 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
2406         PR tree-optimization/79345
2407         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
2408         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
2409         (get_pattern_stats): Initialize it.
2410         * genemit.c (gen_expand): Verify match_scratch numbers come after
2411         match_operand/match_dup numbers.
2412         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
2413         match_scratch numbers.
2414         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
2415         Likewise.
2416         * config/s390/s390.md (trunctdsd2): Likewise.
2418 2017-03-02  Richard Biener  <rguenther@suse.de>
2420         * wide-int.h (wide_int_storage::operator=): Implement in terms
2421         of wi::copy.
2423 2017-03-02  Richard Biener  <rguenther@suse.de>
2425         PR tree-optimization/79777
2426         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
2427         the to insert expression to sth existing.
2429 2017-03-01  Martin Sebor  <msebor@redhat.com>
2431         PR middle-end/79692
2432         * gimple-ssa-sprintf.c
2433         (directive::known_width_and_precision): New function.
2434         (format_integer): Use it.
2435         (get_mpfr_format_length): Consider the full range of precision
2436         when computing %g output with the # flag.  Set the likely byte
2437         count to 3 rather than 1 when precision is indeterminate.
2438         (format_floating): Correct the lower bound of precision.
2440 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2442         * doc/invoke.texi: Document default code model for 64-bit Linux.
2444 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2446         PR target/79752
2447         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
2448         udiv rather than div since input pattern is unsigned.
2450 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
2452         * config/i386/i386.c (print_reg): Warn for values of
2453         unsupported size in integer register.
2455 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2457         PR target/79439
2458         * config/rs6000/predicates.md (current_file_function_operand): Do
2459         not allow self calls to be local if the function is replaceable.
2461 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2463         PR target/79395
2464         * config/rs6000/altivec.h (vec_ctz and others): Change the
2465         preprocessor macro that controls conditional compilation from
2466         _ARCH_PWR9 to __POWER9_VECTOR__.
2467         (vec_all_ne): Change parameterization of __altivec_scalar_pred
2468         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
2469         control (instead of _ARCH_PWR9 control) so that template
2470         definition uses power9-specific function.
2471         (vec_any_eq): Likewise.
2472         (vec_all_ne): Change macro definition to use a power9-specific
2473         expansion under #ifdef __POWER9_VECTOR__ control (instead of
2474         _ARCH_PWR9 control).
2475         (vec_any_eq) Likewise.
2476         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
2477         expansion for CMPNEF to remove support for xvcmpnesp instruction.
2478         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
2479         support for xvcmpnedp instruction.
2480         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
2481         macro expansion so that Power9 implementation of vec_all_ne does
2482         not use the AltiVec predicate framework.
2483         (VCMPNEH_P): Likewise.
2484         (VCMPNEW_P): Likewise.
2485         (VCMPNED_P): Likewise.
2486         (VCMPNEFP_P): Likewise.
2487         (VCMPNEDP_P): Likewise.
2488         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
2489         implementation of vec_any_eq to not use AltiVec predicate
2490         framework.
2491         (VCMPAEH_P): Likewise.
2492         (VCMPAEW_P): Likewise.
2493         (VCMPAED_P): Likewise.
2494         (VCMPAEFP_P): Likewise.
2495         (VCMPAEDP_P): Likewise.
2496         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
2497         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
2498         not use the AltiVec predicate framework.
2499         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
2500         of vec_any_eq to not use AltiVec predicate framework.
2501         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
2502         support for predefined __POWER9_VECTOR__ macro to indicate that
2503         Power9 instruction selection is enabled.
2504         (altivec_overloaded_builtins): Remove extraneous
2505         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
2506         function argument types RS6000_BTI_bool_V16QI and
2507         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
2508         entry for overloaded function argument types RS6000_BTI_bool_V4SI
2509         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
2510         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
2511         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
2512         Power9 for implementations of vec_cmpne.  Change the signature for
2513         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
2514         (representing vec_all_ne) to remove the previously described first
2515         argument of type RS6000_BTI_INTSI, as this was an artifact of
2516         reliance on the AltiVec predicate framework, which is no longer
2517         used in the implementation of these functions.  Add
2518         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
2519         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
2520         since, unlike the AltiVec predicate framework implementation, we
2521         do not share function descriptors between vec_alle and vec_anyeq.
2522         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
2523         set of modes that receive special treatment even when
2524         TARGET_P9_VECTOR is true.  The special treatment emits code that
2525         does not depend on Power9 instructions.
2526         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
2527         define_expand to not rely on AltiVec predicate framework.
2528         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
2529         function.
2530         (vector_ne_v2di_p): Change this define_expand to not rely on
2531         AltiVec predicate framework.
2532         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
2533         function.
2534         (vector_ne_<mode>_p): Change this define_expand to not rely on
2535         AltiVec predicate framework.
2536         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
2537         function.
2538         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
2539         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
2540         define_insn pattern.
2541         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
2542         define_insn pattern because the xvcmpne<VSs>. instruction is not
2543         supported.
2544         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
2545         instruction is not supported.
2547 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2549         * config/nvptx/nvptx.c: Include intl.h.
2551 2017-03-01  Martin Jambor  <mjambor@suse.cz>
2553         PR lto/78140
2554         * ipa-prop.h (ipa_bits): Removed field known.
2555         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
2556         to pointers.  Adjusted their comments to warn about their sharing.
2557         (ipcp_transformation_summary): Change bits to a vector of pointers.
2558         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
2559         (ipa_get_ipa_bits_for_value): Declare.
2560         * tree-vrp.h (value_range): Mark as GTY((for_user)).
2561         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
2562         (ipa_bits_hash_table): Likewise.
2563         (ipa_vr_ggc_hash_traits): Likewise.
2564         (ipa_vr_hash_table): Likewise.
2565         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
2566         being pointers and vr_known being removed.
2567         (ipa_set_jf_unknown): Likewise.
2568         (ipa_get_ipa_bits_for_value): New function.
2569         (ipa_set_jfunc_bits): Likewise.
2570         (ipa_get_value_range): New overloaded functions.
2571         (ipa_set_jfunc_vr): Likewise.
2572         (ipa_compute_jump_functions_for_edge): Use the above functions to
2573         construct bits and vr parts of jump functions.
2574         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
2575         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
2576         exist.
2577         (ipcp_grow_transformations_if_necessary): Also allocate
2578         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
2579         exist.
2580         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
2581         them.  Fix too long lines.
2582         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
2583         vr_known being removed.
2584         (ipa_read_jump_function): Use new setter functions to construct bits
2585         and vr parts of jump functions or set them to NULL.
2586         (write_ipcp_transformation_info): Adjust for bits being pointers.
2587         (read_ipcp_transformation_info): Likewise.
2588         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
2589         space.
2590         Include gt-ipa-prop.h.
2591         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
2592         being pointers.
2593         (ipcp_store_bits_results): Likewise.
2594         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
2595         Do not write to existing jump functions but use a temporary instead.
2597 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2599         PR c++/79681
2600         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
2601         attempt to use its first operand as BIT_FIELD_REF base.
2603 2017-03-01  Richard Biener  <rguenther@suse.de>
2605         PR middle-end/79721
2606         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
2607         interpolating formula in wrapping arithmetic.
2608         (chrec_apply): Convert chrec_evaluate return value to wanted type.
2610 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
2612         PR tree-optimization/79734
2613         * tree-vect-generic.c (expand_vector_condition): Optimize
2614         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
2615         Handle VEC_COND_EXPR where comparison has different inner width from
2616         type's inner width.
2618 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
2620         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
2621         markup, and similar issues.  Remove @opindex entries for things
2622         that aren't options.  Add missing -mmpy-option entries.
2624 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2626         PR tree-optimization/79737
2627         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
2628         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
2629         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
2630         instead of byte_size.  Formatting fix.
2631         (shift_bytes_in_array_right): Formatting fix.
2633 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
2635         PR target/79749
2636         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
2637         condition on optimize for the leaf function test.
2639 2017-02-28  Martin Liska  <mliska@suse.cz>
2641         PR lto/79625
2642         * read-rtl-function.c (function_reader::handle_unknown_directive):
2643         Bail out when one uses -flto.
2645 2017-02-28  Martin Liska  <mliska@suse.cz>
2647         * common.opt: Replace space with tabular for options of <number>
2648         type.
2649         * config/i386/i386.opt: Show <number> value for
2650         -mlarge-data-threshold.
2651         * opts.c (print_filtered_help): Do not display number in hexadecimal
2652         format.
2654 2017-02-28  Martin Liska  <mliska@suse.cz>
2656         * common.opt: Fix --help=option -Q for options which are of
2657         an enum type.
2659 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
2661         * config/i386/i386.c (print_reg): Error out for values
2662         of 8-bit size in invalid integer register.
2664 2017-02-28  Martin Sebor  <msebor@redhat.com>
2666         PR tree-optimization/79691
2667         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
2669 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2671         PR target/79729
2672         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
2673         gcc_unreachable with output_operand_lossage.
2675 2017-02-28  Richard Biener  <rguenther@suse.de>
2677         PR tree-optimization/79740
2678         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
2679         inserts.
2680         (visit_nary_op): Insert the nary into the hashtable if we
2681         pattern-matched sth.
2682         * tree-ssa-pre.c (eliminate_insert): Robustify.
2684 2017-02-28  Richard Biener  <rguenther@suse.de>
2686         PR middle-end/79731
2687         * fold-const.c (decode_field_reference): Reject out-of-bound
2688         accesses.
2690 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
2692         * config/i386/i386.c: Include intl.h.
2693         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
2694         instead of just cond ? "..." : "...".
2695         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
2696         * coverage.c (read_counts_file): Likewise.
2697         * omp-offload.c: Include intl.h.
2698         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
2699         of just cond ? "..." : "...".
2700         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
2701         of just cond ? "..." : "...".
2703 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
2705         PR target/79742
2706         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
2707         entry, if present.
2708         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
2709         'tune for' CPU name.
2710         * config/arm/arm-cpu-data.h: Regenerated.
2712 2017-02-28  Richard Biener  <rguenther@suse.de>
2714         PR tree-optimization/79732
2715         * tree-inline.c (expand_call_inline): Do not shadow var.
2717 2017-02-28  Richard Biener  <rguenther@suse.de>
2719         PR tree-optimization/79723
2720         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
2721         address-space properly.
2723 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
2725         * doc/optinfo.texi (Optimization groups): Fix option used for
2726         OPTGROUP_ALL.
2727         * doc/invoke.texi (-fopt-info): Document "omp".
2728         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
2729         (OPTGROUP_ALL): Add OPTGROUP_OMP.
2730         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
2731         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
2732         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
2734         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
2735         all users.
2736         * dumpfile.c (optgroup_options): Instead of "openmp", associate
2737         OPTGROUP_OMP with "omp".
2739 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
2741         PR target/79544
2742         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
2743         for arithmetic shift of unsigned V2DI.
2745 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
2747         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
2748         arc/linux.h headers.
2749         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
2750         (LINK_SPEC): Likewise.
2751         (ARC_TLS_EXTRA_START_SPEC): Likewise.
2752         (EXTRA_SPECS): Likewise.
2753         (STARTFILE_SPEC): Likewise.
2754         (ENDFILE_SPEC): Likewise.
2755         (LIB_SPEC): Likewise.
2756         (TARGET_SDATA_DEFAULT): Likewise.
2757         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
2758         (MULTILIB_DEFAULTS): Likewise.
2759         (DWARF2_UNWIND_INFO): Likewise.
2760         * config/arc/big.h: New file.
2761         * config/arc/elf.h: Likewise.
2762         * config/arc/linux.h: Likewise.
2763         * config/arc/t-uClibc: Remove.
2765 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
2767         PR tree-optimization/77536
2768         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
2769         (tree_transform_and_unroll_loop): Use above function to compute the
2770         estimated niter of unrolled loop and use it when scaling profile.
2771         Also use count info rather than frequency if it's non-zero.
2772         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
2773         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
2774         (vect_transform_loop): Call above function.
2776 2017-02-27  Richard Biener  <rguenther@suse.de>
2778         PR tree-optimization/45397
2779         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
2780         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
2781         (visit_nary_op): Add pattern matching for CSEing sign-changed
2782         or truncated operations with wider ones.
2784 2017-02-27  Richard Biener  <rguenther@suse.de>
2786         PR tree-optimization/79690
2787         * tree-vect-stmts.c (vectorizable_store): Use vector type
2788         built from the DR with address-space.
2790 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
2792         * doc/invoke.texi (Optimize Options): Refine the description
2793         of asan-use-after-return.
2795 2017-02-25  Alan Modra  <amodra@gmail.com>
2797         PR rtl-optimization/79584
2798         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
2799         base, not ad->base_term, the reg within base.  Remove assertion
2800         that ad->base == ad->base_term.  Replace gen_int_mode using
2801         bogus mode with const0_rtx.
2803 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
2805         PR middle-end/79396
2806         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
2807         FMA_EXPR like tcc_binary or tcc_unary.
2809         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
2811         PR debug/77589
2812         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
2813         bitfield.
2814         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
2815         (output_loc_operands): Handle DW_OP_call_ref and
2816         DW_OP_GNU_variable_value.
2817         (struct variable_value_struct): New type.
2818         (struct variable_value_hasher): Likewise.
2819         (variable_value_hash): New variable.
2820         (string_types): Remove.
2821         (copy_loc_descr): New function.
2822         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
2823         (prepend_loc_descr_to_each): New function.
2824         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
2825         instead of add_loc_descr_to_each if the first argument is single
2826         location list and the second has multiple.
2827         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
2828         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
2829         when looking for variable value which doesn't have other location info.
2830         (loc_list_from_tree): Formatting fix.
2831         (gen_array_type_die): Simplify DW_AT_string_length handling.
2832         (adjust_string_types): Remove.
2833         (gen_subprogram_die): Don't call adjust_string_types nor test/set
2834         string_types.  Call resolve_variable_values.
2835         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
2836         (resolve_addr_in_expr): Likewise.  Add A argument.
2837         (copy_deref_exprloc): Remove deref argument.  Adjust for the
2838         original expression being DW_OP_GNU_variable_value with optionally
2839         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
2840         optionally after it.
2841         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
2842         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
2843         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
2844         (variable_value_hasher::hash, variable_value_hasher::equal): New
2845         methods.
2846         (resolve_variable_value_in_expr, resolve_variable_value,
2847         resolve_variable_values, note_variable_value_in_expr,
2848         note_variable_value): New functions.
2849         (dwarf2out_early_finish): Call note_variable_value on all toplevel
2850         DIEs.
2852 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
2854         PR c/79677
2855         * opts.h (handle_generated_option): Add GENERATED_P argument.
2856         * opts-common.c (handle_option): Adjust function comment.
2857         (handle_generated_option): Add GENERATED_P argument, pass it to
2858         handle_option.
2859         (control_warning_option): Pass false to handle_generated_option
2860         GENERATED_P.
2861         * opts.c (maybe_default_option): Pass true to handle_generated_option
2862         GENERATED_P.
2863         * optc-gen.awk: Likewise.
2865 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2867         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
2868         a REG, look at the REG it is a SUBREG of.
2869         (splitter for cmpeqsi_t): Ditto.
2871 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2873         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
2874         the special USEs with the pattern of the insn, not the insn itself.
2876 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
2878         PR target/79473
2879         * doc/invoke.texi: Document -mload-store-pairs.
2881 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2882             Sandra Loosemore  <sandra@codesourcery.com>
2884         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
2885         argument isn't a CONST_INT.
2886         (nios2_alternate_compare_const): Assert op is a CONST_INT.
2887         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
2888         (nios2_validate_compare): Bypass alternate compare logic if *op2
2889         is not a CONST_INT.
2890         (ldstwm_operation_p): Return false if first_base is not a REG or
2891         if first_offset is not a CONST_INT.
2893 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2895         * config/cris/cris.md: Use correct operand in a define_peephole2.
2897 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2899         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
2901 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
2903         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
2904         this_insn if it is an INSN or JUMP_INSN.
2905         (force_offsettable): Look at base, not at addr.
2906         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
2907         on things that aren't necessarily CONST_INTs.
2909 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
2911         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
2912         -mfpmath=sse is the default also for x86-32 targets with SSE2
2913         instruction set when @option{-ffast-math} is enabled
2915 2017-02-24  Jeff Law  <law@redhat.com>
2917         PR rtl-optimizatoin/79286
2918         * ira.c (update_equiv_regs): Drop may_trap_p exception to
2919         dominance test.
2921 2017-02-24  Richard Biener  <rguenther@suse.de>
2923         PR tree-optimization/79389
2924         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
2925         debug insns.
2927 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
2929         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
2930         function comment to reflect reality.
2931         (loop_exits_before_overflow): Fix typo in function description.
2933 2017-02-24  Richard Biener  <rguenther@suse.de>
2935         PR tree-optimization/79389
2936         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
2937         properly that a threading opportunity exists.  Detect conditional
2938         copy/constant propagation opportunities.
2940 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
2942         * config/visium/visium.md (type): Add trap.
2943         (b): New mode attribute.
2944         (*btst): Rename into...
2945         (*btst<mode>): ...this and adjust.
2946         (*cbranchsi4_btst_insn): Rename into...
2947         (*cbranch<mode>4_btst_insn): ...this and adjust.
2948         (trap): New define_insn.
2950 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
2952         PR tree-optimization/79389
2953         * ifcvt.c (struct noce_if_info): Add rev_cond field.
2954         (noce_reversed_cond_code): New function.
2955         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
2956         reversed_comparison_code.  Formatting fix.
2957         (noce_try_store_flag): Test rev_cond != NULL in addition to
2958         reversed_comparison_code.
2959         (noce_try_store_flag_constants): Likewise.
2960         (noce_try_store_flag_mask): Likewise.
2961         (noce_try_addcc): Use rev_cond if non-NULL instead of
2962         reversed_comparison_code.
2963         (noce_try_cmove_arith): Likewise.  Formatting fixes.
2964         (noce_try_minmax, noce_try_abs): Clear rev_cond.
2965         (noce_find_if_block): Initialize rev_cond.
2966         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
2967         instead of false as last argument never attempt to reverse it
2968         afterwards.
2970 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
2972         PR tree-optimization/79663
2973         * tree-predcom.c (combine_chains): Process refs in reverse order
2974         only for ZERO length chains, and add explaining comment.
2976 2017-02-23  Jeff Law  <law@redhat.com>
2978         PR tree-optimization/79578
2979         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
2980         in call to operand_equal_p.
2982 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
2984         PR target/71017
2985         * config/i386/cpuid.h: Fix another undefined behavior.
2987 2017-02-23  Richard Biener  <rguenther@suse.de>
2989         PR tree-optimization/79683
2990         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
2991         vector types for data-refs.
2993 2017-02-23  Martin Liska  <mliska@suse.cz>
2995         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
2997 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
2999         PR middle-end/79665
3000         * internal-fn.c (get_range_pos_neg): Moved to ...
3001         * tree.c (get_range_pos_neg): ... here.  No longer static.
3002         * tree.h (get_range_pos_neg): New prototype.
3003         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
3004         are known to be in between 0 and signed maximum inclusive, try to
3005         expand both unsigned and signed divmod and use the cheaper one from
3006         those.
3008 2017-02-22  Jeff Law  <law@redhat.com>
3010         PR tree-optimization/79578
3011         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
3012         to compare base operands.
3014 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
3016         PR target/79211
3017         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
3018         gpc_reg_operand instead of fpr_reg_operand.
3020 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
3022         * config/mips/mips.c (mips_return_in_memory): Force FP
3023         vector types to be returned in memory for o32 ABI.
3025 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
3027         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
3028         instead of DW_TAG_member for static data member declarations and don't
3029         set no_linkage_name for static inline data members.
3030         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
3031         to DW_TAG_member.
3033 2017-02-22  Martin Liska  <mliska@suse.cz>
3035         * doc/invoke.texi: Replace inequality signs with square brackets
3036         for -Wnormalized.
3038 2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3040         PR tree-optimization/68644
3041         * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
3043 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
3045         PR target/78660
3046         * lra-constraints.c (simplify_operand_subreg): Handle
3047         WORD_REGISTER_OPERATIONS targets.
3049 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
3051         PR target/70465
3052         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
3053         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
3054         elimination by swapping fld*.
3056 2017-02-22  Richard Biener  <rguenther@suse.de>
3058         PR tree-optimization/79673
3059         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
3060         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
3061         irrelevant address-space qualifiers and avoiding a
3062         ADDR_SPACE_CONVERT_EXPR from fold_convert.
3064 2017-02-22  Richard Biener  <rguenther@suse.de>
3066         PR tree-optimization/79666
3067         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
3068         to not symbolically negate if that may introduce undefined
3069         overflow.
3071 2017-02-22  Martin Liska  <mliska@suse.cz>
3073         PR lto/79587
3074         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
3075         * data-streamer-out.c (streamer_write_gcov_count_stream):
3076         Likewise.
3077         * value-prof.c (stream_out_histogram_value): Make assert more
3078         precise based on type of counter.
3080 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
3082         PR target/79593
3083         * config/i386/i386.md (standard_x87sse_constant_load splitter):
3084         Use nonimmediate_operand instead of memory_operand for operand 1.
3085         (float-extend standard_x87sse_constant_load splitter): Ditto.
3087 2017-02-21 Jeff Law  <law@redhat.com>
3089         PR tree-optimization/79621
3090         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
3091         blocks with edges to themselves.
3093 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
3095         PR target/79633
3096         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
3097         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
3098         Use gimple_call_builtin_p.
3100         PR target/79570
3101         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
3102         on temporarily removed DEBUG_INSNs.
3104         PR tree-optimization/79649
3105         * tree-loop-distribution.c (classify_partition): Give up on
3106         non-generic address space loads/stores.
3108 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
3110         * doc/loop.texi (Loop manipulation): Remove nonexistent
3111         tree_ssa_loop_version from the documentation.
3112         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
3114 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
3116         PR target/79494
3117         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
3118         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
3119         * config/rs6000/rs6000.c: Include except.h.
3120         (rs6000_expand_split_stack_prologue): Call
3121         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
3123 2017-02-21  Martin Jambor  <mjambor@suse.cz>
3125         PR lto/79579
3126         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
3127         have been analyzed.
3129 2017-02-21  Martin Jambor  <mjambor@suse.cz>
3131         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
3132         for backward compatibility only.
3133         * doc/invoke.texi (Option Summary): Remove all references to
3134         -fipa-cp-alignment.
3136 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
3138         PR target/78660
3139         Revert:
3140         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3142         * lra-constraints.c (curr_insn_transform): Handle
3143         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
3145 2017-02-21  Martin Liska  <mliska@suse.cz>
3147         * config/i386/i386.opt: Replace -masm-dialect with -masm.
3149 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
3151         PR translation/79638
3152         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
3154 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
3156         PR ada/67205
3157         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
3158         (arm_function_ok_for_sibcall): Return false for an indirect call by
3159         descriptor if all the argument registers are used.
3160         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
3161         alignment of the function.
3163 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
3165         PR tree-optimization/61441
3166         * simplify-rtx.c (simplify_const_unary_operation): For
3167         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
3168         the sNaN unmodified.
3170 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3172         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
3173         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
3174         instead of SYSTEM_HEADER_DIR.
3176 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
3177             Martin LiÅ¡ka  <mliska@suse.cz>
3179         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
3180         Fix typos and grammar, use active voice, and clarify.
3182 2017-02-20  Marek Polacek  <polacek@redhat.com>
3184         PR middle-end/79537
3185         * gimplify.c (gimplify_expr): Handle unused *&&L;.
3187         PR sanitizer/79558
3188         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
3190 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
3192         PR target/79568
3193         * config/i386/i386.c (ix86_expand_builtin): Handle
3194         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
3195         ix86_builtins_isa[fcode].isa as a requirement of those
3196         flags and any other flag in the bitmask.
3197         (ix86_init_mmx_sse_builtins): Use 0 instead of
3198         ~OPTION_MASK_ISA_64BIT as mask.
3199         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
3200         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
3201         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
3202         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
3204 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3206         PR target/78012
3207         * lra-constraints.c (split_reg): Check requested split mode
3208         is supported by the register.
3210 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3212         * lra-constraints.c (simplify_operand_subreg): Remove early
3213         return false.
3215 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3217         PR target/78660
3218         * lra-constraints.c (curr_insn_transform): Tighten condition
3219         for converting SUBREG reloads from OP_OUT to OP_INOUT.
3221 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3223         PR target/78660
3224         * lra-constraints.c (curr_insn_transform): Handle
3225         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
3227 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
3229         Revert:
3230         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
3232         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
3234 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
3236         PR c++/69523
3237         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
3238         description.
3240 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3242         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
3243         for FMA_EXPR.
3245 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
3247         * final.c (last_columnnum, override_columnnum): New variables.
3248         (final_start_function): Set last_columnnum, pass it to begin_prologue
3249         hook and pass 0 to dwarf2out_begin_prologue.
3250         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
3251         to source_line debug hook.
3252         (notice_source_line): Compute last_columnnum and for debug_column_info
3253         return true on column changes.
3254         * debug.h (struct gcc_debug_hooks): Add column argument to
3255         source_line and begin_prologue hooks.
3256         (debug_nothing_int_charstar_int_bool): Remove prototype.
3257         (debug_nothing_int_int_charstar,
3258         debug_nothing_int_int_charstar_int_bool): New prototypes.
3259         (dwarf2out_begin_prologue): Add column argument.
3260         * debug.c (do_nothing_debug_hooks): Adjust source_line and
3261         begin_prologue hooks.
3262         (debug_nothing_int_charstar_int_bool): Remove.
3263         (debug_nothing_int_int_charstar,
3264         debug_nothing_int_int_charstar_int_bool): New functions.
3265         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
3266         through to dwarf2out_source_line.
3267         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
3268         (dwarf2out_source_line): Add column argument, emit it if requested.
3269         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
3270         arguments.
3271         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
3272         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
3273         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
3274         through to dwarf2out_begin_prologue.
3275         (vmsdbgout_source_line): Add column argument, pass it through to
3276         dwarf2out_source_line.
3277         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
3278         dbxout_source_line caller.
3279         (dbxout_source_line): Add column argument.
3281         * common.opt (gno-column-info, gcolumn-info): New options.
3282         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
3283         (check_die): Also test for multiple DW_AT_decl_column attributes.
3284         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
3285         DW_AT_decl_column if requested.
3286         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
3287         if requested.
3288         (gen_variable_die): Likewise.
3289         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
3290         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
3292         PR target/79569
3293         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
3294         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
3295         (ix86_handle_option): Handle OPT_m3dnowa.
3296         * doc/invoke.texi (-m3dnowa): Document.
3297         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
3298         -m3dnowa instead of -m3dnow -march=athlon.
3300         PR target/79559
3301         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
3302         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
3304 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3306         PR target/79261
3307         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
3308         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
3309         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
3310         generator for vsx_xxpermdi_<mode>_be.
3311         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
3312         force big-endian semantics.
3313         (vsx_xxpermdi_<mode>_be): New define_expand with same
3314         implementation as previous version of vsx_xxpermdi_<mode>.
3316 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
3318         PR tree-optimization/79327
3319         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
3320         variable, its initialization and use.
3322 2017-02-17  Julia Koval  <julia.koval@intel.com>
3324         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
3325         (OPTION_MASK_ISA_PKU_UNSET): New.
3326         (ix86_handle_option): Handle -mrdpid.
3327         * config/i386/cpuid.h (bit_RDPID): New.
3328         * config/i386/driver-i386.c (host_detect_local_cpu):
3329         Detect RDPID feature.
3330         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
3331         * config/i386/i386-c.c (ix86_target_macros_internal):
3332         Handle RDPID flag.
3333         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
3334         (ix86_valid_target_attribute_inner_p): Add "rdpid".
3335         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
3336         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
3337         * config/i386/i386.md (define_insn "rdpid"): New.
3338         * config/i386/i386.opt Add -mrdpid.
3339         * config/i386/immintrin.h (_rdpid_u32): New.
3341 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
3343         PR rtl-optimization/79541
3344         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
3345         instead of transforming it into USE.
3347 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
3349         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
3350         If HONOR_SNANS (SFmode) force the input to a register.
3351         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
3352         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
3353         an frsp or similar insn.
3355 2017-02-17  Martin Liska  <mliska@suse.cz>
3357         PR rtl-optimization/79577
3358         * params.def (selsched-max-sched-times): Increase minimum to 1.
3360 2017-02-17  Martin Liska  <mliska@suse.cz>
3362         PR rtl-optimization/79574
3363         * gcse.c (want_to_gcse_p): Prevent integer overflow.
3365 2017-02-17  Martin Liska  <mliska@suse.cz>
3367         PR tree-optimization/79529
3368         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
3369         ssa_defined_default_def_p to handle cases which are implicitly
3370         defined.
3371         * tree-ssa.c (ssa_defined_default_def_p): New function.
3372         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
3373         which are implicitly defined.
3374         * tree-ssa.h (ssa_defined_default_def_p): Declare.
3376 2017-02-17  Richard Biener  <rguenther@suse.de>
3378         PR middle-end/79576
3379         * params.def (max-ssa-name-query-depth): Limit to 10.
3381 2017-02-17  Richard Biener  <rguenther@suse.de>
3383         PR tree-optimization/79552
3384         * tree-ssa-structalias.c (visit_loadstore): Properly verify
3385         default defs.
3387 2017-02-17  Richard Biener  <rguenther@suse.de>
3389         PR bootstrap/79567
3390         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
3392 2017-02-17  Marek Polacek  <polacek@redhat.com>
3394         PR middle-end/79536
3395         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
3396         (fold_negate_expr): New wrapper.
3398 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
3400         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
3401         Correct terminology and de-emphasize pre-standard behavior.
3403 2017-02-16  Alan Modra  <amodra@gmail.com>
3405         PR rtl-optimization/79286
3406         * ira.c (def_dominates_uses): New function.
3407         (update_equiv_regs): Don't create an equivalence for insns that
3408         may trap where the register def does not dominate the use.
3410 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
3412         PR rtl-optimization/78127
3413         * lra.c (lra): Call lra_eliminate before finish the loop after
3414         lra_constraint.
3416 2017-02-16  Richard Biener  <rguenther@suse.de>
3418         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
3419         isl/isl_val.h.
3420         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
3421         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
3422         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
3423         (isl_val_int_from_wi): New function.
3424         (extract_affine_gmp): Rename to ...
3425         (extract_affine_wi): ... this, take a widest_int.
3426         (extract_affine_int): Just wrap extract_affine_wi.
3427         (add_param_constraints): Use isl_val_int_from_wi.
3428         (add_loop_constraints): Likewise, and extract_affine_wi.
3430 2017-02-15 Jeff Law  <law@redhat.com>
3432         PR middle-end/79521
3433         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
3434         ira_init_register_move_cost_if_necessary.
3436 2017-02-15  Martin Sebor  <msebor@redhat.com>
3438         PR middle-end/32003
3439         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
3440         removed in a prior commit.
3442 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
3444         PR tree-optimization/79347
3445         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
3446         counters during peeling.
3448 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
3450         * Makefile.in (site.exp): Remove "set ISLVER".
3452 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
3454         PR target/79487
3455         * real.c (real_from_integer): Call real_convert even for decimal.
3457 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3459         PR target/79421
3460         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
3462 2017-02-14  Andrew Pinski  <apinski@cavium.com>
3464         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
3465         cores and change the partno/implementer to be correct.
3466         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
3467         the 'B" as the implementer.
3468         * config/aarch64/aarch64-tune.md: Regenerate.
3470 2017-02-14  Carl Love  <cel@us.ibm.com>
3472         * config/rs6000/rs6000.c: Add case statement entry to make the
3473         xvcvuxdsp built-in argument unsigned.
3474         * config/rs6000/vsx.md: Fix the source and return operand types so they
3475         match the instruction definitions from the ISA document.  Fix typo
3476         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
3477         statement.
3479 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
3481         PR target/79282
3482         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
3483         member early_clobber_alts.
3484         * lra-lives.c (reg_early_clobber_p): New.
3485         (process_bb_lives): Use it.
3486         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
3487         (debug_operand_data): Initialize early_clobber_alts.
3488         (setup_operand_alternative): Set up early_clobber_alts.
3489         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
3490         alternatives to new_insn_reg.
3491         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
3492         it.
3493         (lra_update_insn_regno_info): Pass the new arg.
3495 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
3497         PR middle-end/79505
3498         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
3499         (new_oacc_loop_raw): Don't clear already cleared fields.
3501         PR target/79481
3502         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
3503         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
3504         _mm512_prefetch_i64gather_ps): New inline functions and macros.
3506 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
3508         PR target/79495
3509         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
3511 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
3513         PR target/79498
3514         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
3515         the extra instruction to the right place to store 128-bit constant
3516         when needed.
3518 2017-02-14  Martin Sebor  <msebor@redhat.com>
3520         PR middle-end/79448
3521         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
3522           warning for strings of unknown length.
3524 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
3526         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
3528 2017-02-14 Jeff Law  <law@redhat.com>
3530         PR target/79404
3531         * ira-costs.c (scan_one_insn): Initialize register move costs
3532         for pseudos seen in USE/CLOBBER insns.
3534         PR tree-optimization/79095
3535         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
3536         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
3537         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
3538         if the operands are known to be not equal, then the resulting range
3539         is ~[0,0].
3540         (intersect_ranges): If the new range is ~[0,0] and the old range is
3541         wide, then prefer ~[0,0].
3542         * tree-vrp.c (overflow_comparison_p_1): New function.
3543         (overflow_comparison_p): New function.
3544         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
3545         if NAME is used in an overflow test.
3546         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
3547         overflow check that can be expressed as an equality test, then adjust
3548         ops to be that equality test.
3550 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3552         * config/s390/s390-builtin-types.def: Remove flags argument.
3553         * config/s390/s390.c (s390_init_builtins): Likewise.
3555 2017-02-14  Martin Liska  <mliska@suse.cz>
3557         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
3558         vector.  Fix trailing white spaces.
3560 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
3562         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
3563         HFmode.
3565 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3567         PR rtl-optimization/68664
3568         * config/arm/arm.c (arm_sched_can_speculate_insn):
3569         New function.  Declare prototype.
3570         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
3572 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3574         PR rtl-optimization/68664
3575         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
3576         New function.
3577         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
3579 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
3581         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
3582         max skip bytes for function, loop and jump.
3584 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3586         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
3587         ABS_EXPR for gimple dump.
3589 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
3591         PR target/79462
3592         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
3594         PR tree-optimization/79408
3595         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
3596         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
3597         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
3598         also if rhs1 is INTEGER_CST.
3600 2017-02-14  Richard Biener  <rguenther@suse.de>
3602         PR middle-end/79432
3603         * tree-into-ssa.c (insert_phi_nodes): When the function can
3604         have abnormal edges rewrite SSA names with broken use-def
3605         dominance out of SSA and register them for PHI insertion.
3607 2017-02-13  Martin Sebor  <msebor@redhat.com>
3609         PR middle-end/79496
3610         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
3611         clearing info.nowrite flag when snprintf size argument is a range.
3613 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3615         * cprop.c (cprop_jump): Add missing space in string literal.
3616         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
3617         (get_constraint_for_component_ref): Likewise.
3618         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
3619         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
3620         * lra-constraints.c (process_alt_operands): Likewise.
3621         * ipa-inline.c (inline_small_functions): Likewise.
3622         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
3623         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
3624         * trans-mem.c (diagnose_tm_1_op): Likewise.
3625         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
3626         (grid_parallel_clauses_gridifiable): Likewise.
3628         * config/nvptx/mkoffload.c (process): Add space in between
3629         , and %d.
3631         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
3632         "MOD4_SSE_REGS" and "ALL_REGS".
3634         * spellcheck.c (test_data): Add , in between "foo" and "food".
3636 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3638         PR target/79449
3639         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
3640         boundary crossing check and subsequent code generation agree.
3642 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3644         * config/aarch64/aarch64.c (has_memory_op): Delete.
3645         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
3646         has_memory_op.
3648 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
3650         PR rtl-optimization/79388
3651         PR rtl-optimization/79450
3652         * combine.c (distribute_notes): When removing TEM_INSN for which
3653         corresponding dest has last value recorded, invalidate that last
3654         value.
3656 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3658         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
3659         of explicit '@'.  Add missing assembly comment marker on branch costs
3660         printout.
3662 2017-02-13  Nathan Sidwell  <nathan@acm.org>
3664         * gengtype-lex.l (<in_struct>): Add '/'.
3666 2017-02-13  Martin Liska  <mliska@suse.cz>
3668         PR c/79471
3669         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
3671 2017-02-13  Richard Biener  <rguenther@suse.de>
3673         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
3674         Remove.
3675         * configure: Re-generate.
3676         * config.in: Likewise.
3677         * graphite-dependences.c: Simplify as if
3678         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
3679         * graphite-isl-ast-to-gimple.c: Likewise.
3680         * graphite-optimize-isl.c: Likewise.
3681         * graphite-poly.c: Likewise.
3682         * graphite-sese-to-poly.c: Likewise.
3683         * graphite.h: Likewise.
3684         * toplev.c: Include isl/version.h and use isl_version () for
3685         printing the ISL version.
3686         * doc/install.texi: Update ISL requirement.
3688 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
3690         * doc/standards.texi (Standards): Update reference to
3691         Objective-C 2.0.
3693 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
3694         
3695         * doc/extend.texi (Named Address Spaces): sourceware.org now
3696         defaults to https.
3697         * doc/install.texi (Binaries): Ditto.
3698         (Specific): Ditto.
3700 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
3702         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
3703         standard terminology "stringize"/"stringizing" throughout.
3704         * doc/cppinternals.texi: Likewise.
3706 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
3708         * doc/extend.texi: Fix some spelling mistakes and typos.
3709         * doc/invoke.texi: Likewise.
3711 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
3713         PR ipa/79224
3714         * params.def (inline-min-speedup) Change from 10 to 8.
3716 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
3718         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
3719         4.5.
3721 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
3723         PR ipa/79224
3724         * ipa-inline-analysis.c (get_minimal_bb): New function.
3725         (record_modified): Use it.
3726         (remap_edge_change_prob): Handle also ancestor functions.
3728 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
3730         * doc/contrib.texi (Contributors): Remove broken link into
3731         the Mauve CVS repository.
3733 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
3735         PR middle-end/79454
3736         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
3737         result computation whenever lhs doesn't have vector mode, not
3738         just when it has BLKmode.
3740 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3742         * doc/makefile.texi (profiledbootstrap): Refer to the
3743         installation instructions only in textual form.
3745 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
3747         PR target/79295
3748         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
3750 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
3752         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
3753         (Specific): Update mingw-w64 reference.
3754         (Binaries): Ditto.
3755         (Specific): Remove broken link to Renesas RX processor.
3757 2017-02-10  Richard Biener  <rguenther@suse.de>
3759         * toplev.c (process_options): Do not mention obsolete graphite
3760         options when printing sorry message about missing graphite support.
3761         Mention -floop-nest-optimize.
3763 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
3765         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
3766         (vtst_p16): Likewise.
3767         (vtstq_p8): Likewise.
3768         (vtstq_p16): Likewise.
3769         (vtst_p64): New.
3770         (vtstq_p64): Likewise.
3771         * config/arm/arm_neon.h (vgetq_lane_p64): New.
3772         (vset_lane_p64): New.
3773         (vsetq_lane_p64): New.
3775 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
3777         PR tree-optimization/79411
3778         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
3779         stmt operands are SSA_NAMEs used in abnormal phis.
3780         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
3781         phis.
3783 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
3785         PR ipa/70795
3786         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
3787         flag if needed.
3789 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
3791         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
3793 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
3795         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
3796         to avoid warning.
3798         PR c/79413
3799         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
3800         not arbitrary TREE_CONSTANT.
3802         PR c/79431
3803         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
3804         "omp declare target link" attribute unless is_global_var.
3805         * omp-offload.c (find_link_var_op): Likewise.
3807 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
3808             Chung-Lin Tang  <cltang@codesourcery.com>
3810         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
3811         OMP_CLAUSE_TILE.
3812         (gimplify_adjust_omp_clauses): Don't delete TILE.
3813         (gimplify_omp_for): Deal with TILE.
3814         * internal-fn.c (expand_GOACC_TILE): New function.
3815         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
3816         (GOACC_TILE): New.
3817         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
3818         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
3819         element fields.
3820         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
3821         avoid DIV for outermost collapse var.
3822         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
3823         Remove out of date comments, fix whitespace.
3824         * omp-general.c (omp_extract_for_data): Deal with tiling.
3825         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
3826         adjust OLF_DIM_BASE value.
3827         (struct omp_for_data): Add tiling field.
3828         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
3829         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
3830         for auto loops.  Remove default auto determining, moved to
3831         oacc_loop_fixed_partitions.
3832         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
3833         stmts, add e_mask field.
3834         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
3835         (oacc_thread_numbers): Use oacc_dim_call.
3836         (oacc_xform_tile): New.
3837         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
3838         (finish_oacc_loop): Adjust for ifns vector.
3839         (oacc_loop_discover_walk): Append loop abstraction sites to list,
3840         add case for GOACC_TILE fns.
3841         (oacc_loop_xform_loop): Delete.
3842         (oacc_loop_process): Iterate over call list directly, and add
3843         handling for GOACC_TILE fns.
3844         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
3845         dump partitioning.
3846         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
3847         vector partitioning to outer loops.  Assign 2 partitions to loops
3848         when available. Add TILE handling.
3849         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
3850         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
3851         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
3852         * tree.c (omp_clause_num_ops): Adjust TILE ops.
3853         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
3855 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
3857         * configure.ac (ACX_BUGURL): Update.
3858         * configure: Regenerate.
3860 2017-02-09  Richard Biener  <rguenther@suse.de>
3862         PR tree-optimization/69823
3863         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
3864         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
3866 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
3868         * config/arc/arc-c.def: Add __NPS400__ definition.
3869         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
3870         (TARGET_NPS400): Define.
3872 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
3874         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
3875         file.
3876         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
3877         pointer, arch_info.
3878         (arc_cpu_types): Fill the arch_info field with a pointer into the
3879         arc_arch_types table.
3880         (arc_selected_cpu): Declare.
3881         * config/arc/arc.c (arc_selected_cpu): Make global.
3882         (arc_selected_arch): Delete.
3883         (arc_base_cpu): Delete.
3884         (arc_override_options): Remove references to deleted variables,
3885         update access to arch information.
3886         (ARC_OPT): Update access to arch information.
3887         (ARC_OPTX): Likewise.
3888         * config/arc/arc.h (arc_base_cpu): Remove declaration.
3889         (TARGET_ARC600): Update access to arch information.
3890         (TARGET_ARC601): Likewise.
3891         (TARGET_ARC700): Likewise.
3892         (TARGET_EM): Likewise.
3893         (TARGET_HS): Likewise.
3894         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
3895         information.
3897 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
3899         PR target/78604
3900         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
3901         condition/operands for integer GE/LE/GEU/LEU operations.
3903 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
3905         PR translation/79397
3906         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
3907         of AltiVec.
3909 2017-02-08  Martin Jambor  <mjambor@suse.cz>
3911         PR ipa/79375
3912         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
3913         whether allocation happened.
3914         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
3915         nothing was allocated.
3917 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
3919         PR tree-optimization/79408
3920         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
3921         constant, but SSA_NAME with a known integer range, use the minimum
3922         of that range instead of op1 to determine if modulo can be replaced
3923         with its first operand.
3925 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3927         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
3929 2017-02-08  Richard Biener  <rguenther@suse.de>
3931         PR tree-optimization/71824
3932         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
3933         Check all loops contained in the merged region.
3935 2017-02-07  Andrew Pinski  <apinski@cavium.com>
3937         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
3939 2017-02-07  Andrew Pinski  <apinski@cavium.com>
3941         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
3942         (thunderxt88): Likewise.
3943         (thunderxt81): Disable LSE and change v8.1 to v8.
3944         (thunderxt83): Likewise.
3946 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
3947             Richard Biener  <rguenther@suse.de>
3949         PR middle-end/79399
3950         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
3951         type from int to size_t.
3952         * ira-costs.c (struct_costs_size): Change type from int to size_t.
3954 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
3956         PR rtl-optimization/79386
3957         * cprop.c (bypass_conditional_jumps): Initialize
3958         bypass_last_basic_block already before splitting bbs after
3959         unconditional traps...
3960         (bypass_conditional_jumps): ... rather than here.
3962         PR target/79299
3963         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
3964         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
3965         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
3966         fix -masm=intel patterns.
3968 2017-02-07  Richard Biener  <rguenther@suse.de>
3970         PR tree-optimization/79256
3971         PR middle-end/79278
3972         * builtins.c (get_object_alignment_2): Use min_align_of_type
3973         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
3974         and ADJUST_FIELD_ALIGN.
3976         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
3977         type parameter.
3978         * doc/tm.texi: Regenerate.
3979         * stor-layout.c (layout_decl): Adjust.
3980         (update_alignment_for_field): Likewise.
3981         (place_field): Likewise.
3982         (min_align_of_type): Likewise.
3983         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
3984         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
3985         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
3986         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
3987         * config/frv/frv.c (frv_adjust_field_align): Likewise.
3988         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
3989         * config/i386/i386.c (x86_field_alignment): Likewise.
3990         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
3991         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
3992         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
3993         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
3994         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
3995         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
3996          Likewise.
3998         Revert
3999         2017-01-30  Richard Biener  <rguenther@suse.de>
4001         PR tree-optimization/79256
4002         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
4003         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
4004         alignment on TYPE.
4006 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
4008         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
4009         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
4010         builtins to SImode and emit a zero-extend, if necessary.
4012 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
4014         * docs/invoke.texi (RISC-V Options): Alphabetize.
4016 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
4018         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
4019         options.
4021 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
4023         * config/riscv/riscv.c: New file.
4024         * gcc/common/config/riscv/riscv-common.c: Likewise.
4025         * config.gcc: Likewise.
4026         * config/riscv/constraints.md: Likewise.
4027         * config/riscv/elf.h: Likewise.
4028         * config/riscv/generic.md: Likewise.
4029         * config/riscv/linux.h: Likewise.
4030         * config/riscv/multilib-generator: Likewise.
4031         * config/riscv/peephole.md: Likewise.
4032         * config/riscv/pic.md: Likewise.
4033         * config/riscv/predicates.md: Likewise.
4034         * config/riscv/riscv-builtins.c: Likewise.
4035         * config/riscv/riscv-c.c: Likewise.
4036         * config/riscv/riscv-ftypes.def: Likewise.
4037         * config/riscv/riscv-modes.def: Likewise.
4038         * config/riscv/riscv-opts.h: Likewise.
4039         * config/riscv/riscv-protos.h: Likewise.
4040         * config/riscv/riscv.h: Likewise.
4041         * config/riscv/riscv.md: Likewise.
4042         * config/riscv/riscv.opt: Likewise.
4043         * config/riscv/sync.md: Likewise.
4044         * config/riscv/t-elf-multilib: Likewise.
4045         * config/riscv/t-linux: Likewise.
4046         * config/riscv/t-linux-multilib: Likewise.
4047         * config/riscv/t-riscv: Likewise.
4048         * configure.ac: Likewise.
4049         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
4050         Waterman as RISC-V maintainers.
4051         * doc/install.texi: Add RISC-V entries.
4052         * doc/invoke.texi: Add RISC-V options section.
4053         * doc/md.texi: Add RISC-V constraints section.
4054         * configure: Regenerated.
4056 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
4058         PR target/66144
4059         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
4060         false values to be constant vectors with all 0 or all 1 bits set.
4061         (vcondu<mode><mode>): Likewise.
4062         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
4063         predicate.
4064         (fpmask_comparison_operator): Update comment.
4065         (vecint_comparison_operator): New predicate.
4066         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
4067         vector conditionals when the true and false values are constant
4068         vectors with all 0 bits or all 1 bits set.
4070 2017-02-06  Martin Sebor  <msebor@redhat.com>
4072         PR  tree-optimization/79376
4073         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
4075 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
4077         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
4078         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
4079         to simplify split condition.
4081 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
4083         * omp-expand.c (oxpand_omp_atomic_fetch_op,
4084         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
4085         false.
4087 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
4089         PR rtl-optimization/68664
4090         * target.def (can_speculate_insn): New hook.
4091         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
4092         * doc/tm.texi: Regenerate.
4093         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
4094         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
4095         (rs6000_sched_can_speculate_insn): New function.
4097 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
4099         PR tree-optimization/79284
4100         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
4101         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
4102         vectorizable_mask_load_store, vectorizable_operation,
4103         vect_is_simple_cond, get_same_sized_vectype): Use it instead
4104         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
4105         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
4106         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
4107         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
4108         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
4109         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
4110         is_gimple_assign (stmt).  Replace another such test with
4111         is_gimple_assign (stmt).
4113 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
4115         PR target/78883
4116         * config/avr/avr.c (rtl-iter.h): Include it.
4117         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
4118         (avr_legitimate_combined_insn): ...and implementation.
4120 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4122         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
4123         * config/s390/s390.c (s390_const_operand_ok)
4124         (s390_canonicalize_comparison, s390_extract_part)
4125         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
4126         (s390_contiguous_bitmask_p, s390_rtx_costs)
4127         (legitimize_pic_address): Likewise.
4128         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
4129         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
4130         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
4131         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
4132         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
4134 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
4136         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
4137         REGNO($0) == REGNO($1).
4139 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4141         * config/s390/linux.h(SIZE_TYPE): Add comment.
4143 2017-02-06  Julian Brown  <julian@codesourcery.com>
4144             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4145             Virendra Pathak  <virendra.pathak@broadcom.com>
4147         * config/aarch64/aarch64-cores.def: Change the scheduler
4148         to Thunderx2t99.
4149         * config/aarch64/aarch64.md: Include thunderx2t99.md.
4150         * config/aarch64/thunderx2t99.md: New file.
4152 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
4154         * doc/standards.texi (Go Language): Update link to language
4155         standard.
4157 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
4159         * tree-eh.c (lower_resx): Sanitize profile.
4160         (cleanup_empty_eh_move_lp): Likewise.
4162 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
4164         PR tree-ssa/79347
4165         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
4166         ELSE_PROB.
4167         * cfgloopmanip.h (loop_version): Update prototype.
4168         * modulo-sched.c (sms_schedule): Update call of loop_version.
4169         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
4170         * tree-parloops.c (gen_parallel_loop): Likewise.
4171         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
4172         * tree-ssa-loop-split.c (split_loop): Likewise.
4173         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
4174         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
4176 2017-02-05  Martin Liska  <mliska@suse.cz>
4178         PR bootstrap/78985
4179         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
4180         variable to NULL.
4181         (print_operand_address): Initialize a struct to zero.
4183 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
4185         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
4186         garbage collector only in textual form.
4188 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
4189         
4190         * doc/extend.texi (x86 specific memory model extensions for
4191         transactional memory): Simplify a phrase.
4193 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
4195         PR target/79353
4196         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
4197         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
4198         (atomic_storedi_1): Likewise.
4200 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
4202         PR tree-optimization/79338
4203         * tree-parloops.c (gather_scalar_reductions): Don't call
4204         vect_analyze_loop_form for loop->inner before destroying loop's
4205         loop_vinfo.
4207 2017-02-03  Martin Sebor  <msebor@redhat.com>
4209         PR tree-optimization/79327
4210         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
4211         when precision has resulted in leading zeros.
4212         (format_integer): Adjust the likely counter to assume an unknown
4213         argument that may be zero is non-zero.
4215 2017-02-03  Jason Merrill  <jason@redhat.com>
4217         PR c++/78689
4218         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
4219         avoid copying non-taken branch.
4221 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
4223         PR tree-optimization/79340
4224         * tree-vect-loop.c (vectorizable_reduction): Release
4225         vec_defs elements after safe_splicing them into other vectors.
4226         Formatting fixes.
4228         PR tree-optimization/79327
4229         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
4230         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
4231         dirtype.
4232         (format_integer): Use wide_int_to_tree instead of build_int_cst
4233         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
4234         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
4235         of shortest and longest sequence.
4237 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
4239         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
4240         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
4242 2017-02-03  Walter Lee  <walt@tilera.com>
4244         PR target/78862
4245         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
4246         after initial stackframe link reg save.
4247         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
4249 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
4251         PR target/79354
4252         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
4253         wu for stxssp alternative.
4255 2017-02-03  Martin Sebor  <msebor@redhat.com>
4257         PR tree-optimization/79352
4258         * gimple-fold.c (get_range_strlen): Add argument.
4259         (get_range_strlen): Change return type to bool.
4260         (get_maxval_strlen): Pass in a dummy argument.
4261         * gimple-fold.h (get_range_strlen): Change return type to bool.
4262         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
4263         * tree.h (array_at_struct_end_p): Add argument.
4264         * tree.c (array_at_struct_end_p): Handle it.
4266 2017-02-03  Martin Liska  <mliska@suse.cz>
4268         PR lto/66295
4269         * multiple_target.c (create_dispatcher_calls): Redirect edge
4270         from a caller of a dispatcher.
4271         (expand_target_clones): Make the clones local.
4272         (ipa_target_clone): Do both target clones and resolvers.
4273         (ipa_dispatcher_calls): Remove the pass.
4274         (pass_dispatcher_calls::gate): Likewise.
4275         (make_pass_dispatcher_calls): Likewise.
4276         * passes.def (pass_target_clone): Put as very first IPA early
4277         pass.
4279 2017-02-03  Martin Liska  <mliska@suse.cz>
4281         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
4282         in case of a function with ifunc attribute.
4284 2017-02-03  Martin Liska  <mliska@suse.cz>
4286         * cgraph.c (cgraph_node::dump): Dump function version info.
4287         * symtab.c (symtab_node::dump_base): Add missing new line.
4289 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
4291         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
4292         (ifcombine_ifandif): Use it.
4294 2017-02-03  Martin Liska  <mliska@suse.cz>
4296         * doc/invoke.texi: Document default value for
4297         use-after-scope-direct-emission-threshold.
4299 2017-02-03  Martin Liska  <mliska@suse.cz>
4301         PR tree-optimization/79339
4302         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
4303         (format_floating): Likewise.
4305 2017-02-03  Martin Liska  <mliska@suse.cz>
4307         PR ipa/79337
4308         * ipa-prop.c (ipa_node_params_t::insert): Remove current
4309         implementation.
4310         (ipa_node_params_t::remove): Likewise.
4311         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
4312         initialization from removed ipa_node_params_t::insert.
4313         (ipa_node_params::~ipa_node_params): Move from removed
4314         ipa_node_params_t::release.
4315         * symbol-summary.h (symbol_summary::m_released): New member.
4316         Do not release a summary twice.  Do not allow to call finalizer
4317         for types of a summary that live in GGC memory.
4319 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
4321         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
4322         cmp_branch fusion.
4324 2017-02-02  Martin Sebor  <msebor@redhat.com>
4326         PR middle-end/79275
4327         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
4328         (format_string): Tighten up the range of output for non-constant
4329         strings and correct the expected range for wide non-constant strings.
4331 2017-02-02  Martin Sebor  <msebor@redhat.com>
4333         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
4335         PR middle-end/32003
4336         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
4337         index.
4338         (-fdump-tree-@var): Add to index and document how to come up
4339         with pass-specific option and dump file names.
4340         (-fdump-passes): Clarify where to look for output.
4342 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
4344         PR middle-end/77445
4345         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
4346         statistics of the analyzed path; allow threading for speed when
4347         any of BBs along the path are optimized for speed.
4349 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
4351         PR middle-end/78468
4352         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
4353         settings of the virtual registers.
4355         Revert again
4356         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4358         * explow.c (get_dynamic_stack_size): Take known alignment of stack
4359         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
4360         needed.
4362 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4364         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
4365         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
4367 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4369         * config/s390/s390.md: Add missing comments with the expanded
4370         mnemonics.
4371         * config/s390/vector.md: Likewise.
4372         * config/s390/vx-builtins.md: Likewise.
4374 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
4376         PR target/79197
4377         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
4378         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
4379         conditions on a single line.
4381 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4383         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
4384         __S390_VX__ to __VX__.
4386 2017-02-01  Andrew Pinski  <apinski@cavium.com>
4388         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
4389         stmt_info to record_stmt_cost.
4390         (vect_get_known_peeling_cost): Pass stmt_info if known to
4391         record_stmt_cost.
4392         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
4393         cpu_vector_cost field into
4394         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
4395         field into vec_int_stmt_cost and vec_fp_stmt_cost.
4396         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
4397         splitting of scalar_stmt_cost and vec_stmt_cost.
4398         (thunderx_vector_cost): Likewise.
4399         (cortexa57_vector_cost): LIkewise.
4400         (exynosm1_vector_cost): Likewise.
4401         (xgene1_vector_cost): Likewise.
4402         (thunderx2t99_vector_cost): Improve after the splitting of the two
4403         fields.
4404         (aarch64_builtin_vectorization_cost): Update for the splitting of
4405         scalar_stmt_cost and vec_stmt_cost.
4407 2017-02-01  Torvald Riegel  <triegel@redhat.com>
4408             Richard Henderson  <rth@redhat.com>
4410         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
4411         conditional on existance of a fast atomic load.
4412         * optabs-query.c (can_atomic_load_p): New function.
4413         * optabs-query.h (can_atomic_load_p): Declare it.
4414         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
4415         no fast atomic load is available for the particular size of access.
4416         (expand_atomic_compare_and_swap): Likewise.
4417         (expand_atomic_load): Likewise.
4418         (expand_atomic_store): Likewise.
4419         (expand_atomic_fetch_op): Likewise.
4420         * testsuite/lib/target-supports.exp
4421         (check_effective_target_sync_int_128): Remove x86 because it provides
4422         no fast atomic load.
4423         (check_effective_target_sync_int_128_runtime): Likewise.
4425 2017-02-01  Richard Biener  <rguenther@suse.de>
4427         * graphite.c: Include tree-vectorizer.h for find_loop_location.
4428         (graphite_transform_loops): Provide opt-info for optimized nests.
4429         * tree-parloop.c (parallelize_loops): Provide opt-info for
4430         parallelized loops.
4432 2017-02-01  Richard Biener  <rguenther@suse.de>
4434         PR middle-end/79315
4435         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
4436         was not set before.
4438 2017-02-01  Richard Biener  <rguenther@suse.de>
4440         PR tree-optimization/71824
4441         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
4442         Verify the loops are valid in the merged SESE region.
4443         (scop_detection::can_represent_loop_1): Check analyzing the
4444         evolution of the number of iterations in the region succeeds.
4446 2017-01-31  Ian Lance Taylor  <iant@golang.org>
4448         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
4449         REG_ARGS_SIZE note to 32-bit push insns and call insn.
4451 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
4453         PR preprocessor/79210
4454         * input.c (get_substring_ranges_for_loc): Replace line_width
4455         assertion with error-handling.
4457 2017-01-31  Richard Biener  <rguenther@suse.de>
4459         PR tree-optimization/77318
4460         * graphite-sese-to-poly.c (extract_affine): Fix assert.
4461         (create_pw_aff_from_tree): Take loop parameter.
4462         (add_condition_to_pbb): Pass loop of the condition to
4463         create_pw_aff_from_tree.
4465 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
4467         * config/s390/s390.c (s390_asan_shadow_offset): New function.
4468         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
4470 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
4472         PR target/78597
4473         PR target/79038
4474         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
4475         no longer used.
4476         (convert_int_to_float128): Likewise.
4477         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
4478         (convert_int_to_float128): Likewise.
4479         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
4480         (UNSPEC_IEEE128_CONVERT): Likewise.
4481         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
4482         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
4483         Use local variables for IBM extended format.
4484         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
4485         (fix_trunc<mode>si2_fprs): Likewise.
4486         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
4487         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
4488         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
4489         to know that we can now have integers of all sizes in vector
4490         registers.
4491         (fix<uns>_<mode>di2_hw): Likewise.
4492         (float<uns>_<mode>si2_hw): Likewise.
4493         (fix_<mode>si2_hw): Likewise.
4494         (fixuns_<mode>si2_hw): Likewise.
4495         (float<uns>_<mode>di2_hw): Likewise.
4496         (float_<mode>di2_hw): Likewise.
4497         (float_<mode>si2_hw): Likewise.
4498         (floatuns_<mode>di2_hw): Likewise.
4499         (floatuns_<mode>si2_hw): Likewise.
4500         (xscvqp<su>wz_<mode>): Delete, no longer used.
4501         (xscvqp<su>dz_<mode>): Likewise.
4502         (xscv<su>dqp_<mode>): Likewise.
4503         (ieee128_mfvsrd_64bit): Likewise.
4504         (ieee128_mfvsrd_32bit): Likewise.
4505         (ieee128_mfvsrwz): Likewise.
4506         (ieee128_mtvsrw): Likewise.
4507         (ieee128_mtvsrd_64bit): Likewise.
4508         (ieee128_mtvsrd_32bit): Likewise.
4510 2017-01-31  Martin Liska  <mliska@suse.cz>
4512         PR ipa/79285
4513         * ipa-prop.c (ipa_free_all_node_params): Call release method
4514         instead of ~sumbol_summary to not to trigger double times
4515         dtor of hash_map.
4517 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
4519         PR tree-optimization/71691
4520         * bitmap.h (class auto_bitmap): New.
4521         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
4522         is_maybe_undefined instead of ssa_undefined_value_p.
4524 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4526         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
4527         __S390_ARCH_LEVEL__ to __ARCH__.
4529 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
4531         PR tree-optimization/79267
4532         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
4533         if should_remove_lhs_p is true.
4535 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
4537         PR debug/63238
4538         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
4539         (add_alignment_attribute): New.
4540         (base_type_die): Add alignment attribute.
4541         (subrange_type_die): Likewise.
4542         (modified_type_die): Likewise.
4543         (gen_array_type_die): Likewise.
4544         (gen_descr_array_type_die: Likewise.
4545         (gen_enumeration_type_die): Likewise.
4546         (gen_subprogram_die): Likewise.
4547         (gen_variable_die): Likewise.
4548         (gen_field_die): Likewise.
4549         (gen_ptr_to_mbr_type_die): Likewise.
4550         (gen_struct_or_union_type_die): Likewise.
4551         (gen_subroutine_type_die): Likewise.
4552         (gen_typedef_die): Likewise.
4553         (base_type_cmp): Compare alignment attribute.
4555 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4557         PR target/79170
4558         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
4559         (setb_unsigned) New pattern for setb with CCUNS.
4560         * config/rs6000/rs6000.c (expand_block_compare): Use a different
4561         subfc./subfe sequence to avoid overflow problems.  Generate a
4562         shorter sequence with cmpld/setb for power9.
4563         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
4564         for generating subfc. instruction.
4565         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
4566         now uses this instruction.
4568 2017-01-30  Ian Lance Taylor  <iant@google.com>
4570         PR debug/79289
4571         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
4572         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
4574 2017-01-30  Martin Sebor  <msebor@redhat.com>
4576         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
4577         Move constant to the right of a relational operator.
4578         (get_mpfr_format_length, format_character, format_string): Ditto.
4579         (should_warn_p, maybe_warn): Same.
4581         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
4583 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
4585         PR lto/79061
4586         * asan.c (get_translation_unit_decl): Remove function.
4587         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
4589 2017-01-30  Martin Liska  <mliska@suse.cz>
4591         PR gcov-profile/79259
4592         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
4593         -fprofile-generate.
4595 2017-01-30  Martin Liska  <mliska@suse.cz>
4597         PR bootstrap/78985
4598         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
4599         Initialize variables with NULL value.
4601 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
4603         PR target/79260
4604         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
4605         tm_p_file.
4606         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
4608 2017-01-30  Richard Biener  <rguenther@suse.de>
4610         PR tree-optimization/79276
4611         * tree-vrp.c (process_assert_insertions): Properly adjust common
4612         when removing a duplicate.
4614         * gcc.dg/torture/pr79276.c: New testcase.
4616 2017-01-30  Richard Biener  <rguenther@suse.de>
4618         PR tree-optimization/79256
4619         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
4620         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
4621         alignment on TYPE.
4622         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
4624 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4626         PR target/79240
4627         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
4628         ("*r<noxa>sbg_<mode>_sll_bitmask")
4629         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
4630         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
4631         Use contiguous_bitmask_nowrap_operand.
4633 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4635         PR target/79268
4636         * config/rs6000/altivec.h (vec_xl): Revise #define.
4637         (vec_xst): Likewise.
4639 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
4641         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
4643 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
4645         PR rtl-optimization/79194
4646         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
4647         traps before call to bypass_conditional_jumps.
4649 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
4651         PR tree-optimization/71374
4652         * lra-constraints.c (check_conflict_input_operands): New.
4653         (match_reload): Use it.
4655 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
4657         PR target/79131
4658         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
4659         account to calculate conflict_set.
4661 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
4663         PR rtl-optimization/78559
4664         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
4665         other_insn in combine.
4667 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
4669         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
4670         uint16_type_node for BT_UINT16.
4672 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
4674         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
4675         "RTL Tests" to menu.
4676         (GIMPLE Tests): New node.
4677         (RTL Tests): New node.
4679 2017-01-27  Richard Biener  <rguenther@suse.de>
4681         PR tree-optimization/79245
4682         * tree-loop-distribution.c (distribute_loop): Apply cost
4683         modeling also to detected patterns.
4685 2017-01-27  Richard Biener  <rguenther@suse.de>
4687         PR tree-optimization/71433
4688         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
4689         (compare_assert_loc): New function.
4690         (process_assert_insertions): Sort and optimize assert locations
4691         to remove duplicates and push down identical assertions on
4692         edges to their destination block.
4694 2017-01-27  Richard Biener  <rguenther@suse.de>
4696         PR tree-optimization/79244
4697         * tree-vrp.c (remove_range_assertions): Forcefully propagate
4698         out SSA names even if abnormal.
4700 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
4702         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
4703         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
4704         instead of MPFR_RNDN.
4706 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
4708         PR target/79239
4709         * arm.c (arm_option_override): Don't call build_target_option_node
4710         until after doing all option overrides.
4711         (arm_valid_target_attribute_tree): Likewise.
4713 2017-01-27  Martin Liska  <mliska@suse.cz>
4715         * doc/invoke.texi (-fprofile-arcs): Document profiling support
4716         for {cd}tors and C++ {cd}tors.
4718 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4720         * config/s390/s390.md ("*setmem_long_and")
4721         ("*setmem_long_and_31z"): Use zero_extend instead of and.
4723 2017-01-26  Martin Sebor  <msebor@redhat.com>
4725         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
4726         of precision.
4728 2017-01-26  Martin Sebor  <msebor@redhat.com>
4730         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
4731         HAVE_DFmode before using XFmode or DFmode.
4732         (parse_directive): Avoid using the z length modifier to avoid
4733         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
4735         PR middle-end/78703
4736         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
4737         to accept adjustment as an array.
4738         (get_int_range): New function.
4739         (struct directive): Make width and prec arrays.
4740         (directive::set_width, directive::set_precision): Call get_int_range.
4741         (format_integer, format_floating): Handle width and precision ranges.
4742         (format_string, parse_directive): Same.
4744 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4746         PR debug/79129
4747         * dwarf2out.c (generate_skeleton_bottom_up): For children with
4748         comdat_type_p set, just clone them, but keep the children in the
4749         original DIE.
4751         PR debug/78835
4752         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
4753         which have direct callers with -fvar-tracking-assignments enabled
4754         in the current TU.
4755         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
4756         inside of type units.
4758 2017-01-26  Martin Sebor  <msebor@redhat.com>
4760         PR middle-end/78703
4761         * gimple-ssa-sprintf.c (struct result_range): Add likely and
4762         unlikely counters.
4763         (struct format_result): Replace number_chars, number_chars_min,
4764         and number_chars_max with a single member of struct result_range.
4765         Remove bounded.
4766         (format_result::operator+=): Adjust.
4767         (struct fmtresult): Remove bounded.  Handle likely and unlikely
4768         counters.
4769         (fmtresult::adjust_for_width_or_precision): New function.
4770         (fmtresult:type_max_digits): New function.
4771         (bytes_remaining): Handle likely and unlikely counters.
4772         (min_bytes_remaining): Remove.
4773         (format_percent): Simplify.
4774         (format_integer, format_floating): Set likely and unlikely counters.
4775         (get_string_length, format_character, format_string): Same.
4776         (format_plain, should_warn_p): New function.
4777         (maybe_warn): Call should_warn_p.  Update diagnostic messages
4778         and handle those for all directives, including plain strings.
4779         (format_directive): Handle likely and unlikely counters.
4780         Remove unnecessary quoting from diagnostics.  Add an informational
4781         note.
4782         (add_bytes): Remove.
4783         (pass_sprintf_length::compute_format_length): Simplify.
4784         (try_substitute_return_value): Handle likely and unlikely counters.
4786 2017-01-26  Carl Love  <cel@us.ibm.com>
4788         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
4789         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
4791 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
4793         PR target/79131
4794         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
4795         endianess for subregs into account.
4796         * lra-constraints.c (lra_constraints): Do risky transformations
4797         always on the first iteration.
4798         * lra-lives.c (check_pseudos_live_through_calls): Add arg
4799         last_call_used_reg_set.
4800         (process_bb_lives): Define and use last_call_used_reg_set.
4801         * lra.c (lra): Always continue after lra_constraints on the first
4802         iteration.
4804 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
4806         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
4807         constant.
4808         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
4810 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4812         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
4813         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
4814         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
4815         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
4816         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
4817         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
4818         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
4819         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
4820         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
4822 2017-01-26  Marek Polacek  <polacek@redhat.com>
4824         PR c/79199
4825         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
4826         for the third operand.
4828 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4830         PR middle-end/79236
4831         * omp-low.c (struct omp_context): Add simt_stmt field.
4832         (scan_omp_for): Return omp_context *.
4833         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
4834         context to the _simt_ SIMD stmt.
4835         (lower_omp_for): For combined SIMD with sibling _simt_
4836         SIMD, make sure to use the same decls in _looptemp_
4837         clauses as in the sibling.
4839 2017-01-26  David Sherwood  <david.sherwood@arm.com>
4841         PR middle-end/79212
4842         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
4843         all contexts.
4845 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
4847         PR target/70465
4848         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
4849         emit fld b; fld a; if possible.
4851         * brig-builtins.def: Update copyright years.
4852         * config/arm/arm_acle_builtins.def: Update copyright years.
4854 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
4856         PR target/79179
4857         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
4858         constraint instead of o for the stxsd instruction.
4860 2017-01-25  Carl Love  <cel@us.ibm.com>
4862         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
4863         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
4865 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
4867         * doc/invoke.texi (C++ Dialect Options): Fix typo.
4869 2017-01-25  Richard Biener  <rguenther@suse.de>
4871         PR tree-optimization/69264
4872         * target.def (vector_alignment_reachable): Improve documentation.
4873         * doc/tm.texi: Regenerate.
4874         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
4875         and add a comment.
4876         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
4877         earlier changes with respect to TYPE_USER_ALIGN.
4878         (vector_alignment_reachable_p): Likewise.  Improve dumping.
4880 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4882         PR target/79145
4883         * config/arm/arm.md (xordi3): Force constant operand into a register
4884         for TARGET_IWMMXT.
4886 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4888         * doc/invoke.texi (-fstore-merging): Correct default optimization
4889         levels at which it is enabled.
4890         (-O): Move -fstore-merging from list to...
4891         (-O2): ... Here.
4893 2017-01-25  Richard Biener  <rguenther@suse.de>
4895         PR debug/78363
4896         * omp-expand.c: Include debug.h.
4897         (expand_omp_taskreg): Make sure to generate early debug before
4898         outlining anything from a function.
4899         (expand_omp_target): Likewise.
4900         (grid_expand_target_grid_body): Likewise.
4902 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
4904         PR lto/79061
4905         * asan.c (get_translation_unit_decl): New function.
4906         (asan_add_global): Extract modules file name from globals
4907         TRANSLATION_UNIT_DECL name.
4909 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
4911         PR target/77439
4912         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
4913         for long calls with APCS frame and VFP.
4915 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
4917         * cfg.c (original_copy_tables_initialized_p): New function.
4918         * cfg.h (original_copy_tables_initialized_p): New decl.
4919         * cfgrtl.c (relink_block_chain): Guard the call to
4920         free_original_copy_tables with a call to
4921         original_copy_tables_initialized_p.
4922         * cgraph.h (symtab_node::native_rtl_p): New decl.
4923         * cgraphunit.c (symtab_node::native_rtl_p): New function.
4924         (symtab_node::needed_p): Don't assert for early assembly output
4925         for __RTL functions.
4926         (cgraph_node::finalize_function): Set "force_output" for __RTL
4927         functions.
4928         (cgraph_node::analyze): Bail out early for __RTL functions.
4929         (analyze_functions): Update assertion to support __RTL functions.
4930         (cgraph_node::expand): Bail out early for __RTL functions.
4931         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
4932         __RTL functions.
4933         * function.h (struct function): Update comment for field
4934         "pass_startwith".
4935         * gimple-expr.c: Include "tree-pass.h".
4936         (gimple_has_body_p): Return false for __RTL functions.
4937         * Makefile.in (OBJS): Add run-rtl-passes.o.
4938         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
4939         accessor.
4940         (gcc::pass_manager::get_clean_slate): New accessor.
4941         * passes.c: Include "insn-addr.h".
4942         (should_skip_pass_p): Add logging.  Update logic for running
4943         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
4944         property-provider override so it is only done for gimple passes.
4945         Don't skip dfinit.
4946         (skip_pass): New function.
4947         (execute_one_pass): Call skip_pass when skipping passes.
4948         * read-md.c (md_reader::read_char): Support filtering
4949         the input to a subset of line numbers.
4950         (md_reader::md_reader): Initialize fields
4951         m_first_line and m_last_line.
4952         (md_reader::read_file_fragment): New function.
4953         * read-md.h (md_reader::read_file_fragment): New decl.
4954         (md_reader::m_first_line): New field.
4955         (md_reader::m_last_line): New field.
4956         * read-rtl-function.c (function_reader::create_function): Only
4957         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
4958         curr_properties.  Set DECL_INITIAL to a dummy block.
4959         (read_rtl_function_body_from_file_range): New function.
4960         * read-rtl-function.h (read_rtl_function_body_from_file_range):
4961         New decl.
4962         * run-rtl-passes.c: New file.
4963         * run-rtl-passes.h: New file.
4965 2017-01-24 Jeff Law  <law@redhat.com>
4967         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
4968         buffer size.
4970 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
4972         PR tree-optimization/79159
4973         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
4974         (record_nonwrapping_iv): Improve boundary using above function if no
4975         value range information.
4977 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
4978             Martin Jambor  <mjambor@suse.cz>
4980         * brig-builtins.def: New file.
4981         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
4982         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
4983         (DEF_HSAIL_SAT_BUILTIN): Likewise.
4984         (DEF_HSAIL_INTR_BUILTIN): Likewise.
4985         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
4986         * builtin-types.def (BT_INT8): New.
4987         (BT_INT16): Likewise.
4988         (BT_UINT8): Likewise.
4989         (BT_UINT16): Likewise.
4990         (BT_FN_ULONG): Likewise.
4991         (BT_FN_UINT_INT): Likewise.
4992         (BT_FN_UINT_ULONG): Likewise.
4993         (BT_FN_UINT_LONG): Likewise.
4994         (BT_FN_UINT_PTR): Likewise.
4995         (BT_FN_ULONG_PTR): Likewise.
4996         (BT_FN_INT8_FLOAT): Likewise.
4997         (BT_FN_INT16_FLOAT): Likewise.
4998         (BT_FN_UINT32_FLOAT): Likewise.
4999         (BT_FN_UINT16_FLOAT): Likewise.
5000         (BT_FN_UINT8_FLOAT): Likewise.
5001         (BT_FN_UINT64_FLOAT): Likewise.
5002         (BT_FN_UINT16_UINT32): Likewise.
5003         (BT_FN_UINT32_UINT16): Likewise.
5004         (BT_FN_UINT16_UINT16_UINT16): Likewise.
5005         (BT_FN_INT_PTR_INT): Likewise.
5006         (BT_FN_UINT_PTR_UINT): Likewise.
5007         (BT_FN_LONG_PTR_LONG): Likewise.
5008         (BT_FN_ULONG_PTR_ULONG): Likewise.
5009         (BT_FN_VOID_UINT64_UINT64): Likewise.
5010         (BT_FN_UINT8_UINT8_UINT8): Likewise.
5011         (BT_FN_INT8_INT8_INT8): Likewise.
5012         (BT_FN_INT16_INT16_INT16): Likewise.
5013         (BT_FN_INT_INT_INT): Likewise.
5014         (BT_FN_UINT_FLOAT_UINT): Likewise.
5015         (BT_FN_FLOAT_UINT_UINT): Likewise.
5016         (BT_FN_ULONG_UINT_UINT): Likewise.
5017         (BT_FN_ULONG_UINT_PTR): Likewise.
5018         (BT_FN_ULONG_ULONG_ULONG): Likewise.
5019         (BT_FN_UINT_UINT_UINT): Likewise.
5020         (BT_FN_VOID_UINT_PTR): Likewise.
5021         (BT_FN_UINT_UINT_PTR: Likewise.
5022         (BT_FN_UINT32_UINT64_PTR): Likewise.
5023         (BT_FN_INT_INT_UINT_UINT): Likewise.
5024         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
5025         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
5026         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
5027         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
5028         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
5029         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
5030         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
5031         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
5032         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
5033         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
5034         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
5035         * doc/frontends.texi: List BRIG FE.
5036         * doc/install.texi (Testing): Add BRIG tesring requirements.
5037         * doc/invoke.texi (Overall Options): Mention BRIG.
5038         * doc/standards.texi (Standards): Doucment BRIG HSA version.
5040 2017-01-24  Richard Biener  <rguenther@suse.de>
5042         PR translation/79208
5043         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
5045 2017-01-24  Martin Jambor  <mjambor@suse.cz>
5047         PR bootstrap/79198
5048         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
5049         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
5050         and known_contexts.
5052 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
5054         PR middle-end/79123
5055         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
5056         casts from signed to unsigned really don't have a range.
5058 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
5060         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
5061         GMP_RNDx for compatiblity.
5063 2017-01-24  Martin Liska  <mliska@suse.cz>
5065         PR bootstrap/79132
5066         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
5067         that would prevent us to call alloca with -1 as argument.
5069 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
5071         * dwarf2out.c (output_compilation_unit_header, output_file_names):
5072         Avoid -Wformat-security warning.
5074 2017-01-23  Andrew Pinski  <apinski@cavium.com>
5076         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
5077         cost table.
5079 2017-01-23  Martin Sebor  <msebor@redhat.com>
5081         PR middle-end/78703
5082         * gimple-ssa-sprintf.c (warn_level): New global.
5083         (format_integer): Use it here and throughout the rest of the file.
5084         Use the same switch to compute sign as base.
5085         (maybe_warn): New function.
5086         (format_directive): Factor out warnings into maybe_warn.
5087         Add debugging output.  Use warn_level.
5088         (add_bytes): Use warn_level.
5089         (pass_sprintf_length::compute_format_length): Add debugging output.
5090         (try_substitute_return_value): Same.
5091         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
5093         PR middle-end/78703
5094         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
5095         (struct fmtresult, format_integer, format_floating): Adjust.
5096         (fmtresult::fmtresult): Set max correctly in two argument ctor.
5097         (get_string_length, format_string,format_directive): Same.
5098         (pass_sprintf_length::compute_format_length): Same.
5099         (try_substitute_return_value): Simplify slightly.
5101         PR middle-end/78703
5102         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
5103         (fmtresult::operator+=): Outlined.
5104         (struct fmtresult): Add ctors.
5105         (struct conversion_spec): Rename...
5106         (struct directive): ...to this.  Add and remove data members.
5107         (directive::set_width, directive::set_precision): New functions.
5108         (format_percent): Use fmtresult ctor.
5109         (get_width_and_precision): Remove.
5110         (format_integer): Make naming changes.  Avoid computing width and
5111         precision.
5112         (format_floating): Same.  Adjust indentation.
5113         (format_character, format_none): New functions.
5114         (format_string): Moved character handling to format_character.
5115         (format_directive): Remove arguments, change return type.
5116         (parse_directive): New function.
5117         (pass_sprintf_length::compute_format_length): Move directive
5118         parsing to parse_directive.
5120 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
5122         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
5123         (assign_assembler_name_if_needed): ... this.
5124         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
5125         (assign_assembler_name_if_needed): ... this.
5126         (free_lang_data_in_cgraph): Adjust callers.
5127         * cgraphunit.c (cgraph_node::analyze): Likewise.
5128         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
5129         Likewise.
5131 2017-01-23  Richard Biener  <rguenther@suse.de>
5133         PR tree-optimization/79088
5134         PR tree-optimization/79188
5135         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
5136         resetting loop bounds after last path deletion.  Reset loop
5137         bounds of the target loop, make code match the comments.
5138         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
5139         Make sure loops need no fixups.
5141 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5143         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
5144         exponent support with double type for first argument.
5145         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
5146         type returned by __builtin_vec_extract_sig,
5147         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
5148         functions from "vector int" to "vector unsigned int" or from
5149         "vector long long int" to "vector unsigned long long int".
5150         Changed type returned by __builtin_vec_extract_exp,
5151         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
5152         functions from "vector int" to "vector unsigned int" or from
5153         "vector long long int" to "vector unsigned long long int".
5154         Changed return type of __builtin_vec_test_data_class,
5155         __builtin_vec_test_data_class_sp, and
5156         __builtin_vec_test_data_class_dp from "vector int" to
5157         "vector bool int" or from "vector long long int" to "vector bool
5158         long long int" and changed second argument type from "unsigned
5159         int" to "int".  Added new overloaded function forms "vector float
5160         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
5161         "vector float __builtin_vec_insert_exp_sp (vector float, vector
5162         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
5163         double, vector unsigned long long int)" and "vector double
5164         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
5165         long int)".  Changed return type of
5166         __builtin_scalar_test_data_class and
5167         __builtin_scalar_test_data_class_sp and
5168         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
5169         int" and changed second argument from "unsigned int" to "int".
5170         Changed type returned by __builtin_scalar_test_neg,
5171         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
5172         from "int" to "bool int".  Added new overloaded function form
5173         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
5174         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
5175         exponent double-precision with floating point first argument.
5176         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
5177         documentation of scalar_test_data_class, scalar_test_neg,
5178         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
5179         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
5180         vec_test_data_class built-in functions to reflect refinements in
5181         their type signatures.
5183 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
5185         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
5186         size of buf.
5187         (aarch64_elf_asm_destructor): Likewise.
5189 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
5191         PR rtl-optimization/78634
5192         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
5193         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
5194         * ifcvt.c (noce_try_cmove): Add missing cost check.
5196         PR rtl-optimization/71724
5197         * combine.c (if_then_else_cond): Look for situations where it is
5198         beneficial to undo the work of one of the recursive calls.
5200 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
5202         PR tree-optimization/70754
5203         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
5204         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
5205         combined stmt before it if not NULL.
5206         (combine_chains): Process refs reversely and compute dominance point
5207         for root ref.
5209 2017-01-23  Martin Liska  <mliska@suse.cz>
5211         PR tree-optimization/79196
5212         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
5213         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
5214         instead of memcmp.
5215         (strlen_optimize_stmt): Call the renamed function.
5217 2017-01-23  Michael Matz  <matz@suse.de>
5219         PR tree-optimization/78384
5220         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
5222 2017-01-23  Richard Biener  <rguenther@suse.de>
5224         PR tree-optimization/79186
5225         * tree-vrp.c (register_new_assert_for): Make sure we've seen
5226         both incoming edges before moving an assert.
5228 2017-01-23  Martin Jambor  <mjambor@suse.cz>
5230         * ipa-prop.c (load_from_param_1): Removed.
5231         (load_from_unmodified_param): Bits from load_from_param_1 put back
5232         here.
5233         (load_from_param): Removed.
5234         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
5235         with stmt.  Reverted back to use of load_from_unmodified_param.
5237 2017-01-23  Martin Jambor  <mjambor@suse.cz>
5239         PR ipa/79108
5240         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
5241         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
5242         field a pointer to garbage collected vector, mark lattices and
5243         ipcp_orig_node with GTY((skip)).
5244         (ipa_get_param_count): Adjust to descriptors being a pointer.
5245         (ipa_get_param): Likewise.
5246         (ipa_get_type): Likewise.
5247         (ipa_get_param_move_cost): Likewise.
5248         (ipa_set_param_used): Likewise.
5249         (ipa_get_controlled_uses): Likewise.
5250         (ipa_set_controlled_uses): Likewise.
5251         (ipa_is_param_used): Likewise.
5252         (ipa_node_params_t): Move into garbage collector.  New methods insert
5253         and remove.
5254         (ipa_node_params_sum): Annotate wth GTY(()).
5255         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
5256         garbage collected.
5257         (ipa_load_from_parm_agg): Adjust declaration.
5258         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
5259         * ipa-profile.c (ipa_profile): Likewise.
5260         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
5261         (ipa_populate_param_decls): Make descriptors parameter garbage
5262         collected.
5263         (ipa_dump_param): Adjust to descriptors being a pointer.
5264         (ipa_alloc_node_params): Likewise.
5265         (ipa_initialize_node_params): Likewise.
5266         (load_from_param_1): Make descriptors parameter garbage collected.
5267         (load_from_unmodified_param): Likewise.
5268         (load_from_param): Likewise.
5269         (ipa_load_from_parm_agg): Likewise.
5270         (ipa_node_params::~ipa_node_params): Removed.
5271         (ipa_free_all_node_params): Remove call to delete operator.
5272         (ipa_node_params_t::insert): New.
5273         (ipa_node_params_t::remove): Likewise.
5274         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
5275         copy known_csts and known_contexts vectors.
5276         (ipa_read_node_info): Adjust to descriptors being a pointer.
5277         (ipcp_modif_dom_walker): Make m_descriptors field garbage
5278         collected.
5279         (ipcp_transform_function): Make descriptors variable garbage
5280         collected.
5282 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
5284         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
5285         * config/i386/avx512dqintrin.h: Ditto.
5286         * config/i386/avx512fintrin.h: Ditto.
5287         * gcc/config/i386/i386.c: Handle new builtins.
5288         * config/i386/i386-builtin.def: Add new builtins.
5289         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
5290         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
5292 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
5293             Martin Liska  <mliska@suse.cz>
5295         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
5296         * asan.c (asan_expand_poison_ifn): Support stores and use
5297         appropriate ASAN report function.
5298         * internal-fn.c (expand_ASAN_POISON_USE): New function.
5299         * internal-fn.def (ASAN_POISON_USE): Declare.
5300         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
5301         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
5302         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
5303         ASAN_POISON calls w/o LHS.
5304         * tree-ssa.c (execute_update_addresses_taken): Create clobber
5305         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
5306         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
5307         * gimplify.c (asan_poison_variables): Add attribute
5308         use_after_scope_memory to variables that really needs to live
5309         in memory.
5310         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
5311         having the attribute.
5313 2017-01-23  Martin Liska  <mliska@suse.cz>
5315         * asan.c (create_asan_shadow_var): New function.
5316         (asan_expand_poison_ifn): Likewise.
5317         * asan.h (asan_expand_poison_ifn): New declaration.
5318         * internal-fn.c (expand_ASAN_POISON): Likewise.
5319         * internal-fn.def (ASAN_POISON): New builtin.
5320         * sanopt.c (pass_sanopt::execute): Expand
5321         asan_expand_poison_ifn.
5322         * tree-inline.c (copy_decl_for_dup_finish): Make function
5323         external.
5324         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
5325         * tree-ssa.c (is_asan_mark_p): New function.
5326         (execute_update_addresses_taken): Rewrite local variables
5327         (identified just by use-after-scope as addressable) into SSA.
5329 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
5331         * doc/install.texi (Specific): opensource.apple.com uses https
5332         now. Remove trailing slash.
5334 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
5336         * README.Portability: Remove note on an Irix compatibility issue.
5338 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
5340         * gcov.c (INCLUDE_ALGORITHM): Define.
5341         (INCLUDE_VECTOR): Define.
5342         No longer include <vector> and <algorithm> directly.
5344 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
5346         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
5347         to https.
5348         * doc/invoke.texi (Code Gen Options): Ditto.
5350 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
5352         PR lto/78407
5353         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
5355 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
5357         rtl-optimization/79125
5358         * cprop.c (local_cprop_pass): Handle cases where we make an
5359         unconditional trap.
5361 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
5363         PR target/61729
5364         PR target/77850
5365         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
5366         read from, for big endian.
5368 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
5370         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
5371         register pauth builtins for LP64 only.
5373 2017-01-20  Marek Polacek  <polacek@redhat.com>
5375         PR c/79152
5376         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
5377         non-case labels.
5379 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
5381         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
5382         of safelen status.
5383         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
5384         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
5385         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
5387 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5389         PR target/71270
5390         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
5391         in big-endian mode when they are not a single duplicated value.
5393 2017-01-20  Richard Biener  <rguenther@suse.de>
5395         * BASE-VER: Bump to 7.0.1.
5397 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
5399         * omp-low.c (omplow_simd_context): New struct.  Use it...
5400         (lower_rec_simd_input_clauses): ...here and...
5401         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
5402         references to idx, lane, max_vf, is_simt.
5404 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
5406         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
5407         mcpu=nps400.
5409 2017-01-20  Martin Jambor  <mjambor@suse.cz>
5411         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
5412         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
5413         gt-hsa-common.h.
5414         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
5415         (GTFILES): Rename hsa.c to hsa-common.c.
5416         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
5417         * hsa-dump.c: Likewise.
5418         * hsa-gen.c: Likewise.
5419         * hsa-regalloc.c: Likewise.
5420         * ipa-hsa.c: Likewise.
5421         * omp-expand.c: Likewise.
5422         * omp-low.c: Likewise.
5423         * toplev.c: Likewise.
5425 2017-01-20  Marek Polacek  <polacek@redhat.com>
5427         PR c/64279
5428         * doc/invoke.texi: Document -Wduplicated-branches.
5429         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
5430         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
5431         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
5432         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
5433         return 0 only when not OEP_LEXICOGRAPHIC.
5434         (fold_build_cleanup_point_expr): Use the expression
5435         location when building CLEANUP_POINT_EXPR.
5436         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
5437         * tree.c (add_expr): Handle error_mark_node.
5439 2017-01-20  Martin Liska  <mliska@suse.cz>
5441         PR lto/69188
5442         * tree-profile.c (init_ic_make_global_vars): Do not call
5443         finalize_decl.
5444         (gimple_init_gcov_profiler): Likewise.
5446 2017-01-20  Martin Liska  <mliska@suse.cz>
5448         PR ipa/71190
5449         * cgraph.h (maybe_create_reference): Remove argument and
5450         update comment.
5451         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
5452         argument.
5453         * ipa-cp.c (create_specialized_node): Likewise.
5454         * symtab.c (symtab_node::maybe_create_reference): Handle
5455         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
5457 2017-01-20  Martin Liska  <mliska@suse.cz>
5459         * read-rtl-function.c (function_reader::create_function): Use
5460         build_decl instread of build_decl_stat.
5462 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
5464         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
5465         * config/i386/avx512dqintrin.h: Ditto.
5466         * config/i386/avx512fintrin.h: Ditto.
5467         * config/i386/i386-builtin-types.def: Add new types.
5468         * gcc/config/i386/i386.c: Handle new types.
5469         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
5470         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
5471         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
5472         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
5473         (__builtin_ia32_kshiftridi): New.
5474         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
5476 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
5478         PR target/78875
5479         PR target/79140
5480         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
5481         define to rs6000_init_stack_protect_guard.
5482         (rs6000_init_stack_protect_guard): New function.
5484 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
5485             Yunqiang Su  <yunqiang.su@imgtec.com>
5487         * config.gcc (supported_defaults): Add madd4.
5488         (with_madd4): Add validation.
5489         (all_defaults): Add madd4.
5490         * config/mips/mips.opt (mmadd4): New option.
5491         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
5492         mmadd4.
5493         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
5494         __mips_no_madd4.
5495         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
5496         (ISA_HAS_FUSED_MADD4): Likewise.
5497         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
5498         * gcc/doc/install.texi (--with-madd4): Document the new option.
5500 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5502         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
5503         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
5504         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
5505         (aarch64_init_pauth_hint_builtins): New.
5506         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
5507         (aarch64_expand_builtin): Expand new builtins.
5509 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5511         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
5512         * combine-stack-adj.c (no_unhandled_cfa): Handle
5513         REG_CFA_TOGGLE_RA_MANGLE.
5514         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
5515         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
5516         info for return address signing.
5517         (aarch64_expand_epilogue): Likewise.
5519 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5521         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
5522         * config/aarch64/aarch64-protos.h
5523         (aarch64_return_address_signing_enabled): New declaration.
5524         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
5525         New function.
5526         (aarch64_expand_prologue): Sign return address before it's pushed onto
5527         stack.
5528         (aarch64_expand_epilogue): Authenticate return address fetched from
5529         stack.
5530         (aarch64_override_options): Sanity check for ILP32 and ISA level.
5531         (aarch64_attributes): New function attributes for "sign-return-address".
5532         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
5533         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
5534         ("*do_return"): Generate combined instructions according to key index.
5535         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
5536         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
5537         iterators.
5538         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
5539         * config/aarch64/aarch64.opt (msign-return-address=): New.
5540         * doc/extend.texi (AArch64 Function Attributes): Documents
5541         "sign-return-address=".
5542         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
5544 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
5546         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
5547         overall option summary.
5549 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
5551         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
5552         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
5553         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
5554         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
5556 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
5558         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
5559         -mpower9-minmax by default for -mcpu=power9.
5560         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
5561         128-bit floating point.
5563 2017-01-20  Alan Modra  <amodra@gmail.com>
5565         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
5566         optimizing for size.
5568 2017-01-20  Alan Modra  <amodra@gmail.com>
5570         PR target/79144
5571         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
5572         for strcmp and strncmp from corresponding builtin decl.
5574 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
5576         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
5577         instead of i386/rtems-64.h.
5578         * config/i386/rtems-64.h: Remove.
5580 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
5582         PR target/78478
5583         Revert:
5584         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
5586         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
5588 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
5590         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
5591         Change int to HOST_WIDE_INT.
5592         * config/aarch64/aarch64-protos.h
5593         (aarch64_simd_gen_const_vector_dup): Likewise.
5594         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
5596 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
5598         * langhooks-def.h (lhd_type_for_size): New decl.
5599         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
5600         * langhooks.c (lhd_type_for_size): New function, taken from
5601         lto_type_for_size.
5603 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
5605         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
5606         define_bypass for CR latency.
5607         (power9-cracked-alu): Update bypass latency and remove power9-branch.
5608         (power9-alu2): Add define_bypass for CR latency.
5609         (power9-cmp): New.
5610         (power9-mul): Update insn latency.
5611         (power9-mul-compare): Update insn latency, bypass latency and remove
5612         power9-branch.
5614 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5616         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
5617         Delete.
5618         * config/aarch64/aarch64.md
5619         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
5620         aarch64_nopcrelative_literal_loads.
5621         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5623 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
5625         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
5626         TARGET_LOONGSON_3A.
5627         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
5629 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
5631         PR target/78176
5632         * config.gcc (supported_defaults): Add lxc1-sxc1.
5633         (with_lxc1_sxc1): Add validation.
5634         (all_defaults): Add lxc1-sxc1.
5635         * config/mips/mips.opt (mlxc1-sxc1): New option.
5636         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
5637         mlxc1-sxc1.
5638         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
5639         __mips_no_lxc1_sxc1.
5640         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
5641         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
5642         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
5644 2017-01-19  Richard Biener  <rguenther@suse.de>
5646         PR tree-optimization/72488
5647         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
5648         sure to restore SSA info.
5649         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
5651 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
5653         PR rtl-optimization/79121
5654         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
5655         of the inner type when shifting an extended value.
5657 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
5659         PR lto/78407
5660         * symtab.c (symtab_node::equal_address_to): Fix comparing of
5661         interposable aliases.
5663 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
5665         PR target/78516
5666         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
5667         Use the evmergelohi instruction.
5668         (mov_si<mode>_e500_subreg4_2_le): Likewise.
5669         (mov_sitf_e500_subreg8_2_be): Likewise.
5670         (mov_sitf_e500_subreg12_2_le): Likewise.
5671         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
5672         (mov_si<mode>_e500_subreg4_2_be): Likewise.
5673         (mov_sitf_e500_subreg8_2_le): Likewise.
5674         (mov_sitf_e500_subreg12_2_be): Likewise.
5676 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5678         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
5679         attribute from vecsimple to vecperm.
5680         (altivec_vbpermq2): Likewise.
5682 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5684         PR target/79040
5685         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
5687 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5688         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
5689         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
5690         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
5691         case where N arg is SIZE_MAX.
5692         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
5693         (cmpstrsi): Add pattern.
5695 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
5697         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5698         __builtin_vec_revb builtins.
5699         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
5700         built-in functions to support generation of the ISA 3.0 XXBR<x>
5701         vector byte reverse instructions.
5702         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
5703         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
5704         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
5705         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
5706         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
5707         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
5708         (P9V_BUILTIN_VEC_REVB): Likewise.
5709         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
5710         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
5711         (p9_xxbrq_v16qi): Likewise.
5712         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
5713         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
5714         (p9_xxbrh_v8hi): Likewise.
5715         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
5716         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
5717         vec_revb built-in functions.
5719 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
5721         PR rtl-optimization/78952
5722         * config/i386/i386.md (any_extract): New code iterator.
5723         (*insvqi_2): Use any_extract for source operand.
5724         (*insvqi_3): Use any_shiftrt for source operand.
5726 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
5728         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
5729         New function.
5730         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
5732 2017-01-18  Matthias Klose  <doko@ubuntu.com>
5734         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
5736 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5738         * config/rs6000/altivec.h (vec_bperm): Change #define.
5739         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
5740         (altivec_vbpermq2): New define_insn.
5741         (altivec_vbpermd): Likewise.
5742         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
5743         function interface.
5744         (VBPERMD): Likewise.
5745         (VBPERM): New polymorphic function interface.
5746         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
5747         Add entries for P9V_BUILTIN_VEC_VBPERM.
5748         * doc/extend.texi: Add interfaces for vec_bperm.
5750 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5752         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
5753         first letter of error messages.
5754         (s390_resolve_overloaded_builtin): Likewise.
5755         * config/s390/s390.c (s390_expand_builtin): Likewise.
5756         (s390_invalid_arg_for_unprototyped_fn): Likewise.
5757         (s390_valid_target_attribute_inner_p): Likewise.
5758         * config/s390/s390.md ("tabort"): Likewise.
5760 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
5762         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
5763         (ISA_AVOID_DIV_HILO): New macro.
5764         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
5765         (ISA_HAS_DDIV): Likewise.
5767 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5769         * doc/invoke.texi (fabi-version): Correct number of occurrences.
5771 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5773         * doc/invoke.texi (fabi-version): Spelling fix.
5775 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5777         PR c++/70182
5778         * doc/invoke.texi (fabi-version): Mention mangling fix for
5779         operator names.
5781 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
5783         PR c++/77489
5784         * doc/invoke.texi (fabi-version): Document discriminator mangling.
5786 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
5788         PR target/78875
5789         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
5790         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
5791         the new options.
5792         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
5793         flexible settings.
5794         (stack_protect_test): Ditto.
5795         * config/rs6000/rs6000.opt (mstack-protector-guard=,
5796         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
5797         options.
5798         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
5799         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
5800         -mstack-protector-guard-offset=.
5801         (RS/6000 and PowerPC Options): Ditto.
5803 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
5805         * config/i386/i386.h (MASK_CLASS_P): New define.
5806         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
5807         there are no registers from different register sets also when
5808         mask registers are used.  Update function comment.
5809         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
5810         to (*k/*r) and (*k/*km) alternatives.
5812 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
5814         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
5815         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
5816         (EH_RETURN_HANDLER_RTX): New define.
5817         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
5818         Force frame pointer in EH return functions.
5819         (aarch64_expand_epilogue): Add barrier for eh_return.
5820         (aarch64_final_eh_return_addr): Remove.
5821         (aarch64_eh_return_handler_rtx): New function.
5822         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
5823         Remove.
5824         (aarch64_eh_return_handler_rtx): New prototype.
5826 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5828         * config/rs6000/altivec.h (vec_rlmi): New #define.
5829         (vec_vrlnm): Likewise.
5830         (vec_rlnm): Likewise.
5831         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
5832         (UNSPEC_VRLNM): Likewise.
5833         (VIlong): New mode iterator.
5834         (altivec_vrl<VI_char>mi): New define_insn.
5835         (altivec_vrl<VI_char>nm): Likewise.
5836         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
5837         function entry.
5838         (VRLDNM): Likewise.
5839         (RLNM): New polymorphic function entry.
5840         (VRLWMI): New monomorphic function entry.
5841         (VRLDMI): Likewise.
5842         (RLMI): New polymorphic function entry.
5843         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
5844         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
5845         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
5846         vec_vrlnm.
5848 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
5850         PR debug/78839
5851         * dwarf2out.c (field_byte_offset): Restore the
5852         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
5853         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
5854         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
5855         of build2 + fold.
5857 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5859         PR ada/67205
5860         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
5862 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
5864         PR debug/71669
5865         * dwarf2out.c (add_data_member_location_attribute): For constant
5866         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
5867         instead of DW_AT_data_member_location, DW_AT_bit_offset and
5868         DW_AT_byte_size attributes.
5870 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
5872         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
5873         after forcing to constant memory when the code model is medium.
5875 2017-01-17  Julia Koval  <julia.koval@intel.com>
5877         PR target/76731
5878         * config/i386/avx512fintrin.h
5879         (_mm512_i32gather_ps): Change __addr type to void const*.
5880         (_mm512_mask_i32gather_ps): Ditto.
5881         (_mm512_i32gather_pd): Ditto.
5882         (_mm512_mask_i32gather_pd): Ditto.
5883         (_mm512_i64gather_ps): Ditto.
5884         (_mm512_mask_i64gather_ps): Ditto.
5885         (_mm512_i64gather_pd): Ditto.
5886         (_mm512_mask_i64gather_pd): Ditto.
5887         (_mm512_i32gather_epi32): Ditto.
5888         (_mm512_mask_i32gather_epi32): Ditto.
5889         (_mm512_i32gather_epi64): Ditto.
5890         (_mm512_mask_i32gather_epi64): Ditto.
5891         (_mm512_i64gather_epi32): Ditto.
5892         (_mm512_mask_i64gather_epi32): Ditto.
5893         (_mm512_i64gather_epi64): Ditto.
5894         (_mm512_mask_i64gather_epi64): Ditto.
5895         (_mm512_i32scatter_ps): Change __addr type to void*.
5896         (_mm512_mask_i32scatter_ps): Ditto.
5897         (_mm512_i32scatter_pd): Ditto.
5898         (_mm512_mask_i32scatter_pd): Ditto.
5899         (_mm512_i64scatter_ps): Ditto.
5900         (_mm512_mask_i64scatter_ps): Ditto.
5901         (_mm512_i64scatter_pd): Ditto.
5902         (_mm512_mask_i64scatter_pd): Ditto.
5903         (_mm512_i32scatter_epi32): Ditto.
5904         (_mm512_mask_i32scatter_epi32): Ditto.
5905         (_mm512_i32scatter_epi64): Ditto.
5906         (_mm512_mask_i32scatter_epi64): Ditto.
5907         (_mm512_i64scatter_epi32): Ditto.
5908         (_mm512_mask_i64scatter_epi32): Ditto.
5909         (_mm512_i64scatter_epi64): Ditto.
5910         (_mm512_mask_i64scatter_epi64): Ditto.
5911         * config/i386/avx512pfintrin.h
5912         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
5913         (_mm512_mask_prefetch_i32gather_ps): Ditto.
5914         (_mm512_mask_prefetch_i64gather_pd): Ditto.
5915         (_mm512_mask_prefetch_i64gather_ps): Ditto.
5916         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
5917         (_mm512_prefetch_i32scatter_ps): Ditto.
5918         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
5919         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
5920         (_mm512_prefetch_i64scatter_pd): Ditto.
5921         (_mm512_prefetch_i64scatter_ps): Ditto.
5922         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
5923         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
5924         * config/i386/avx512vlintrin.h
5925         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
5926         (_mm_mmask_i32gather_ps): Ditto.
5927         (_mm256_mmask_i32gather_pd): Ditto.
5928         (_mm_mmask_i32gather_pd): Ditto.
5929         (_mm256_mmask_i64gather_ps): Ditto.
5930         (_mm_mmask_i64gather_ps): Ditto.
5931         (_mm256_mmask_i64gather_pd): Ditto.
5932         (_mm_mmask_i64gather_pd): Ditto.
5933         (_mm256_mmask_i32gather_epi32): Ditto.
5934         (_mm_mmask_i32gather_epi32): Ditto.
5935         (_mm256_mmask_i32gather_epi64): Ditto.
5936         (_mm_mmask_i32gather_epi64): Ditto.
5937         (_mm256_mmask_i64gather_epi32): Ditto.
5938         (_mm_mmask_i64gather_epi32): Ditto.
5939         (_mm256_mmask_i64gather_epi64): Ditto.
5940         (_mm_mmask_i64gather_epi64): Ditto.
5941         (_mm256_i32scatter_ps): Change __addr type to void*.
5942         (_mm256_mask_i32scatter_ps): Ditto.
5943         (_mm_i32scatter_ps): Ditto.
5944         (_mm_mask_i32scatter_ps): Ditto.
5945         (_mm256_i32scatter_pd): Ditto.
5946         (_mm256_mask_i32scatter_pd): Ditto.
5947         (_mm_i32scatter_pd): Ditto.
5948         (_mm_mask_i32scatter_pd): Ditto.
5949         (_mm256_i64scatter_ps): Ditto.
5950         (_mm256_mask_i64scatter_ps): Ditto.
5951         (_mm_i64scatter_ps): Ditto.
5952         (_mm_mask_i64scatter_ps): Ditto.
5953         (_mm256_i64scatter_pd): Ditto.
5954         (_mm256_mask_i64scatter_pd): Ditto.
5955         (_mm_i64scatter_pd): Ditto.
5956         (_mm_mask_i64scatter_pd): Ditto.
5957         (_mm256_i32scatter_epi32): Ditto.
5958         (_mm256_mask_i32scatter_epi32): Ditto.
5959         (_mm_i32scatter_epi32): Ditto.
5960         (_mm_mask_i32scatter_epi32): Ditto.
5961         (_mm256_i32scatter_epi64): Ditto.
5962         (_mm256_mask_i32scatter_epi64): Ditto.
5963         (_mm_i32scatter_epi64): Ditto.
5964         (_mm_mask_i32scatter_epi64): Ditto.
5965         (_mm256_i64scatter_epi32): Ditto.
5966         (_mm256_mask_i64scatter_epi32): Ditto.
5967         (_mm_i64scatter_epi32): Ditto.
5968         (_mm_mask_i64scatter_epi32): Ditto.
5969         (_mm256_i64scatter_epi64): Ditto.
5970         (_mm256_mask_i64scatter_epi64): Ditto.
5971         (_mm_i64scatter_epi64): Ditto.
5972         (_mm_mask_i64scatter_epi64): Ditto.
5973         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
5974         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
5975         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
5976         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
5977         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
5978         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
5979         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
5980         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
5981         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
5982         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
5983         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
5984         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
5985         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
5986         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
5987         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
5988         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
5989         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
5990         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
5991         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
5992         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
5993         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
5994         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
5995         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
5996         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
5997         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
5998         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
5999         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
6000         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
6001         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
6002         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
6003         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
6004         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
6005         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
6006         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
6007         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
6008         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
6009         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
6010         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
6011         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
6012         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
6013         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
6014         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
6015         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
6016         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
6017         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
6018         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
6019         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
6020         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
6021         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
6022         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
6023         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
6024         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
6025         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
6026         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
6027         definitions accordingly.
6029 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
6030             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
6032         PR target/79079
6033         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
6034         gen_lowpart.
6036 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
6038         PR target/79058
6039         * ira-conflicts.c (ira_build_conflicts): Update total conflict
6040         hard regs for inner regno.
6042 2017-01-17  Martin Liska  <mliska@suse.cz>
6044         PR ipa/71207
6045         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
6046         assumption and add comment.
6048 2017-01-17  Nathan Sidwell  <nathan@acm.org>
6050         * ipa-visibility.c (localize_node): New function, broken out of ...
6051         (function_and_variable_visibility): ... here. Call it.
6053 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
6055         PR middle-end/77445
6056         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
6057         correctly set frequency of oudgoing edge.
6058         (duplicate_thread_path): Fix profile updating.
6060 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
6062         PR other/79046
6063         * configure.ac: Add GCC_BASE_VER.
6064         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
6065         version from BASE-VER file.
6066         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
6067         (gcc.o): Depend on $(BASEVER).
6068         * common.opt (dumpfullversion): New option.
6069         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
6070         * doc/invoke.texi: Document -dumpfullversion.
6071         * doc/install.texi: Document --with-gcc-major-version-only.
6072         * configure: Regenerated.
6074 2017-01-17  Richard Biener  <rguenther@suse.de>
6076         PR tree-optimization/71433
6077         * tree-vrp.c (register_new_assert_for): Merge same asserts
6078         on all incoming edges.
6079         (process_assert_insertions_for): Handle insertions at the
6080         beginning of BBs.
6082 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
6084         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
6085         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
6087 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
6089         PR target/78633
6090         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
6091         RTL sharing.
6093 2017-01-17  Alan Modra  <amodra@gmail.com>
6095         PR target/79066
6096         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
6097         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
6098         symbolic stack limit when pic.
6100 2017-01-16  Martin Sebor  <msebor@redhat.com>
6102         PR tree-optimization/78608
6103         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
6105 2017-01-16  Jeff Law  <law@redhat.com>
6107         Revert:
6108         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
6109         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
6110         for several include directories that may be relative to sysroot.
6111         * config/i386/x-mingw32 (gplus_includedir): Define.
6112         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
6113         (native_system_includedir): Likewise.
6114         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
6115         override if TARGET_SYSTEM_ROOT is defined.
6116         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
6118         PR tree-optimization/79090
6119         PR tree-optimization/33562
6120         PR tree-optimization/61912
6121         PR tree-optimization/77485
6122         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
6123         and computed trims into the dump file.
6125 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
6127         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
6129 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
6131         PR c/79089
6132         * gimplify.c (gimplify_init_constructor): If want_value and
6133         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
6134         fix.
6136         PR target/79080
6137         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
6138         sequence.  Formatting fixes.
6139         (doloop_optimize): Formatting fixes.
6141         PR driver/49726
6142         * gcc.c (debug_level_greater_than_spec_func): New function.
6143         (static_spec_functions): Add debug-level-gt spec function.
6144         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
6145         !g0.
6146         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
6147         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
6148         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
6149         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
6150         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
6151         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
6153 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
6155         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
6156         QImode fixups to general and mask registers only.
6158 2017-01-16  Carl Love  <cel@us.ibm.com>
6160         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
6161         for built-in functions
6162         vector signed char vec_nabs (vector signed char)
6163         vector signed short vec_nabs (vector signed short)
6164         vector signed int vec_nabs (vector signed int)
6165         vector signed long long vec_nabs (vector signed long long)
6166         vector float vec_nabs (vector float)
6167         vector double vec_nabs (vector double)
6168         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
6169         and NABS overload.
6170         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
6171         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
6172         * doc/extend.texi: Update the documentation file for the new built-in
6173         functions.
6175 2017-01-16  Martin Sebor  <msebor@redhat.com>
6177         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
6178         message.
6180 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6182         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
6183         UNSPEC_VSX__XXSPLTD to require special splat handling.
6185 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
6187         PR bootstrap/78616
6188         * system.h: Poison strndup.
6190 2017-01-16  Alan Modra  <amodra@gmail.com>
6192         PR target/79098
6193         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
6194         use a switch.
6196 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
6198         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
6200 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
6202         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
6203         call recog here.  Assert that INSN_CODE (insn) is non-negative.
6205 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
6207         PR target/72749
6208         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
6209         fallthrough.
6210         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
6211         in the currently scheduled RTL fragment.
6213 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
6215         PR rtl-optimization/78751
6216         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
6217         give up.
6219 2017-01-14  Jeff Law  <law@redhat.com>
6221         PR tree-optimization/79090
6222         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
6223         variable length stores.
6224         (compute_trims): Delete dead assignment to *trim_tail.
6225         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
6226         zero length.
6228 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
6230         PR rtl-optimization/78626
6231         PR rtl-optimization/78727
6232         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
6233         of a block, and split such blocks after everything else is finished.
6235 2017-01-14  Alan Modra  <amodra@gmail.com>
6237         PR target/72749
6238         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
6239         target legitimate_combined_insn.
6240         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
6241         (rs6000_legitimate_combined_insn): New function.
6242         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
6243         all uses.
6244         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
6245         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
6246         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
6248 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
6250         * doc/frontends.texi (G++ and GCC): Remove references to Java.
6252 2017-01-13  Jeff Law  <law@redhat.com>
6254         PR tree-optimization/33562
6255         PR tree-optimization/61912
6256         PR tree-optimization/77485
6257         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
6258         a statement.
6259         (delete_dead_assignment): Likewise.
6260         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
6261         statement to delete_dead_call and delete_dead_assignment.
6263 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
6265         PR c/78304
6266         * substring-locations.c (format_warning_va): Strengthen case 1 so
6267         that both endpoints of the substring must be within the format
6268         range for just the substring to be printed.
6270 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
6272         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
6273         * config/i386/i386.c (ix86_target_string): Add missing options
6274         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
6275         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
6276         flags_other and ix86_target_other to flags2_other.  Display unknown
6277         isa2 options.
6278         (ix86_valid_target_attribute_inner_p): Add missing options and
6279         reorder options by implied ISAs, as in ix86_target_string.
6281 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
6283         * hash-table.h (hash_table::too_empty_p): New function.
6284         (hash_table::expand): Use it.
6285         (hash_table::traverse): Likewise.
6286         (hash_table::empty_slot): Use sizeof (value_type) instead of
6287         sizeof (PTR) to convert bytes to elements.  Shrink the table
6288         if the current size is excessive for the current number of
6289         elements.
6291 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
6293         * ira-costs.c (record_reg_classes): Break from the inner loop
6294         early once alt_fail is known to be true.  Update outer loop
6295         handling accordingly.
6297 2017-01-13  Jeff Law  <law@redhat.com>
6299         * tree-ssa-dse.c (decrement_count): New function.
6300         (increment_start_addr, maybe_trim_memstar_call): Likewise.
6301         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
6302         when we know the partially dead statement is a mem* function.
6304         PR tree-optimization/61912
6305         PR tree-optimization/77485
6306         * tree-ssa-dse.c: Include expr.h.
6307         (maybe_trim_constructor_store): New function.
6308         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
6310         PR tree-optimization/33562
6311         PR tree-optimization/61912
6312         PR tree-optimization/77485
6313         * doc/invoke.texi: Document new dse-max-object-size param.
6314         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
6315         * tree-ssa-dse.c: Include params.h.
6316         (dse_store_status): New enum.
6317         (initialize_ao_ref_for_dse): New, partially extracted from
6318         dse_optimize_stmt.
6319         (valid_ao_ref_for_dse, normalize_ref): New.
6320         (setup_live_bytes_from_ref, compute_trims): Likewise.
6321         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
6322         (maybe_trim_partially_dead_store): Likewise.
6323         (maybe_trim_complex_store): Likewise.
6324         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
6325         Track what bytes live from the original store.  Return tri-state
6326         for dead, partially dead or live.
6327         (dse_dom_walker): Add constructor, destructor and new private members.
6328         (delete_dead_call, delete_dead_assignment): New extracted from
6329         dse_optimize_stmt.
6330         (dse_optimize_stmt): Make a member of dse_dom_walker.
6331         Use initialize_ao_ref_for_dse.
6333         PR tree-optimization/33562
6334         PR tree-optimization/61912
6335         PR tree-optimization/77485
6336         * sbitmap.h (bitmap_count_bits): Prototype.
6337         (bitmap_clear_range, bitmap_set_range): Likewise.
6338         * sbitmap.c (bitmap_clear_range): New function.
6339         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
6341 2017-01-13  Martin Liska  <mliska@suse.cz>
6343         PR ipa/79043
6344         * function.c (set_cfun): Add new argument force.
6345         * function.h (set_cfun): Likewise.
6346         * ipa-inline-transform.c (inline_call): Use the function when
6347         strict alising from is dropped for function we inline to.
6349 2017-01-13  Richard Biener  <rguenther@suse.de>
6351         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
6352         for dumping GIMPLE INTEGER_CSTs.
6354 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6356         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
6357         to 201112L since C++17.
6359 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
6361         PR sanitizer/78887
6362         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
6363         if -fsanitize=kernel-address is present.
6365 2017-01-13  Richard Biener  <rguenther@suse.de>
6367         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
6368         as _Literal ( type ) number in case usual suffixes do not
6369         preserve all information.
6371 2017-01-13  Richard Biener  <rguenther@suse.de>
6373         PR tree-optimization/77283
6374         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
6375         and ssa-iterators.h.
6376         (is_feasible_trace): Implement a cost model based on joiner
6377         PHI node uses.
6379 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
6381         PR target/79004
6382         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
6383         char or short to __float128/_Float128 directly.
6385 2017-01-12  Martin Sebor  <msebor@redhat.com>
6387         to -Wformat-overflow.
6388         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
6389         (min_bytes_remaining): Same.
6390         (get_string_length): Same.
6391         (format_string): Same.
6392         (format_directive): Same.
6393         (add_bytes): Same.
6394         (pass_sprintf_length::handle_gimple_call): Same.
6396 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
6398         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
6399         info.nowrite calls with no lhs that can't throw.  Return bool
6400         whether gsi_remove has been called or not.
6401         (pass_sprintf_length::handle_gimple_call): Return bool whether
6402         try_substitute_return_value called gsi_remove.  Formatting fix.
6403         (pass_sprintf_length::execute): Don't use gsi_remove if
6404         handle_gimple_call returned true.
6406         PR bootstrap/79069
6407         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
6408         be removed due to side-effects, don't remove following barrier nor
6409         turn the successor edge into fallthru edge.
6411 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6413         PR target/79044
6414         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
6415         element-reversing loads and stores as not swappable.
6417 2017-01-12  Nathan Sidwell  <nathan@acm.org>
6418             Nicolai Stange  <nicstange@gmail.com>
6420         * combine.c (try_combine): Don't ignore result of overlap checking
6421         loop.  Combine overlap & asm check into single loop.
6423 2017-01-12  Richard Biener  <rguenther@suse.de>
6425         * tree-pretty-print.c (dump_generic_node): Provide -gimple
6426         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
6428 2017-01-12  Richard Biener  <rguenther@suse.de>
6430         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
6431         and TS_TARGET_OPTION directly derive from TS_BASE.
6432         * tree-core.h (tree_optimization_option): Derive from tree_base.
6433         (tree_target_option): Likewise.
6435 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
6437         * config/i386/i386.c (memory_address_length): Increase len
6438         only when rip_relative_addr_p returns false.
6440 2017-01-11  Julia Koval  <julia.koval@intel.com>
6442         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
6443         (OPTION_MASK_ISA_SGX_SET): New.
6444         (ix86_handle_option): Handle OPT_msgx.
6445         * config.gcc: Added sgxintrin.h.
6446         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
6447         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
6448         * config/i386/i386.c (ix86_target_string): Add -msgx.
6449         (PTA_SGX): New.
6450         (ix86_option_override_internal): Handle new options.
6451         (ix86_valid_target_attribute_inner_p): Add sgx.
6452         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
6453         * config/i386/i386.opt: Add msgx.
6454         * config/i386/sgxintrin.h: New file.
6455         * config/i386/x86intrin.h: Add sgxintrin.h.
6457 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
6459         PR c++/71537
6460         * fold-const.c (maybe_nonzero_address): Return 1 for function
6461         local objects.
6462         (tree_single_nonzero_warnv_p): Don't handle function local objects
6463         here.
6465         PR c++/72813
6466         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
6467         of c-header.
6469 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
6471         PR driver/78877
6472         * opts.c: Include "spellcheck.h"
6473         (struct string_fragment): New struct.
6474         (struct edit_distance_traits<const string_fragment &>): New
6475         struct.
6476         (get_closest_sanitizer_option): New function.
6477         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
6479 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
6481         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
6482         by 12.
6483         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
6484         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
6485         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
6486         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
6487         for initial die_offset if dwarf_split_debug_info.
6488         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
6489         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
6490         fields.
6491         (output_skeleton_debug_sections): Formatting fix.  Use
6492         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
6493         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
6495 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
6497         * config/arm/cortex-a53.md: Add bypasses for
6498         cortex_a53_r2f_cvt.
6499         (cortex_a53_r2f): Only use for transfers.
6500         (cortex_a53_f2r): Likewise.
6501         (cortex_a53_r2f_cvt): Add reservation for conversions.
6502         (cortex_a53_f2r_cvt): Likewise.
6504 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
6506         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
6507         to all inlined functions, change static to extern.
6509 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
6511         PR target/78253
6512         * config/arm/arm.c (legitimize_pic_address): Handle reference to
6513         weak symbol.
6514         (arm_assemble_integer): Likewise.
6516 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
6518         * config.gcc: Use new awk script to check CPU, FPU and architecture
6519         parameters for --with-... options.
6520         * config/arm/parsecpu.awk: New file
6521         * config/arm/arm-cpus.in: New file.
6522         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
6523         files.
6524         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
6525         files.
6526         * config/arm/t-arm: Update dependency rules.
6527         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
6528         of processing .def files.
6529         * config/arm/genopt.sh: Deleted.
6530         * config/arm/gentune.sh: Deleted.
6531         * config/arm/arm-cores.def: Deleted.
6532         * config/arm/arm-arches.def: Deleted.
6533         * config/arm/arm-fpus.def: Deleted.
6534         * config/arm/arm-tune.md: Regenerated.
6535         * config/arm/arm-tables.opt: Regenerated.
6536         * config/arm/arm-cpu.h: New generated file.
6537         * config/arm/arm-cpu-data.h: New generated file.
6538         * config/arm/arm-cpu-cdata.h: New generated file.
6540 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
6542         PR lto/79042
6543         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
6544         bit.
6545         (input_varpool_node): Unpack dynamically_initialized bit.
6547 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
6549         PR rtl-optimization/79032
6550         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
6551         the alignment of the adjusted memory reference against that of MODE,
6552         instead of the alignment of the original memory reference.
6554 2017-01-11  Martin Jambor  <mjambor@suse.cz>
6556         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
6557         test.
6558         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
6559         decorated functions.
6561 2017-01-11  Richard Biener  <rguenther@suse.de>
6563         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
6564         set range/nonnull info for PHI results.  Do not set it on
6565         stmts marked for removal.
6567 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
6569         * expr.c (store_field): In the bitfield case, fetch the return value
6570         from the registers before applying a single big-endian adjustment.
6571         Always do a final load for a BLKmode value not larger than a word.
6573 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
6575         PR c++/77949
6576         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
6577         that we correctly handle column numbers greater than
6578         LINE_MAP_MAX_COLUMN_NUMBER.
6580 2017-01-10  Martin Sebor  <msebor@redhat.com>
6582         PR middle-end/78245
6583         * gimple-ssa-sprintf.c (get_destination_size): Call
6584         {init,fini}object_sizes.
6585         * tree-object-size.c (addr_object_size): Adjust.
6586         (pass_through_call): Adjust.
6587         (pass_object_sizes::execute): Adjust.
6588         * tree-object-size.h (fini_object_sizes): Declare.
6590 2017-01-10  Martin Sebor  <msebor@redhat.com>
6592         PR tree-optimization/78775
6593         * builtins.c (get_size_range): Move...
6594         * calls.c: ...to here.
6595         (alloc_max_size): Accept zero argument.
6596         (operand_signed_p): Remove.
6597         (maybe_warn_alloc_args_overflow): Call get_size_range.
6598         * calls.h (get_size_range): Declare.
6600 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
6602         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
6603         from TI's devices.csv file as of September 2016.
6604         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
6606 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
6608         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
6609         * doc/invoke.texi: Likewise.
6610         * doc/md.texi: Likewise.
6611         * doc/objc.texi: Likewise.
6613 2017-01-10  Joshua Conner  <joshconner@google.com>
6615         * config/arm/fuchsia-elf.h: New file.
6616         * config/fuchsia.h: New file.
6617         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
6618         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
6619         targets.
6620         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
6622 2016-01-10  Richard Biener  <rguenther@suse.de>
6624         PR tree-optimization/79034
6625         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
6626         Propagate out degenerate PHIs in the joiner.
6628 2017-01-10  Martin Liska  <mliska@suse.cz>
6630         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
6631         (sort_congruence_classes_by_decl_uid): Likewise.
6632         (sort_congruence_class_groups_by_decl_uid): Likewise.
6633         (sem_item_optimizer::merge_classes): Sort class, groups in these
6634         classes and members in the groups by DECL_UID of declarations.
6635         This would make merge operations stable.
6637 2017-01-10  Martin Liska  <mliska@suse.cz>
6639         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
6640         usage of m_classes_vec.
6641         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
6642         (sem_item_optimizer::get_group_by_hash): Likewise.
6643         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
6644         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
6645         (sem_item_optimizer::verify_classes): Likewise.
6646         (sem_item_optimizer::process_cong_reduction): Likewise.
6647         (sem_item_optimizer::dump_cong_classes): Likewise.
6648         (sem_item_optimizer::merge_classes): Likewise.
6649         * ipa-icf.h (congruence_class_hash): Rename from
6650         congruence_class_group_hash.  Remove declaration of m_classes_vec.
6652 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
6654         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
6655         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
6656         * config.gcc: Add avx512vpopcntdqintrin.h.
6657         * config/i386/avx512vpopcntdqintrin.h: New.
6658         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
6659         * config/i386/i386-builtin-types.def: Add new types.
6660         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
6661         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
6662         __builtin_ia32_vpopcountq_v8di_mask): New.
6663         * config/i386/i386-c.c (ix86_target_macros_internal): Define
6664         __AVX512VPOPCNTDQ__.
6665         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
6666         (PTA_AVX512VPOPCNTDQ): Define.
6667         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
6668         TARGET_AVX512VPOPCNTDQ_P): Define.
6669         * config/i386/i386.opt: Add mavx512vpopcntdq.
6670         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
6671         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
6673 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6675         PR middle-end/77484
6676         * predict.def (PRED_CALL): Set to 67.
6678 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
6680         * expr.c (store_field): In the bitfield case, if the value comes from
6681         a function call and is of an aggregate type returned in registers, do
6682         not modify the field mode; extract the value in all cases if the mode
6683         is BLKmode and the size is not larger than a word.
6685 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
6687         PR target/71017
6688         * config/i386/cpuid.h: Fix undefined behavior.
6690 2017-01-04  Jeff Law  <law@redhat.com>
6692         PR tree-optimization/79007
6693         PR tree-optimization/67955
6694         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
6695         conservative for pt.null when flag_non_call_exceptions is on.
6697 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
6699         PR translation/79019
6700         PR translation/79020
6701         * params.def (PARAM_INLINE_MIN_SPEEDUP,
6702         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
6703         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
6704         in descriptions.
6705         * config/avr/avr.opt (maccumulate-args): Likewise.
6706         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
6707         * common.opt (freport-bug): Likewise.
6708         * cif-code.def (CIF_FINAL_ERROR): Likewise.
6709         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
6710         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
6711         translatable string.
6712         * config/i386/i386.c (function_value_32): Likewise.
6713         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
6714         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
6715         Likewise.
6716         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
6717         * common/config/msp430/msp430-common.c (msp430_handle_option):
6718         Likewise.
6719         * symtab.c (symtab_node::verify_base): Likewise.
6720         * opts.c (set_debug_level): Likewise.
6721         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
6722         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
6723         missing whitespace to translatable strings.
6724         * config/avr/avr.md (bswapsi2): Fix typo in comment.
6725         * config/sh/superh.h: Likewise.
6726         * config/i386/xopintrin.h: Likewise.
6727         * config/i386/znver1.md: Likewise.
6728         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
6729         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
6730         * double-int.h (struct double_int): Likewise.
6731         * double-int.c (div_and_round_double): Likewise.
6732         * wide-int.cc: Likewise.
6733         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
6734         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
6735         * cfgcleanup.c (crossjumps_occured): Renamed to ...
6736         (crossjumps_occurred): ... this.
6737         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
6738         Adjust all uses.
6740         PR tree-optimization/78899
6741         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
6742         returning bool return struct loop *, NULL for failure and the new
6743         loop on success.
6744         (versionable_outer_loop_p): Don't version outer loop if it has
6745         dont_vectorized bit set.
6746         (tree_if_conversion): When versioning outer loop, ensure
6747         tree_if_conversion is performed also on the inner loop of the
6748         non-vectorizable outer loop copy.
6749         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
6750         LOOP_VECTORIZED in inner loop of the scalar outer loop and
6751         prevent vectorization of it.
6752         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
6753         the outer loop vectorization of the non-scalar version is attempted
6754         before vectorization of the inner loop in scalar version.  If
6755         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
6756         vectorization of its inner loop.
6757         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
6758         has 2 inner loops, rename also on edges from bb whose single pred
6759         is outer_loop->header.  Fix typo in function comment.
6761 2017-01-09  Martin Sebor  <msebor@redhat.com>
6763         PR bootstrap/79033
6764         * asan.c (asan_emit_stack_protection): Increase local buffer size
6765         to avoid snprintf truncation warning.
6767 2017-01-09  Andrew Pinski  <apinski@cavium.com>
6769         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
6770         to reference thunderx2t99 for the tuning structure
6771         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
6772         Rename to ...
6773         (thunderx2t99_extra_costs): This.
6774         * config/aarch64/aarch64-tune.md: Regenerate.
6775         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
6776         (vulcan_addrcost_table): This.
6777         (vulcan_regmove_cost): Rename to ...
6778         (thunderx2t99_regmove_cost): This.
6779         (vulcan_vector_cost): Rename to ...
6780         (thunderx2t99_vector_cost): this.
6781         (vulcan_branch_cost): Rename to ...
6782         (thunderx2t99_branch_cost): This.
6783         (vulcan_tunings): Rename to ...
6784         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
6785         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
6787 2017-01-09  Martin Jambor  <mjambor@suse.cz>
6789         PR ipa/78365
6790         PR ipa/78599
6791         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
6792         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
6793         (propagate_vr_accross_jump_function): Use the above function for all
6794         value range computations for pass-through jump functions and type
6795         converasion from explicit value range values.
6796         (ipcp_propagate_stage): Do not attempt to deduce types of formal
6797         parameters from TYPE_ARG_TYPES.
6798         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
6799         (ipa_write_node_info): Stream type of the actual argument.
6800         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
6802 2017-01-09  Martin Liska  <mliska@suse.cz>
6804         PR pch/78970
6805         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
6806         (lookup_compiler): Do not show error message with have_E.
6808 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
6810         PR tree-optimization/78938
6811         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
6812         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
6813         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
6814         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
6815         fixes.
6817 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6819         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
6820         is const0_rtx.
6822 2017-01-09  Richard Biener  <rguenther@suse.de>
6824         PR tree-optimization/78997
6825         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
6826         name condition properly.
6828 2017-01-09  Richard Biener  <rguenther@suse.de>
6830         PR debug/79000
6831         * dwarf2out.c (is_cxx): New overload with context.
6832         (is_naming_typedef_decl): Use it.
6834 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6836         * invoke.texi (Option Summary): Correct spacing in option lists
6837         and add line breaks to fix over-long lines.
6839 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6841         PR middle-end/17660
6843         * extend.texi (Common Variable Attributes): Add xref to GCC
6844         Internals manual to explain mode attribute keywords.
6846 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
6848         PR other/16519
6849         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
6850         and Preprocessor Options.
6851         (Options for Linking): Document -pthread here....
6852         (RS/6000 and PowerPC Options): ...not here.
6853         (Solaris 2 Options): ...or here.
6854         * doc/cppopts.texi: Document -pthread.
6856 2017-01-08  Martin Sebor  <msebor@redhat.com>
6858         PR middle-end/77708
6859         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
6860         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
6861         New member functions.
6862         (format_directive): Used them.
6863         (add_bytes): Same.
6864         (pass_sprintf_length::handle_gimple_call): Same.
6865         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
6866         to avoid truncation for any argument.
6867         (extract_affine_mul): Same.
6868         * tree.c (get_file_function_name): Same.
6870 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
6872         PR middle-end/77484
6873         * predict.def (PRED_INDIR_CALL): Set to 86.
6875 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6877         PR preprocessor/54124
6878         * doc/cppopts.texi: Reformat -d subtable to list the full name
6879         of the options.  Add cross-reference to the docs for the general
6880         compiler -d options.
6881         * doc/invoke.texi (Developer Options): Add cross-reference to the
6882         preprocessor-specific -d option documentation.
6884 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6886         PR preprocessor/13498
6887         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
6888         redudant material, and reflect new command-line options.
6889         (System Headers): Likewise.
6891 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
6893         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
6894         -isystem, and -idirafter.  Copy-edit.
6895         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
6896         default for -ftrack-macro-expansion.  Delete obsolete and
6897         badly-formatted implementation details about -fdebug-cpp output.
6898         * doc/cppwarnopts.texi: Copy-edit.
6900 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
6902         PR c++/72803
6903         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
6904         that the transition from a max line width >= 1<<10 to narrower
6905         lines works correctly.
6907 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
6909         * doc/options.texi (PerFunction): New.
6910         * opt-functions.awk (switch_flags): Map both Optimization and
6911         PerFunction to CL_OPTIMIZATION.
6912         * opth-gen.awk: Test for PerFunction flag along with
6913         Optimization.
6914         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
6915         it only when the latter is present.  Skip those that don't in
6916         the hash function generator.
6917         * common.opt (fvar-tracking): Mark as PerFunction instead of
6918         Optimization.
6919         (fvar-tracking-assignments): Likewise.
6920         (fvar-tracking-assignments-toggle): Likewise.
6921         (fvar-tracking-uninit): Likewise.
6923 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
6925         PR translation/79018
6926         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
6927         the and store.
6929 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
6931         PR target/57583
6932         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
6933         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
6934         TARGET_LONG_JUMP_TABLE_OFFSETS.
6935         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
6936         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
6937         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
6938         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
6939         * config/m68k/m68k.md (tablejump expander): Likewise.
6940         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
6941         TARGET_LONG_JUMP_TABLE_OFFSETS.
6942         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
6943         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
6945 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
6946             David Holsgrove <david.holsgrove@xilinx.com>
6948         * common/config/microblaze/microblaze-common.c
6949         (TARGET_EXCEPT_UNWIND_INFO): Remove.
6950         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
6951         New prototype.
6952         * config/microblaze/microblaze.c (microblaze_must_save_register)
6953         (microblaze_expand_epilogue, microblaze_return_addr): Handle
6954         calls_eh_return.
6955         (microblaze_eh_return): New function.
6956         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
6957         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
6958         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
6959         * config/microblaze/microblaze.md (eh_return): New pattern.
6961 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
6963         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
6964         GCC_DIAGNOSTIC_STRINGIFY): Define.
6966         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
6968 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6970         * config/arm/arm.md (<mcrr>): New.
6971         (<mrrc>): New.
6972         * config/arm/arm.c (arm_arch5te): New.
6973         (arm_option_override): Set arm_arch5te.
6974         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
6975         and mrrc2.
6976         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
6977         (arm_mcrr_qualifiers): ... this. New.
6978         (MRRC_QUALIFIERS): Define to...
6979         (arm_mrrc_qualifiers): ... this. New.
6980         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
6981         __arm_mrrc2): New.
6982         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
6983         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
6984         (MRRCI, mrrc, MRRC): New.
6985         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
6986         VUNSPEC_MRRC2): New.
6988 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6990         * config/arm/arm.md (<mcr>): New.
6991         (<mrc>): New.
6992         * config/arm/arm.c (arm_coproc_builtin_available): Add
6993         support for mcr, mrc, mcr2 and mrc2.
6994         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
6995         (arm_mcr_qualifiers): ... this. New.
6996         (MRC_QUALIFIERS): Define to ...
6997         (arm_mrc_qualifiers): ... this. New.
6998         (MCR_QUALIFIERS): Define to ...
6999         (arm_mcr_qualifiers): ... this. New.
7000         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
7001         __arm_mrc2): New.
7002         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
7003         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
7004         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
7005         VUNSPEC_MRC2): New.
7007 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7009         * config/arm/arm.md (*ldc): New.
7010         (*stc): New.
7011         (<ldc>): New.
7012         (<stc>): New.
7013         * config/arm/arm.c (arm_coproc_builtin_available): Add
7014         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
7015         (arm_coproc_ldc_stc_legitimate_address): New.
7016         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
7017         'qualifier_const_pointer'.
7018         (LDC_QUALIFIERS): Define to...
7019         (arm_ldc_qualifiers): ... this. New.
7020         (STC_QUALIFIERS): Define to...
7021         (arm_stc_qualifiers): ... this. New.
7022         * config/arm/arm-protos.h
7023         (arm_coproc_ldc_stc_legitimate_address): New.
7024         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
7025         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
7026         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
7027         stc2, stcl, stc2l): New.
7028         * config/arm/constraints.md (Uz): New.
7029         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
7030         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
7031         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
7032         VUNSPEC_STC2L): New.
7034 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7036         * config/arm/arm.md (<cdp>): New.
7037         * config/arm/arm.c (neon_const_bounds): Rename this ...
7038         (arm_const_bounds): ... this.
7039         (arm_coproc_builtin_available): New.
7040         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
7041         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
7042         (CDP_QUALIFIERS): Define to...
7043         (arm_cdp_qualifiers): ... this. New.
7044         (void_UP): Define.
7045         (arm_expand_builtin_args): Add case for 6 arguments.
7046         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
7047         (arm_const_bounds): ... this.
7048         (arm_coproc_builtin_available): New.
7049         * config/arm/arm_acle.h (__arm_cdp): New.
7050         (__arm_cdp2): New.
7051         * config/arm/arm_acle_builtins.def (cdp): New.
7052         (cdp2): New.
7053         * config/arm/iterators.md (CDPI,CDP,cdp): New.
7054         * config/arm/neon.md: Rename all 'neon_const_bounds' to
7055         'arm_const_bounds'.
7056         * config/arm/types.md (coproc): New.
7057         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
7058         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
7059         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
7060         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
7062 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7064         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
7065         (UBINOP_QUALIFIERS): New.
7066         (si_UP): Define.
7067         (acle_builtin_data): New. Change comment.
7068         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
7069         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
7070         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
7071         arm_acle_builtins.def.
7072         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
7073         (arm_init_acle_builtins): New.
7074         (CRC32_BUILTIN): Remove.
7075         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
7076         crc32cb, crc32ch and crc32cw.
7077         (arm_init_crc32_builtins): Remove.
7078         (arm_init_builtins): Use arm_init_acle_builtins rather
7079         than arm_init_crc32_builtins.
7080         (arm_expand_acle_builtin): New.
7081         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
7082         * config/arm/arm_acle_builtins.def: New.
7084 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
7086         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
7087         (arm_builtin_datum): ... this.
7088         (arm_init_neon_builtin): Rename to ...
7089         (arm_init_builtin): ... this. Add a new parameters PREFIX
7090         and USE_SIG_IN_NAME.
7091         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
7092         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
7093         'arm_builtin_datum'.
7094         (arm_init_vfp_builtins): Likewise.
7095         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
7096         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
7097         (arm_expand_neon_args): Rename to ...
7098         (arm_expand_builtin_args): ... this. Rename builtin_arg
7099         enum values and differentiate between ARG_BUILTIN_MEMORY
7100         and ARG_BUILTIN_NEON_MEMORY.
7101         (arm_expand_neon_builtin_1): Rename to ...
7102         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
7103         values, arm_expand_builtin_args and add bool parameter NEON.
7104         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
7105         (arm_expand_vfp_builtin): Likewise.
7106         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
7108 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
7110         PR middle-end/77484
7111         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
7112         * predict.c (tree_estimate_probability_bb): Reverse direction of
7113         polymorphic call predictor.
7115 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
7117         * passes.c (execute_one_pass): Split out pass-skipping logic into...
7118         (determine_pass_name_match): ...this new function and...
7119         (should_skip_pass_p): ...this new function.
7121 2017-01-06  Nathan Sidwell  <nathan@acm.org>
7123         * ipa-visibility.c (function_and_variable_visibility): Reformat
7124         comments and long lines.  Remove extrneous if.
7125         * symtab.c (symtab_node::make_decl_local): Fix code format.
7126         (symtab_node::set_section_for_node): Fix comment typo.
7128 2017-01-06  Martin Liska  <mliska@suse.cz>
7130         PR bootstrap/79003
7131         * lra-constraints.c: Rename invariant to lra_invariant.
7132         * predict.c (set_even_probabilities): Initialize e to NULL.
7134 2017-01-05  Martin Sebor  <msebor@redhat.com>
7136         PR tree-optimization/78910
7137         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
7138         (format_integer): Correct off-by-one error in the handling
7139         of precision with negative numbers in signed conversions..
7141 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
7143         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
7145 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
7147         PR tree-optimization/71016
7148         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
7149         factor_out_conditional_conversion.  Formatting fix.
7150         (factor_out_conditional_conversion): Add cond_stmt argument.
7151         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
7152         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
7153         Formatting fix.
7155 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
7157         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
7158         read-rtl-function.o, and selftest-rtl.o.
7159         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
7160         (selftest::aarch64_test_loading_full_dump): New function.
7161         (selftest::aarch64_run_selftests): New function.
7162         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
7163         selftest::aarch64_run_selftests.
7164         * config/i386/i386.c
7165         (selftest::ix86_test_loading_dump_fragment_1): New function.
7166         (selftest::ix86_test_loading_call_insn): New function.
7167         (selftest::ix86_test_loading_full_dump): New function.
7168         (selftest::ix86_test_loading_unspec): New function.
7169         (selftest::ix86_run_selftests): Call the new functions.
7170         * emit-rtl.c (maybe_set_max_label_num): New function.
7171         * emit-rtl.h (maybe_set_max_label_num): New decl.
7172         * function.c (instantiate_decls): Guard call to
7173         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
7174         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
7175         "static".
7176         * gensupport.c (gen_reader::gen_reader): Pass "false"
7177         for new "compact" param of rtx_reader.
7178         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
7179         rather than an empty string for NULL strings.
7180         * read-md.c: Potentially include config.h rather than bconfig.h.
7181         Wrap include of errors.h with #ifdef GENERATOR_FILE.
7182         (have_error): New global, copied from errors.c.
7183         (md_reader::read_name): Rename to...
7184         (md_reader::read_name_1): ...this, adding "out_loc" param,
7185         and converting "missing name or number" to returning false, rather
7186         than failing.
7187         (md_reader::read_name): Reimplement in terms of read_name_1.
7188         (md_reader::read_name_or_nil): New function.
7189         (md_reader::read_string): Handle "(nil)" by returning NULL.
7190         (md_reader::md_reader): Add new param "compact".
7191         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
7192         (md_reader::read_file): New method.
7193         * read-md.h (md_reader::md_reader): Add new param "compact".
7194         (md_reader::read_file): New method.
7195         (md_reader::is_compact): New accessor.
7196         (md_reader::read_name): Convert return type from void to file_location.
7197         (md_reader::read_name_or_nil): New decl.
7198         (md_reader::read_name_1): New decl.
7199         (md_reader::m_compact): New field.
7200         (noop_reader::noop_reader): Pass "false" for new "compact" param
7201         of rtx_reader.
7202         (rtx_reader::rtx_reader): Add new "compact" param.
7203         (rtx_reader::read_rtx_operand): Make virtual and convert return
7204         type from void to rtx.
7205         (rtx_reader::read_until): New decl.
7206         (rtx_reader::handle_any_trailing_information): New virtual function.
7207         (rtx_reader::postprocess): New virtual function.
7208         (rtx_reader::finalize_string): New virtual function.
7209         (rtx_reader::m_in_call_function_usage): New field.
7210         (rtx_reader::m_reuse_rtx_by_id): New field.
7211         * read-rtl-function.c: New file.
7212         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
7213         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
7214         (selftest::verify_three_block_rtl_cfg): New decl.
7215         * read-rtl-function.h: New file.
7216         * read-rtl.c: Potentially include config.h rather than bconfig.h.
7217         For host, include function.h, memmodel.h, and emit-rtl.h.
7218         (one_time_initialization): New function.
7219         (struct compact_insn_name): New struct.
7220         (compact_insn_names): New array.
7221         (find_code): Handle insn codes in compact dumps.
7222         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
7223         (bind_subst_iter_and_attr): Likewise.
7224         (add_condition_to_string): Likewise.
7225         (add_condition_to_rtx): Likewise.
7226         (apply_attribute_uses): Likewise.
7227         (add_current_iterators): Likewise.
7228         (apply_iterators): Likewise.
7229         (initialize_iterators): Guard usage of apply_subst_iterator with
7230         #ifdef GENERATOR_FILE.
7231         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
7232         (md_reader::read_mapping): Likewise.
7233         (add_define_attr_for_define_subst): Likewise.
7234         (add_define_subst_attr): Likewise.
7235         (read_subst_mapping): Likewise.
7236         (check_code_iterator): Likewise.
7237         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
7238         logic to...
7239         (one_time_initialization): New function.
7240         (rtx_reader::read_until): New method.
7241         (read_flags): New function.
7242         (parse_reg_note_name): New function.
7243         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
7244         Handle reuse_rtx ids.
7245         Wrap iterator lookup within #ifdef GENERATOR_FILE.
7246         Add parsing support for RTL dumps, mirroring the special-cases in
7247         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
7248         values, and calling handle_any_trailing_information.
7249         (rtx_reader::read_rtx_operand): Convert return type from void
7250         to rtx, returning return_rtx.  Handle case 'e'.  Call
7251         finalize_string on XSTR and XTMPL fields.
7252         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
7253          "(nil)" values were omitted.  Call the postprocess vfunc on the
7254         return_rtx.
7255         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
7256         class ctor.  Initialize m_in_call_function_usage.  Call
7257         one_time_initialization.
7258         * rtl-tests.c (selftest::test_uncond_jump): Call
7259         set_new_first_and_last_insn.
7260         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
7261         * selftest-rtl.c: New file.
7262         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
7263         (selftest::get_insn_by_uid): New decl.
7264         * selftest-run-tests.c (selftest::run_tests): Call
7265         read_rtl_function_c_tests.
7266         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
7267         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
7268         dumps.
7270 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
7272         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
7273         operands in a special way.  Assert that pos+len <= mode precision.
7275 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
7277         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
7278         3 argument Alias with unlimited for the negative form.
7279         (fno-vect-cost-model): Removed.
7281 2017-01-05  Martin Liska  <mliska@suse.cz>
7283         * hsa-gen.c (gen_hsa_divmod): New function.
7284         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
7286 2017-01-05  Martin Liska  <mliska@suse.cz>
7288         PR pch/78970
7289         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
7290         header.
7292 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7294         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
7295         small constant length operands.
7297 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7299         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
7300         between loop iterations.
7302 2017-01-05  Martin Liska  <mliska@suse.cz>
7304         PR sanitizer/78815
7305         * gimplify.c (gimplify_decl_expr): Compare to
7306         asan_poisoned_variables instread of checking flags.
7307         (gimplify_target_expr): Likewise.
7308         (gimplify_expr): Likewise.
7309         (gimplify_function_tree): Conditionally initialize
7310         asan_poisoned_variables.
7312 2017-01-04  Jeff Law  <law@redhat.com>
7314         PR tree-optimizatin/78812
7315         * rtl.h (contains_mem_rtx_p): Prototype.
7316         * ifcvt.c (containts_mem_rtx_p): Move from here to...
7317         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
7318         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
7319         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
7320         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
7322 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7324         * input.c (assert_char_at_range): Default-initialize actual_range.
7326 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7328         * df-scan.c (df_ref_create_structure): Make regno unsigned,
7329         to match the caller.
7331 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7333         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
7334         insns after final jump in test to emit dummy move.
7336 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7338         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
7339         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
7341 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
7343         * multiple_target.c (create_dispatcher_calls): Init e_next.
7344         * tree-ssa-loop-split.c (split_loop): Init border.
7345         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
7346         scalar_type.
7348 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
7350         PR target/71977
7351         PR target/70568
7352         PR target/78823
7353         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
7354         (altivec_register_operand): Do not return true if the operand
7355         contains a SUBREG mixing SImode and SFmode.
7356         (vsx_register_operand): Likewise.
7357         (vsx_reg_sfsubreg_ok): New predicate.
7358         (vfloat_operand): Do not return true if the operand contains a
7359         SUBREG mixing SImode and SFmode.
7360         (vint_operand): Likewise.
7361         (vlogical_operand): Likewise.
7362         (gpc_reg_operand): Likewise.
7363         (int_reg_operand): Likewise.
7364         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
7365         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
7366         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
7367         SImode and SFmode.
7368         (rs6000_emit_move_si_sf_subreg): New helper function.
7369         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
7370         fixup SUBREGs involving SImode and SFmode.
7371         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
7372         numbers for the new peephole2 optimization.
7373         (peephole2 for SFmode unions): New peephole2 to optimize cases in
7374         the GLIBC math library that do AND/IOR/XOR operations on single
7375         precision floating point.
7376         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
7377         target macros to say whether we need to avoid SUBREGs mixing
7378         SImode and SFmode.
7379         (TARGET_ALLOW_SF_SUBREG): Likewise.
7380         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
7381         (UNSPEC_SI_FROM_SF): Likewise.
7382         (iorxor): Change spacing.
7383         (and_ior_xor): New iterator for AND, IOR, and XOR.
7384         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
7385         (movdi_from_sf_zero_ext): Likewise.
7386         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
7387         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
7388         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
7389         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
7390         (fms<mode>4): Likewise.
7391         (fnma<mode>4): Likewise.
7392         (fnms<mode>4): Likewise.
7393         (nfma<mode>4): Likewise.
7394         (nfms<mode>4): Likewise.
7396 2017-01-04  Marek Polacek  <polacek@redhat.com>
7398         PR c++/64767
7399         * doc/invoke.texi: Document -Wpointer-compare.
7401 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7403         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
7404         RejectNegative.
7406         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
7407         descriptions for -gdwarf-5 and emit them as uleb128 instead of
7408         2-byte data.
7410 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7412         PR target/78056
7413         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
7414         documentation of the powerpc_popcntb_ok attribute.
7415         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
7416         code to issue warning messages if a requested CPU configuration is
7417         not supported by the binary (assembler and loader) toolchain.
7418         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
7419         made to define a built-in function that has been disabled.
7420         (paired_init_builtins): Add assertion to prevent ICE if attempt is
7421         made to define a built-in function that has been disabled.
7422         (altivec_init_builtins): Add comment explaining why definition
7423         of the DST built-in functions is not preceded by an assertion
7424         check.  Add assertions to prevent ICE if attempts are made to
7425         define an altivec predicate or an abs* built-in function that has
7426         been disabled.
7427         (htm_init_builtins): Add comment explaining why definition of the
7428         htm built-in functions is not preceded by an assertion check.
7430 2017-01-04  Jeff Law  <law@redhat.com>
7432         PR tree-optimizatin/67955
7433         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
7434         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
7435         the points-to solution does not include pt_null.  Use DECL_PT_UID
7436         unconditionally.
7438 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
7440         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
7441         Use gen_int_mode instead of gen_lopwart for const_int operands.
7443 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7445         PR tree-optimization/71563
7446         * match.pd: Simplify X << Y into X if Y is known to be 0 or
7447         out of range value - has low bits known to be zero.
7449 2017-01-04  Alan Modra  <amodra@gmail.com>
7451         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
7452         * configure: Regenerate.
7453         * config.in: Regenerate.
7455 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
7457         PR bootstrap/77569
7458         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
7459         a substring of the message, but strcmp with the whole message.  Ifdef
7460         ENABLE_NLS, translate the message first using dgettext.
7462 2017-01-03  Jeff Law  <law@redhat.com>
7464         PR tree-optimizatin/78856
7465         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
7466         (mark_threaded_blocks): Remove code to truncate thread paths that
7467         cross multiple loop headers.  Instead invalidate the cached loop
7468         iteration information and handle case of a thread path walking
7469         into an irreducible region.
7471 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
7473         PR target/78900
7474         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
7475         assertions.  Add support for doing the signbit if the IEEE 128-bit
7476         floating point value is in a GPR.
7477         * config/rs6000/rs6000.md (Fsignbit): Delete.
7478         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
7479         Update the length attribute if the value is in a GPR.
7480         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
7481         the sign or zero extension instruction, since the value is always 0/1.
7482         (signbit<mode>2_dm2): Delete using <Fsignbit>.
7484         PR target/78953
7485         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
7486         extracting SImode to a GPR register so that we can generate a
7487         store, limit the vector to be in a traditional Altivec register
7488         for the vextuwrx instruction.
7490 2017-01-03  Ian Lance Taylor  <iant@google.com>
7492         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
7494 2017-01-03  Martin Sebor  <msebor@redhat.com>
7496         PR tree-optimization/78696
7497         * gimple-ssa-sprintf.c (format_floating): Correct handling of
7498         precision.  Use MPFR for %f for greater fidelity.  Correct handling
7499         of %g.
7500         (pass_sprintf_length::compute_format_length): Set width and precision
7501         specified by asrerisk to void_node for vararg functions.
7502         (try_substitute_return_value): Adjust dump output.
7504 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
7506         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
7508 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
7510         * doc/invoke.texi (SPARC options): Document -mlra as the default.
7511         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
7512         -mlra/-mno-lra was passed to the compiler.
7514 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
7516         PR rtl-optimization/65618
7517         * emit-rtl.c (try_split): Move initialization of "before" and
7518         "after" to just before the call to emit_insn_after_setloc.
7520 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
7522         * doc/md.texi (Standard Names): Remove reference to Java frontend.
7524 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
7526         * dwarf2out.c (gen_enumeration_type_die): When
7527         -gno-strict-dwarf, add a DW_AT_encoding attribute.
7529 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
7531         PR tree-optimization/78965
7532         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
7533         Change first argument from const call_info & to call_info &.  For %n
7534         set info.nowrite to false.
7536         PR middle-end/78901
7537         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
7538         possibly throwing calls.
7540         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
7541         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
7542         and fns handling, rather than in a separate case SSA_NAME.
7544 2017-01-02  Jeff Law  <law@redhat.com>
7546         * config/darwin-driver.c (darwin_driver_init): Const-correctness
7547         fixes for first_period and second_period variables.
7549 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
7551         PR target/78967
7552         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
7553         (*insvqi_1): New insn pattern.
7554         (*insvqi_1_mem_rex64): Ditto.
7555         (*insvqi_2): Ditto.
7556         (*insvqi_3): Rename from *insvqi.
7558         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
7560 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
7562         * doc/cfg.texi (Edges): Remove reference to Java.
7563         (Maintaining the CFG): Ditto.
7565 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
7567         PR middle-end/77674
7568         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
7569         transparent aliases.
7571 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
7573         PR middle-end/77484
7574         * predict.def (PRED_CALL): Update hitrate.
7575         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
7576         * predict.c (tree_estimate_probability_bb): Split CALL predictor
7577         into direct/indirect/polymorphic variants.
7579 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
7581         Update copyright years.
7583         * gcc.c (process_command): Update copyright notice dates.
7584         * gcov-dump.c (print_version): Ditto.
7585         * gcov.c (print_version): Ditto.
7586         * gcov-tool.c (print_version): Ditto.
7587         * gengtype.c (create_file): Ditto.
7588         * doc/cpp.texi: Bump @copying's copyright year.
7589         * doc/cppinternals.texi: Ditto.
7590         * doc/gcc.texi: Ditto.
7591         * doc/gccint.texi: Ditto.
7592         * doc/gcov.texi: Ditto.
7593         * doc/install.texi: Ditto.
7594         * doc/invoke.texi: Ditto.
7596 Copyright (C) 2017 Free Software Foundation, Inc.
7598 Copying and distribution of this file, with or without modification,
7599 are permitted in any medium without royalty provided the copyright
7600 notice and this notice are preserved.