ira.c tidies: move pdx_subregs into reg_equiv
[official-gcc.git] / gcc / ChangeLog
blob767af7293a560af5594620decf7594af6b1e4e49
1 2016-04-30  Alan Modra  <amodra@gmail.com>
3         * ira.c (pdx_subregs): Delete.
4         (struct equivalence): Add pdx_subregs field.
5         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
6         pdx_subregs access.
7         (update_equiv_regs): Don't create or free pdx_subregs.  Update
8         pdx_subregs access.
10 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12         * config/rs6000/altivec.h: Change definitions of vec_xl and
13         vec_xst.
14         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
15         (LD_ELEMREV_V2DI): New.
16         (LD_ELEMREV_V4SF): New.
17         (LD_ELEMREV_V4SI): New.
18         (LD_ELEMREV_V8HI): New.
19         (LD_ELEMREV_V16QI): New.
20         (ST_ELEMREV_V2DF): New.
21         (ST_ELEMREV_V2DI): New.
22         (ST_ELEMREV_V4SF): New.
23         (ST_ELEMREV_V4SI): New.
24         (ST_ELEMREV_V8HI): New.
25         (ST_ELEMREV_V16QI): New.
26         (XL): New.
27         (XST): New.
28         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
29         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
30         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
31         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
32         (altivec_expand_builtin): Add handling for
33         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
34         (rs6000_invalid_builtin): Add error-checking for
35         RS6000_BTM_P9_VECTOR.
36         (altivec_init_builtins): Define builtins used to implement vec_xl
37         and vec_xst.
38         (rs6000_builtin_mask_names): Define power9-vector.
39         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
40         (RS6000_BTM_P9_VECTOR): Define.
41         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
42         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
43         (vsx_ld_elemrev_v2df): Likewise.
44         (vsx_ld_elemrev_v4sf): Likewise.
45         (vsx_ld_elemrev_v4si): Likewise.
46         (vsx_ld_elemrev_v8hi): Likewise.
47         (vsx_ld_elemrev_v16qi): Likewise.
48         (vsx_st_elemrev_v2df): Likewise.
49         (vsx_st_elemrev_v2di): Likewise.
50         (vsx_st_elemrev_v4sf): Likewise.
51         (vsx_st_elemrev_v4si): Likewise.
52         (vsx_st_elemrev_v8hi): Likewise.
53         (vsx_st_elemrev_v16qi): Likewise.
54         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
55         grammar.
57 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
59         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
60         out into ...
61         (simplify_control_stmt_condition_1): ... here.  Recurse into
62         BIT_AND_EXPRs and BIT_IOR_EXPRs.
64 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
66         PR target/69810
67         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
68         (zero_extendqi<mode>2_dot): Revert earlier conversion from
69         define_insn_and_split to define_insn.
70         (zero_extendqi<mode>2_dot2): Same.
71         (extendqi<mode>2_dot): Same.
72         (extendqi<mode>2_dot2): Same.
74 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
76         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
77         (probe_stack): New expander.
78         (probe_stack_<mode>): New insn pattern.
80 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
82         * config/i386/i386.md
83         (operations with memory inputs setting flags peephole2):
84         Remove uneeded REG_P checks.  Cleanup pattern generation.
86 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
88         * tree-vect-loop.c (vect_transform_loop): Fix
89         nb_iterations_upper_bound computation for vectorized loop.
91 2016-04-29  Marek Polacek  <polacek@redhat.com>
92             Jakub Jelinek  <jakub@redhat.com>
94         PR sanitizer/70342
95         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
96         TARGET_EXPR_SLOT as a base.
98 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
100         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
101         with 'rCm2' constraints to limit possible immediate size.
102         (*load_zeroextendqisi_update): Likewise.
103         (*load_signextendqisi_update): Likewise.
104         (*loadhi_update): Likewise.
105         (*load_zeroextendhisi_update): Likewise.
106         (*load_signextendhisi_update): Likewise.
107         (*loadsi_update): Likewise.
108         (*loadsf_update): Likewise.
110 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
112         * config/i386/predicates.md (constm1_operand): Fix comparison.
114 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
116         * testsuite/gcc.target/arc/ieee_eq.c: New test.
118 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
120         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
121         remaining SH5 related settings.
122         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
123         shmedia_prepare_call_address): Delete.
124         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
125         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
126         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
127         UNSUPPORTED_SH2A): Remove m5 checks.
128         (sh_divide_strategy_e): Remove SH5 division strategies.
129         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
130         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
132 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
134         * config/s390/s390.c (s390_rtx_costs): Update documentation.
136 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
138         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
139         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
140         Change lder to ldr.
141         * config/s390/vector.md ("mov<mode>"): Likewise.
143 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
145         * config/s390/constraints.md ("U", "W"): Invoke
146         s390_mem_constraint with "ZR" and "ZT".
147         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
148         addresses when using LRA.  Accept also short displacements for S
149         and T constraints.  Do not check for long displacement target for
150         S and T constraints.
151         (s390_mem_constraint): Remove handling of U and W constraints.
152         * config/s390/s390.md (various patterns): Remove the short
153         displacement constraints (Q and R) if a long displacement
154         constraint is present.  Add longdisp as required CPU capability.
155         * config/s390/vector.md: Likewise.
156         * config/s390/vx-builtins.md: Likewise.
158 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
160         PR target/60040
161         * reload1.c (reload): Call finish_spills before
162         restarting reload loop. Skip select_reload_regs
163         if update_eliminables_and_spill returns true.
165 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
167         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
168         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
169         (umulhisi3_imm): Update predicates and constraint letters.
170         (umulhisi3_reg): Declare instruction as commutative.
171         * config/arc/constraints.md (J12, J16): New constraints.
172         * config/arc/predicates.md (short_unsigned_const_operand): New
173         predicate.
174         (arc_short_operand): Likewise.
175         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
177 2016-04-29  Richard Biener  <rguenther@suse.de>
179         PR tree-optimization/13962
180         PR tree-optimization/65686
181         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
182         * tree-ssa-alias.c (ptrs_compare_unequal): New function
183         using PTA to compare pointers.
184         * match.pd: Add pattern for pointer equality compare simplification
185         using ptrs_compare_unequal.
187 2016-04-29  Richard Biener  <rguenther@suse.de>
189         * stor-layout.c (layout_type): Do not build a pointer-to-element
190         type for arrays.
192 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
194         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
195         Use SWI mode iterator.  Use general_reg_operand predicate.
196         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
197         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
198         predicates.
200 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
202         PR middle-end/70843
203         * fold-const.c (operand_equal_p): Don't verify hash value equality
204         if arg0 == arg1.
205         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
206         and OMP_CLAUSE.
208 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
210         PR target/70858
211         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
212         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
213         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
214         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
215         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
217 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
219         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
220         to info.  Don't initialize separate fields to 0.  Clean up
221         formatting a bit.
223 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
225         * config/i386/i386.md (peephole2s for operations with memory inputs):
226         Use SWI mode iterator.
227         (peephole2s for operations with memory outputs): Ditto.
228         Do not check for stack checking probe.
230         (probe_stack): Remove expander.
232 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
233             Andrew Burgess  <andrew.burgess@embecosm.com>
235         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
236         operands as 32-bits.
238 2016-04-28  Jason Merrill  <jason@redhat.com>
240         * gdbinit.in: Skip line-map.h.
242 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
243             Andrew Burgess  <andrew.burgess@embecosm.com>
245         * config/arc/arc.c (arc_conditional_register_usage): Take
246         TARGET_RRQ_CLASS into account.
247         (arc_print_operand): Support printing 'p' and 's' operands.
248         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
249         as 0.
250         (TARGET_RRQ_CLASS): Define.
251         (IS_POWEROF2_OR_0_P): Define.
252         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
253         alternatives.
254         (*tst_movb): New define_insn.
255         (*tst): Avoid recognition if it could prevent '*tst_movb'
256         combination; replace c/CnL with c/Chs alternative.
257         (*tst_bitfield_tst): New define_insn.
258         (*tst_bitfield_asr): New define_insn.
259         (*tst_bitfield): New define_insn.
260         (andsi3_i): Add Rrq variant.
261         (extzv): New define_expand.
262         (insv): New define_expand.
263         (*insv_i): New define_insn.
264         (*movb): New define_insn.
265         (*movb_signed): New define_insn.
266         (*movb_high): New define_insn.
267         (*movb_high_signed): New define_insn.
268         (*movb_high_signed + 1): New define_split pattern.
269         (*mrgb): New define_insn.
270         (*mrgb + 1): New define_peephole2 pattern.
271         (*mrgb + 2): New define_peephole2 pattern.
272         * config/arc/arc.opt (mbitops): New option for nps400, uses
273         TARGET_NPS_BITOPS_DEFAULT.
274         * config/arc/constraints.md (q): Make register class conditional.
275         (Rrq): New register constraint.
276         (Chs): New constraint.
277         (Clo): New constraint.
278         (Chi): New constraint.
279         (Cbf): New constraint.
280         (Cbn): New constraint.
281         (C18): New constraint.
282         (Cbi): New constraint.
284 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
286         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
287         dst->popcount.
288         (bitmap_intersection_of_preds): Ditto.
289         (bitmap_union_of_succs): Ditto.
290         (bitmap_union_of_preds): Ditto.
291         * sbitmap.c (do_popcount): Delete.
292         (BITMAP_DEBUGGING): Delete.
293         (sbitmap_verify_popcount): Delete.
294         (sbitmap_alloc): Don't initialize the popcount field.
295         (sbitmap_alloc_with_popcount): Delete.
296         (sbitmap_resize): Don't resize the popcount array.
297         (sbitmap_vector_alloc): Don't initialize the popcount field.
298         (bitmap_copy): Don't copy the popcount array.
299         (bitmap_clear): Don't clear the popcount array.
300         (bitmap_clear): Delete the popcount array handling.
301         (bitmap_ior_and_compl): Delete the popcount assert.
302         (bitmap_not): Ditto.
303         (bitmap_and_compl): Ditto.
304         (bitmap_and): Delete the popcount array handling.
305         (bitmap_xor): Ditto.
306         (bitmap_ior): Ditto.
307         (bitmap_or_and): Delete the popcount assert.
308         (bitmap_and_or): Ditto.
309         (popcount_table): Delete.
310         (sbitmap_elt_popcount): Delete.
311         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
312         (bitmap_set_bit): Delete the popcount assert.
313         (bitmap_clear_bit): Ditto.
314         (sbitmap_free): Don't free the popcount array.
315         (sbitmap_alloc_with_popcount): Delete declaration.
316         (sbitmap_popcount): Ditto.
318 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
319             Andrew Burgess  <andrew.burgess@embecosm.com>
321         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
322         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
323         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
324         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
325         * config/arc/arc.opt (mcmem): New option.
326         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
327         supply length for r/m alternative.
328         (*extendqisi2_ac): Likewise.
329         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
330         r/Uex alternative.
331         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
332         (movhi_insn): Likewise.
333         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
334         (*zero_extendqihi2_i): Add r/Ucm alternative.
335         (*zero_extendqisi2_ac): Likewise.
336         (*zero_extendhisi2_i): Likewise.
337         * config/arc/constraints.md (Uex): New memory constraint.
338         (Ucm): New define_constraint.
339         * config/arc/predicates.md (long_immediate_loadstore_operand):
340         Return 0 for MEM with cmem_address address.
341         (cmem_address_0): New predicates.
342         (cmem_address_1): Likewise.
343         (cmem_address_2): Likewise.
344         (cmem_address): Likewise.
346 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
348         * config/rs6000/rs6000.c (machine_function): Rename
349         insn_chain_scanned_p to spe_insn_chain_scanned_p.
350         (rs6000_stack_info): Adjust.
352 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
353             Andrew Burgess  <andrew.burgess@embecosm.com>
355         * config/arc/constraints.md (Usd): Convert to define_constraint.
356         (Us<): Likewise.
357         (Us>): Likewise.
359 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
361         PR target/70821
362         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
363         Add new peephole2 where the first insn is *mov<mode>_or instead of
364         *mov<mode>_internal.
366 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
368         * tracer.c (bb_seen): Make static.
370 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
372         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
373         support, setup defaults.
374         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
375         * config/arc/arc.c (arc_init): Add NPS400 support.
376         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
377         (TARGET_ARC700): NPS400 is also an ARC700.
378         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
380 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
382         PR target/70668
383         * config/nds32/nds32.md (casesi): Don't access the operands array
384         out of bounds.
386 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
388         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
389         (or $-1,reg peephole2): Ditto.
390         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
392 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
394         * doc/extend.texi (Common Function Attributes) [optimize]:
395         Discourage use of the optimize attribute.
397 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
399         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
400         special case builtin.
401         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
402         ALTIVEC_BUILTIN_VEC_ADDE.
403         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
404         support for ALTIVEC_BUILTIN_VEC_ADDE.
405         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
406         for __builtin_vec_adde.
408 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
410         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
411         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
413 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
415         PR testsuite/70595
416         * doc/sourcebuild.texi (Effective-Target Keywords, Other
417         attributes): Document cilkplus_runtime.
419 2016-04-28  Martin Jambor  <mjambor@suse.cz>
421         * tree-cfg.c (verify_expr): Verify that local declarations belong to
422         this function.  Call verify_expr on MEM_REFs and bases of other
423         handled_components.
425 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
427         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
428         for WORD_REGISTER_OPERATIONS to runtime check.
430 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
432         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
434 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
436         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
437         big-endian compilation.
438         * config/arc/arc.md (addf3): Likewise.
439         (subdf3): Likewise.
440         (muldf3): Likewise.
442 2016-04-28  Richard Biener  <rguenther@suse.de>
444         PR tree-optimization/70840
445         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
446         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
447         Mark x * pow(x,c) -> pow(x,c+1) commutative.
448         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
450 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
452         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
453         and explain why in a comment.
455 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
457         * config/arc/arc.md (cpu_facility): Add fpx variant.
458         (subdf3): Prohibit use reverse sub when assist operations option
459         is enabled.
460         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
461         instructions only when FPX is enabled.
462         * testsuite/gcc.target/arc/trsub.c: New test.
464 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
466         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
467         mult_operator when calculating "type" attribute.
468         (*fop_<mode>_1_i387): Ditto.
469         (*fop_xf_1_i387): Ditto.
470         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
471         Use std::swap to swap operands.  Use RTL expressions to generate
472         converted pattern.
474 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
475             Joern Rennecke  <joern.rennecke@embecosm.com>
477         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
478         declaration.
479         (emit_pic_move): Remove.
480         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
481         * config/arc/arc.c (emit_pic_move): Removed.
482         (TARGET_HAVE_TLS): Define.
483         (arc_conditional_register_usage): Test for arc_tp_regno.
484         (arc_print_operand, arc_print_operand_address): Handle TLS
485         unspecs.
486         (arc_needs_pcl_p): New function.
487         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
488         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
489         (arc_raw_symbolic_reference_mentioned_p): Likewise.
490         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
491         (arc_legitimize_tls_address): Likewise.
492         (DTPOFF_ZERO_SYM): Define.
493         (arc_legitimize_pic_address): Make it static, handle TLS cases.
494         (arc_output_pic_addr_const): Print TLS unspecs.
495         (prepare_pic_move): New function, replaces emit_pic_move.
496         (arc_legitimate_constant_p): Handle TLS unspecs.
497         (arc_legitimate_address_p): Likewise.
498         (arc_rewrite_small_data_p): Use assert for TLS constants.
499         (prepare_move_operands): Use prepare_pic_move.
500         (arc_legitimize_address): Legitimize tls addresses.
501         (arc_epilogue_uses): Check for arc_tp_regno.
502         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
503         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
504         Define.
505         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
506         Likewise.
507         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
508         %(arc_tls_extra_start_spec).
509         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
510         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
511         (EH_USES): Define.
512         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
513         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
514         (UNSPEC_TLS_OFF): Add.
515         (R10_REG): Define.
516         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
517         (get_thread_pointersi): New patterns.
518         * config/arc/arc.opt (mtp-regno): New option.
519         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
520         (move_dest_operand): Likewise.
521         * configure: Regenerate.
522         * configure.ac: Add arc*-*-* case to test for tls.
523         * doc/invoke.texi (ARC options): Document mtp-regno.
525 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
527         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
528         the new ARC HS SIMD instructions.
529         (arc_preferred_simd_mode): New function.
530         (arc_autovectorize_vector_sizes): Likewise.
531         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
532         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
533         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
534         (arc_init_builtins): Add new SIMD builtin types.
535         (arc_split_move): Handle 64 bit vector moves.
536         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
537         (TARGET_PLUS_QMACW): Define.
538         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
539         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
540         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
541         (VSUBADD4H): New builtins.
542         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
543         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
545 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
546             Matthias Klose  <doko@debian.org>
548         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
550 2016-04-28  Richard Biener  <rguenther@suse.de>
552         PR middle-end/70777
553         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
554         canonicalization.
556 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
558         * common/config/sh/sh-common.c: Remove SH5 support.
559         * config/sh/constraints.md: Likewise.
560         * config/sh/config/sh/elf.h: Likewise.
561         * config/sh/linux.h: Likewise.
562         * config/sh/netbsd-elf.h: Likewise.
563         * config/sh/predicates.md: Likewise.
564         * config/sh/sh-c.c: Likewise.
565         * config/sh/sh-protos.h: Likewise.
566         * config/sh/sh.c: Likewise.
567         * config/sh/sh.h: Likewise.
568         * config/sh/sh.md: Likewise.
569         * config/sh/sh.opt: Likewise.
570         * config/sh/sync.md: Likewise.
571         * config/sh/sh64.h: Delete.
572         * config/sh/shmedia.h: Likewise.
573         * config/sh/shmedia.md: Likewise.
574         * config/sh/sshmedia.h: Likewise.
575         * config/sh/t-netbsd-sh5-64: Likewise.
576         * config/sh/t-sh64: Likewise.
577         * config/sh/ushmedia.h: Likewise.
579 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
581         * config/i386/i386.md (sign_extend to memory peephole2s): Use
582         general_reg_operand instead of register_operand predicate.
584 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
586         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
588 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
590         * match.pd (A - B > A, A + B < A): New transformations.
592 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
594         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
595         which defaults to true.  Emit an outer pair of parentheses only if
596         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
597         don't emit parentheses for the right-hand operand.
599 2016-04-27  Jeff Law  <law@redhat.com>
601         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
603 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
605         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
606         (altivec_lvx_<mode>_internal): Document.
607         (altivec_lvx_<mode>_2op): New define_insn.
608         (altivec_lvx_<mode>_1op): Likewise.
609         (altivec_lvx_<mode>_2op_si): Likewise.
610         (altivec_lvx_<mode>_1op_si): Likewise.
611         (altivec_stvx_<mode>): Remove.
612         (altivec_stvx_<mode>_internal): Document.
613         (altivec_stvx_<mode>_2op): New define_insn.
614         (altivec_stvx_<mode>_1op): Likewise.
615         (altivec_stvx_<mode>_2op_si): Likewise.
616         (altivec_stvx_<mode>_1op_si): Likewise.
617         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
618         Expand vec_ld and vec_st during parsing.
619         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
620         changes.
621         (altivec_expand_stvx_be): Likewise.
622         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
623         address-masking behavior in RTL.
624         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
625         address-masking behavior in RTL.
626         (altivec_expand_builtin): Change builtin code arguments for calls
627         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
628         (insn_is_swappable_p): Avoid incorrect swap optimization in the
629         presence of lvx/stvx patterns.
630         (alignment_with_canonical_addr): New function.
631         (alignment_mask): Likewise.
632         (find_alignment_op): Likewise.
633         (recombine_lvx_pattern): Likewise.
634         (recombine_stvx_pattern): Likewise.
635         (recombine_lvx_stvx_patterns): Likewise.
636         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
637         stvx patterns from expand.
638         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
639         expansions.
640         (vector_altivec_store_<mode>): Likewise.
642 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
644         * config/aarch64/aarch64.md
645         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
646         remove the "fp" attributes.
647         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
648         add the "simd" attributes.
649         (*movdf_aarch64): Likewise.
650         (*movtf_aarch64): Remove the "fp" attributes.
651         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
652         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
654 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
656         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
657         rtx to rtx_code_label *.
658         * rtl.h (maybe_set_first_label_num): Likewise.
660 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
662         * df-core.c (df_add_problem): Make the problem param be const.
663         (df_remove_problem): Make local "problem" be const.
664         * df-problems.c (problem_RD): Make const.
665         (problem_LR): Likewise.
666         (problem_LIVE): Likewise.
667         (problem_MIR): Likewise.
668         (problem_CHAIN): Likewise.
669         (problem_WORD_LR): Likewise.
670         (problem_NOTE): Likewise.
671         (problem_MD): Likewise.
672         * df-scan.c (problem_SCAN): Likewise.
673         * df.h (struct df_problem): Make field "dependent_problem" be
674         const.
675         (struct dataflow): Likewise for field "problem".
676         (df_add_problem): Make param const.
678 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
680         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
681         inter-unit moves to/from vector registers are enabled.  Do not disable
682         for TARGET_MMX.
684 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
686         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
687         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
688         #define to...
689         (enum df_problem_id): ...this new enum.
690         (struct df_problem): Convert field "id" from "int" to
691         enum df_problem_id.
693 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
695         * rtl.def: Update comment for "things in the instruction chain" to
696         reflect the removal of the leading "i" field for INSN_UID in
697         r210360.  Fix bogus apostrophe.
699 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
701         * config/i386/i386.md
702         (lea arith with mem operand + setcc peephole2): Set operator mode.
704 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
706         PR target/70155
707         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
708         (dimode_scalar_to_vector_candidate_p): This.
709         (timode_scalar_to_vector_candidate_p): New function.
710         (scalar_to_vector_candidate_p): Likewise.
711         (timode_check_non_convertible_regs): Likewise.
712         (timode_remove_non_convertible_regs): Likewise.
713         (remove_non_convertible_regs): Likewise.
714         (remove_non_convertible_regs): Renamed to ...
715         (dimode_remove_non_convertible_regs): This.
716         (scalar_chain::~scalar_chain): Make it virtual.
717         (scalar_chain::compute_convert_gain): Make it pure virtual.
718         (scalar_chain::mark_dual_mode_def): Likewise.
719         (scalar_chain::convert_insn): Likewise.
720         (scalar_chain::convert_registers): Likewise.
721         (scalar_chain::add_to_queue): Make it protected.
722         (scalar_chain::emit_conversion_insns): Likewise.
723         (scalar_chain::replace_with_subreg): Likewise.
724         (scalar_chain::replace_with_subreg_in_insn): Likewise.
725         (scalar_chain::convert_op): Likewise.
726         (scalar_chain::convert_reg): Likewise.
727         (scalar_chain::make_vector_copies): Likewise.
728         (scalar_chain::convert_registers): New pure virtual function.
729         (class dimode_scalar_chain): New class.
730         (class timode_scalar_chain): Likewise.
731         (scalar_chain::mark_dual_mode_def): Renamed to ...
732         (dimode_scalar_chain::mark_dual_mode_def): This.
733         (timode_scalar_chain::mark_dual_mode_def): New function.
734         (timode_scalar_chain::convert_insn): Likewise.
735         (dimode_scalar_chain::convert_registers): Likewise.
736         (scalar_chain::compute_convert_gain): Renamed to ...
737         (dimode_scalar_chain::compute_convert_gain): This.
738         (scalar_chain::replace_with_subreg): Renamed to ...
739         (dimode_scalar_chain::replace_with_subreg): This.
740         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
741         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
742         (scalar_chain::make_vector_copies): Renamed to ...
743         (dimode_scalar_chain::make_vector_copies): This.
744         (scalar_chain::convert_reg): Renamed to ...
745         (dimode_scalar_chain::convert_reg ): This.
746         (scalar_chain::convert_op): Renamed to ...
747         (dimode_scalar_chain::convert_op): This.
748         (scalar_chain::convert_insn): Renamed to ...
749         (dimode_scalar_chain::convert_insn): This.
750         (scalar_chain::convert): Call convert_registers.
751         (convert_scalars_to_vector): Change to scalar_chain pointer to
752         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
753         in 32-bit mode.  Delete scalar_chain pointer.  Call
754         free_dominance_info in 64-bit mode.
755         (pass_stv::gate): Remove TARGET_64BIT check.
756         (ix86_option_override): Put the 64-bit STV pass before the CSE
757         pass.
759 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
761         * dwarf2out.h (struct dw_loc_descr_node): Remove the
762         dw_loc_frame_offset field.
763         * dwarf2out.c (new_loc_descr): Likewise.
764         (resolve_args_picking_1): Turn the VISITED hash set into a
765         FRAME_OFFSET hash map. Use it to associate a frame offset to
766         visited nodes. Remove uses of the CHECKING_P macro.
767         (resolve_args_picking): Update call to resolve_args_picking_1.
769 2016-04-27  Martin Liska  <mliska@suse.cz>
771         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
772         (free_loop_data): Release vuses of groups.
774 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
776         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
777         instead of redundant use_id and boolean have_use_for.
778         (struct iv_use): Change sub_id into group_id.  Remove field next.
779         Move fields: related_cands, n_map_members, cost_map and selected
780         to ...
781         (struct iv_group): ... here.  New structure.
782         (struct iv_common_cand): Use structure declaration directly.
783         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
784         (MAX_CONSIDERED_USES): Rename macro to ...
785         (MAX_CONSIDERED_GROUPS): ... here.
786         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
787         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
788         (dump_uses): Rename to ...
789         (dump_groups): ... here.  Update all uses.
790         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
791         (find_induction_variables): Refactor format of dump information.
792         (record_sub_use): Delete.
793         (record_use): Update all uses.
794         (record_group): New function.
795         (record_group_use, find_interesting_uses_op): Call above functions.
796         Update all uses.
797         (find_interesting_uses_cond): Ditto.
798         (group_compare_offset): New function.
799         (split_all_small_groups): Rename to ...
800         (split_small_address_groups_p): ... here.  Update all uses.
801         (split_address_groups):  Update all uses.
802         (find_interesting_uses): Refactor format of dump information.
803         (add_candidate_1): Update all uses.  Remove redundant check on iv,
804         base and step.
805         (add_candidate, record_common_cand): Remove redundant assert.
806         (add_iv_candidate_for_biv): Update use.
807         (add_iv_candidate_derived_from_uses): Update all uses.
808         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
809         (alloc_use_cost_map): Ditto.
810         (set_use_iv_cost, get_use_iv_cost): Rename to ...
811         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
812         (determine_use_iv_cost_generic): Ditto.
813         (determine_group_iv_cost_generic): Ditto.
814         (determine_use_iv_cost_address): Ditto.
815         (determine_group_iv_cost_address): Ditto.
816         (determine_use_iv_cost_condition): Ditto.
817         (determine_group_iv_cost_cond): Ditto.
818         (determine_use_iv_cost): Ditto.
819         (determine_group_iv_cost): Ditto.
820         (set_autoinc_for_original_candidates): Update all uses.
821         (find_iv_candidates): Update all uses.  Refactor dump information.
822         (determine_use_iv_costs): Ditto.
823         (determine_iv_costs): Ditto.
824         (iv_ca_cand_for_use): Rename to ...
825         (iv_ca_cand_for_group): ... here.  Update all uses.
826         (iv_ca_add_use, iv_ca_add_group): Ditto.
827         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
828         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
829         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
830         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
831         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
832         (create_new_iv, adjust_iv_update_pos): Ditto.
833         (rewrite_use_address): Delete.
834         (rewrite_use_address_1): Rename to ...
835         (rewrite_use_address): ... here.
836         (rewrite_use_compare): Update all uses.
837         (rewrite_use): Delete.
838         (rewrite_uses): Rename to ...
839         (rewrite_groups): ... here.  Update all uses.
840         (remove_unused_ivs, free_loop_data): Update all uses.
841         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
843 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
845         * rtlanal.c (nonzero_bits1): Convert preprocessor check
846         for WORD_REGISTER_OPERATIONS to runtime check.
848 2016-04-27  Richard Biener  <rguenther@suse.de>
850         PR ipa/70760
851         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
852         aggregate_value_p to determine if a function result is
853         returned by reference.
854         (ipa_pta_execute): Functions having their address taken are
855         not automatically nonlocal.
857 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
859         PR sanitizer/70683
860         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
861         * fold-const.c (operand_equal_p): If flag_checking and
862         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
863         and if it returns non-zero, assert iterative_hash_expr on both
864         args is the same.
866 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
868         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
870 2016-04-27  Nick Clifton  <nickc@redhat.com>
872         PR middle-end/49889
873         * varasm.c (merge_weak): Generate an error if an attempt is made
874         to convert a non-weak static function into a weak, public function.
876 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
878         * params.def (MAX_PARTITION_SIZE): New param.
879         * doc/invoke.texi: Document lto-max-partition.
881 2016-04-27  Richard Biener  <rguenther@suse.de>
883         PR ipa/70785
884         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
885         function cummulating used_from_other_partition, externally_visible
886         and force_output from aliases.
887         (refered_from_nonlocal_var): Likewise.
888         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
889         node flags properly.
891 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
893         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
894         (-Wmemset-elt-size): New item.
896 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
898         PR ada/70759
899         * stor-layout.h (internal_reference_types): Delete.
900         * stor-layout.c (reference_types_internal): Likewise.
901         (internal_reference_types): Likewise.
902         (layout_type) <REFERENCE_TYPE>: Adjust.
904 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
906         PR sanitizer/70683
907         * tree.h (inchash::add_expr): Add FLAGS argument.
908         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
909         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
910         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
911         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
912         if swap_tree_comparison (code) is smaller than code, hash that
913         and arguments in the other order.  Hash CONVERT_EXPR the same
914         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
915         of ADDR_EXPR of decl as the decl itself.  Add or remove
916         OEP_ADDRESS_OF from recursive flags as needed.  For
917         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
918         operands commutatively and only the third one normally.
919         For internal CALL_EXPR hash in CALL_EXPR_IFN.
921 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
923         * config/rtems.h (LIB_SPEC): Add -latomic.
925 2016-04-27  Joel Sherrill  <joel@rtems.org>
927         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
928         xilink.ld and flags not relevant to RTEMS.
930 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
932         * toplev.c (backend_init_target): Avoid calling init_reload when using
933         LRA.
935 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
937         * reorg.c (try_merge_delay_insns): Declare i and j inside the
938         for loops rather than one for the whole function.
940 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
942         * match.pd (X + CST CMP X): New transformation.
944 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
946         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
947         * fold-const.c (fold_binary_loc): Remove 2 transformations
948         superseded by match.pd.
949         * match.pd (x+x -> x*2): Generalize to integers.
951 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
953         * config/i386/i386.md (operation on memory peephole): Duplicate an
954         existing peephole and adapt it to match lea rather than an operation
955         that clobbers CC.
957         PR rtl-optimization/57193
958         * opts.c (default_options_table): Add OPT_frename_registers at -O2
959         and above.
960         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
962 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
964         * tree-if-conv.c (any_pred_load_store): New static variable.
965         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
966         any_pred_load_store instead of and_mask_load_store.
967         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
968         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
969         (combine_blocks, tree_if_conversion): Ditto.
971 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
973         PR tree-optimization/70771
974         PR tree-optimization/70775
975         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
976         virtual PHI nodes.  Delete parameter.
977         (if_convertible_loop_p_1): Delete argument to above function.
978         (predicate_all_scalar_phis): Delete code handling single-argument
979         PHIs.
980         (tree_if_conversion): Mark and update virtual SSA.
982 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
984         PR target/61821
985         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
986         (x86_elf_aligned_common): Rename to ...
987         (x86_elf_aligned_decl_common): ... this.
988         Add decl arg.  Switch to .lbss for largecomm object.  Use
989         LARGECOMM_SECTION_ASM_OP.
990         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
991         renaming.
992         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
993         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
994         Pass new decl arg.
995         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
996         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
998 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1000         PR target/59407
1001         * config/i386/i386.c (SECTION_LARGE): Define.
1002         (x86_64_elf_select_section): Set it for large data/bss sections.
1003         Only clear SECTION_WRITE for .lrodata.
1004         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
1005         data/bss sections.
1006         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
1007         * varasm.c (default_elf_asm_named_section): Grow flagchars.
1008         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
1009         SECTION_MACH_DEP.
1010         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
1011         * doc/tm.texi: Regenerate.
1013 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
1015         PR bootstrap/70704
1016         * configure.ac (--enable-checking): Document extra flag, for
1017         non-release builds default to --enable-checking=yes,extra.
1018         If misc checking and extra checking, define CHECKING_P to 2 instead
1019         of 1.
1020         * common.opt (fchecking=): Add.
1021         * doc/invoke.texi (-fchecking=): Document.
1022         * doc/install.texi: Document --enable-checking changes.
1023         * configure: Regenerated.
1024         * config.in: Regenerated.
1026 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1028         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
1029         attribute instead of which_alternative.
1030         * config/i386/sse.md (*mov<mode>_internal): Ditto.
1031         Use EXT_REX_SSE_REG_P where appropriate.
1033 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1035         * config/i386/predicates.md (const0_operand): Do not match
1036         const_wide_int code.
1037         (const1_operand): Ditto.
1039 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1041         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
1042         for SSE constm1 operands and TARGET_AVX512VL.
1043         (*movti_internal): Ditto.
1044         (*mov<mode>_or): Use constm1_operand predicate.
1045         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
1046         for SSE vector_all_ones operands and TARGET_AVX512VL.
1047         * config/i386/predicates.md (constm1_operand): New predicate.
1048         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
1049         emission of constant -1 load.
1051 2016-04-25  Jason Merrill  <jason@redhat.com>
1053         * gdbinit.in: Skip is-a.h.
1055         * attribs.c (register_scoped_attributes): Fix logic.
1056         * attribs.h: Declare register_scoped_attributes.
1058 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1060         * config/rs6000/rs6000-builtin.def: Correct pasto error for
1061         stxvd2x and stxvw4x built-in functions.
1063 2016-04-25  DJ Delorie  <dj@redhat.com>
1065         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
1066         (ashrhi3): Likewise.
1067         (lshrhi3): Likewise.
1069 2016-04-25  Richard Biener  <rguenther@suse.de>
1071         PR tree-optimization/70780
1072         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
1073         wasn't visited yet.
1074         (compute_antic): Mark blocks with abnormal preds as visited as
1075         they have a final empty antic-in solution already.
1077 2016-04-25  Michael Collison  <michael.collison@linaro.org>
1079         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
1081 2016-04-25  Michael Collison  <michael.collison@linaro.org>
1083         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
1084         mode is VQI to improve mixed mode vectorization.
1085         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
1086         define_insn to match low half of signed vaddw.
1087         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
1088         define_insn to match high half of signed vaddw.
1089         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
1090         define_insn to match low half of unsigned vaddw.
1091         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
1092         define_insn to match high half of unsigned vaddw.
1093         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
1094         (arm_simd_check_vect_par_cnst_half_p): Likewise.
1095         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
1096         for new function.
1097         (arm_simd_check_vect_par_cnst_half_p): Likewise.
1098         * config/arm/predicates.md (vect_par_constant_high): Support
1099         big endian and simplify by calling
1100         arm_simd_check_vect_par_cnst_half
1101         (vect_par_constant_low): Likewise.
1103 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
1105         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
1106         predicate for operand 2.
1108 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
1109             H.J. Lu  <hongjiu.lu@intel.com>
1111         * config/i386/i386-protos.h (standard_sse_constant_p): Add
1112         machine_mode argument.
1113         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
1114         constm1_rtx operands.  For VOIDmode constants, get mode from
1115         pred_mode.  Check mode size if the mode is supported by ABI.
1116         (standard_sse_constant_opcode): Do not use standard_constant_p.
1117         Strictly check ABI support for all-ones operands.
1118         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
1119         immediates. Update calls to standard_sse_constant_p.
1120         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
1121         (ix86_rtx_costs): Ditto.
1122         * config/i386/i386.md (*movxi_internal_avx512f): Use
1123         nonimmediate_or_sse_const_operand instead of vector_move_operand.
1124         Use (v,BC) alternative instead of (v,C). Use register_operand
1125         checks instead of MEM_P.
1126         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
1127         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
1128         isa attribute.  Use register_operand checks instead of MEM_P.
1129         (*movti_internal): Use nonimmediate_or_sse_const_operand for
1130         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
1131         alternative and corresponding sse2 isa attribute.
1132         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
1133         to standard_sse_constant_p.
1134         (FP constant splitters): Ditto.
1135         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
1136         (C): Ditto.
1137         * config/i386/predicates.md (constm1_operand): Remove.
1138         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
1139         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
1140         vector_all_ones_operand instead of constm1_operand.
1142 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1144         * print-rtl.c (print_rtx_insn_vec): New function.
1145         * print-rtl.h: New prototype.
1146         * store-motion.c (struct st_expr): Make avail_stores a vector.
1147         (st_expr_entry): Adjust.
1148         (free_st_expr_entry): Likewise.
1149         (print_store_motion_mems): Likewise.
1150         (find_moveable_store): Likewise.
1151         (compute_store_table): Likewise.
1152         (delete_store): Likewise.
1153         (build_store_vectors): Likewise.
1155 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1157         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
1159 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1161         * vec.h (vec_safe_contains): New function.
1162         (vec::contains): Likewise.
1163         (vec::begin): Likewise.
1164         (vec::end): Likewise.
1166 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
1168         PR sanitizer/70712
1169         * cfgexpand.c (expand_stack_vars): Fix typo.
1171 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1173         * system.h (list, map, set, vector): Include conditionally.
1174         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
1175         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
1176         * ipa-icf.c (INCLUDE_LIST): Define.
1177         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
1178         * config/sh/sh.c (INCLUDE_VECTOR): Define.
1179         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
1180         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
1181         * cp/logic.cc (INCLUDE_LIST): Define.
1182         * fortran/trans-common.c (INCLUDE_MAP): Define.
1184 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1186         * auto-profile.c: Remove <string.h> include.
1187         * ipa-icf-gimple.c: Remove <list> include.
1188         * diagnostic.c: Remove <new> include.
1189         * genmatch.c: Likewise.
1190         * pretty-print.c: Likewise.
1191         * toplev.c: Likewise
1192         * c/c-objc-common.c: Likewise.
1193         * cp/error.c: Likewise.
1194         * fortran/error.c: Likewise.
1196 2016-04-22  Richard Biener  <rguenther@suse.de>
1198         * lto-streamer-in.c (input_ssa_names): Do not allocate
1199         GIMPLE_NOP for all SSA names.
1200         * lto-streamer-out.c (output_ssa_names): Do not output
1201         SSA names that should have been released.
1203 2016-04-22  Richard Biener  <rguenther@suse.de>
1205         PR tree-optimization/70740
1206         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
1207         VDEF.
1209 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
1211         PR target/70750
1212         * config/i386/predicates.md (call_insn_operand): Replace
1213         sibcall_memory_operand with memory_operand.
1215 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
1217         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
1218         has_single_use() tests.
1219         (register_edge_assert_for_1): Likewise.
1220         (find_assert_locations_1): Check the liveness bitmap instead of
1221         checking has_single_use().
1223 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
1225         PR target/70728
1226         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
1227         Extract AVX-512BW constraint from AVX.
1229 2016-04-21  Richard Biener  <rguenther@suse.de>
1231         PR tree-optimization/70725
1232         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
1233         for phi_convertible_by_degenerating_args.
1234         (predicate_all_scalar_phis): Handle single-argument PHIs.
1236 2016-04-21  Richard Biener  <rguenther@suse.de>
1238         PR middle-end/70747
1239         * fold-const.c (fold_comparison): Return properly typed
1240         constant boolean.
1242 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
1244         PR tree-optimization/70715
1245         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
1246         after expanding BASE using expand_simple_operations.
1248 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
1250         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
1251         New transformations.
1253 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
1255         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
1257 2016-04-20  Jan Hubicka  <jh@suse.cz>
1259         * ipa-inline.c (can_inline_edge_p): Pass caller info to
1260         ultiimate_alias_target.
1261         (update_callee_keys): Likewise.
1262         (lookup_recursive_calls): Likewise.
1263         (speculation_useful_p): Likewise.
1265 2016-04-20  Jan Hubicka  <jh@suse.cz>
1267         PR ipa/70018
1268         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
1269         (set_nothrow_flag_1): ... this; handle interposition correctly;
1270         recurse on aliases and thunks.
1271         (cgraph_node::set_nothrow_flag): New.
1272         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
1273         functions compiled with non-call exceptions that binds to current
1274         def.
1275         (propagate_nothrow): Be safe WRT interposition.
1276         * cgraph.h (set_nothrow_flag): Update prototype.
1278 2016-04-18  Jan Hubicka  <jh@suse.cz>
1280         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
1281         max_loop_iterations_int.
1282         (tree_unswitch_outer_loop): Likewise.
1284 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
1286         PR tree-optimization/69489
1287         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
1288         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
1289         Revise dump message.
1290         (if_convertible_bb_p): Remove check on edge count of basic block's
1291         predecessors.
1293 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
1295         PR tree-optimization/56625
1296         PR tree-optimization/69489
1297         * tree-data-ref.h (DR_INNERMOST): New macro.
1298         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
1299         hashing struct innermost_loop_behavior.
1300         (ref_DR_map): Remove.
1301         (innermost_DR_map): New map.
1302         (baseref_DR_map): Revise comment.
1303         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
1304         to innermost_DR_map accroding to its innermost loop behavior.
1305         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
1306         to its innermost loop behavior.
1307         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
1308         Add initialization for innermost_DR_map.  Record memory reference
1309         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
1310         have innermost loop behavior.
1311         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
1312         innermost_DR_map.
1314 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
1316         * config/i386/i386.md (*lea<mode>_general_1): Rename from
1317         *lea_general_1.  Use explicit SWI12 mode interator.
1318         (*lea<mode>_general_2): Rename from *lea_general_2.
1319         Use explicit SWI12 mode interator.
1320         (*lea<mode>_general_3): Rename from *lea_general_3.
1321         Use explicit SWI12 mode interator.
1322         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
1323         Use explicit SWI12 mode interator.
1324         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
1325         Use explicit SWI48 mode interator.
1327 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1329         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
1330         Short-cut unaligned load and store cases.  Handle all integer
1331         vector modes.
1332         (ix86_expand_vector_move_misalign): Short-cut unaligned load
1333         and store cases.  Call ix86_avx256_split_vector_move_misalign
1334         directly without checking mode class.
1336 2016-04-20  Andrew Pinski  <apinski@cavium.com>
1337             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1339         PR target/64971
1340         * config/aarch64/aarch64.md (sibcall): Force call
1341         address to be DImode for ILP32.
1342         (sibcall_value): Likewise.
1344 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
1346         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
1348 2016-04-20  Richard Biener  <rguenther@suse.de>
1350         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
1351         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
1352         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
1353         (maybe_push_res_to_seq): Adjust.
1354         * gimple-fold.c (maybe_build_generic_op): Likewise.
1356 2016-04-20  Marek Polacek  <polacek@redhat.com>
1358         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
1359         rather than true.
1361 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
1363         * config/i386/sse.md (vec_unpacks_lo_hi): Always
1364         use kmovw to support AVX512F target.
1366 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
1368         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
1370 2016-04-20  Marek Polacek  <polacek@redhat.com>
1372         PR tree-optimization/70725
1373         * tree-if-conv.c (is_false_predicate): New function.
1374         (predicate_mem_writes): Use it.
1376 2016-04-20  Richard Biener  <rguenther@suse.de>
1378         PR tree-optimization/70726
1379         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
1380         shift amounts from a pattern stmt operand.
1382 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1384         PR target/70674
1385         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
1386         stack_restore_from_fpr pattern when restoring r15.
1387         (s390_optimize_prologue): Strip away the memory barrier in the
1388         parallel when trying to get rid of restore insns.
1389         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
1390         definition for loading the stack pointer from an FPR.  Compared to
1391         the normal move insn this pattern includes a full memory barrier.
1393 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
1395         PR middle-end/70680
1396         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
1397         implicitly linear or lastprivate iterator on the outer context.
1399 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
1401         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
1402         alignment check.
1403         * config/i386/i386.md (ssememalign): Removed.
1404         * config/i386/sse.md: Remove ssememalign attribute from patterns.
1406 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
1408         PR target/69201
1409         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
1410         const short * to __builtin_ia32_loaddquhi512_mask.
1411         (_mm512_maskz_loadu_epi16): Likewise.
1412         (_mm512_mask_storeu_epi16): Pass short * to
1413         __builtin_ia32_storedquhi512_mask.
1414         (_mm512_mask_loadu_epi8): Pass const char * to
1415         __builtin_ia32_loaddquqi512_mask.
1416         (_mm512_maskz_loadu_epi8): Likewise.
1417         (_mm512_mask_storeu_epi8): Pass char * to
1418         __builtin_ia32_storedquqi512_mask.
1419         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
1420         const double * to __builtin_ia32_loadupd512_mask.
1421         (_mm512_mask_loadu_pd): Likewise.
1422         (_mm512_maskz_loadu_pd): Likewise.
1423         (_mm512_storeu_pd): Pass double * to
1424         __builtin_ia32_storeupd512_mask.
1425         (_mm512_mask_storeu_pd): Likewise.
1426         (_mm512_loadu_ps): Pass const float * to
1427         __builtin_ia32_loadups512_mask.
1428         (_mm512_mask_loadu_ps): Likewise.
1429         (_mm512_maskz_loadu_ps): Likewise.
1430         (_mm512_storeu_ps): Pass float * to
1431         __builtin_ia32_storeups512_mask.
1432         (_mm512_mask_storeu_ps): Likewise.
1433         (_mm512_mask_loadu_epi64): Pass const long long * to
1434         __builtin_ia32_loaddqudi512_mask.
1435         (_mm512_maskz_loadu_epi64): Likewise.
1436         (_mm512_mask_storeu_epi64): Pass long long *
1437         to __builtin_ia32_storedqudi512_mask.
1438         (_mm512_loadu_si512): Pass const int * to
1439         __builtin_ia32_loaddqusi512_mask.
1440         (_mm512_mask_loadu_epi32): Likewise.
1441         (_mm512_maskz_loadu_epi32): Likewise.
1442         (_mm512_storeu_si512): Pass int * to
1443         __builtin_ia32_storedqusi512_mask.
1444         (_mm512_mask_storeu_epi32): Likewise.
1445         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
1446         char * to __builtin_ia32_storedquqi256_mask.
1447         (_mm_mask_storeu_epi8): Likewise.
1448         (_mm256_mask_loadu_epi16): Pass const short * to
1449         __builtin_ia32_loaddquhi256_mask.
1450         (_mm256_maskz_loadu_epi16): Likewise.
1451         (_mm_mask_loadu_epi16): Pass const short * to
1452         __builtin_ia32_loaddquhi128_mask.
1453         (_mm_maskz_loadu_epi16): Likewise.
1454         (_mm256_mask_loadu_epi8): Pass const char * to
1455         __builtin_ia32_loaddquqi256_mask.
1456         (_mm256_maskz_loadu_epi8): Likewise.
1457         (_mm_mask_loadu_epi8): Pass const char * to
1458         __builtin_ia32_loaddquqi128_mask.
1459         (_mm_maskz_loadu_epi8): Likewise.
1460         (_mm256_mask_storeu_epi16): Pass short * to.
1461         __builtin_ia32_storedquhi256_mask.
1462         (_mm_mask_storeu_epi16): Pass short * to.
1463         __builtin_ia32_storedquhi128_mask.
1464         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
1465         const double * to __builtin_ia32_loadupd256_mask.
1466         (_mm256_maskz_loadu_pd): Likewise.
1467         (_mm_mask_loadu_pd): Pass onst double * to
1468         __builtin_ia32_loadupd128_mask.
1469         (_mm_maskz_loadu_pd): Likewise.
1470         (_mm256_mask_storeu_pd): Pass double * to
1471         __builtin_ia32_storeupd256_mask.
1472         (_mm_mask_storeu_pd): Pass double * to
1473         __builtin_ia32_storeupd128_mask.
1474         (_mm256_mask_loadu_ps): Pass const float * to
1475         __builtin_ia32_loadups256_mask.
1476         (_mm256_maskz_loadu_ps): Likewise.
1477         (_mm_mask_loadu_ps): Pass const float * to
1478         __builtin_ia32_loadups128_mask.
1479         (_mm_maskz_loadu_ps): Likewise.
1480         (_mm256_mask_storeu_ps): Pass float * to
1481         __builtin_ia32_storeups256_mask.
1482         (_mm_mask_storeu_ps): ass float * to
1483         __builtin_ia32_storeups128_mask.
1484         (_mm256_mask_loadu_epi64): Pass const long long * to
1485         __builtin_ia32_loaddqudi256_mask.
1486         (_mm256_maskz_loadu_epi64): Likewise.
1487         (_mm_mask_loadu_epi64): Pass const long long * to
1488         __builtin_ia32_loaddqudi128_mask.
1489         (_mm_maskz_loadu_epi64): Likewise.
1490         (_mm256_mask_storeu_epi64): Pass long long * to
1491         __builtin_ia32_storedqudi256_mask.
1492         (_mm_mask_storeu_epi64): Pass long long * to
1493         __builtin_ia32_storedqudi128_mask.
1494         (_mm256_mask_loadu_epi32): Pass const int * to
1495         __builtin_ia32_loaddqusi256_mask.
1496         (_mm256_maskz_loadu_epi32): Likewise.
1497         (_mm_mask_loadu_epi32): Pass const int * to
1498         __builtin_ia32_loaddqusi128_mask.
1499         (_mm_maskz_loadu_epi32): Likewise.
1500         (_mm256_mask_storeu_epi32): Pass int * to
1501         __builtin_ia32_storedqusi256_mask.
1502         (_mm_mask_storeu_epi32): Pass int * to
1503         __builtin_ia32_storedqusi128_mask.
1504         * config/i386/i386-builtin-types.def (PCSHORT): New.
1505         (PINT64): Likewise.
1506         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
1507         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
1508         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
1509         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
1510         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
1511         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
1512         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
1513         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
1514         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
1515         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
1516         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
1517         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
1518         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
1519         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
1520         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
1521         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
1522         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
1523         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
1524         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
1525         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
1526         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
1527         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
1528         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
1529         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
1530         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
1531         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
1532         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
1533         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
1534         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
1535         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
1536         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
1537         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
1538         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
1539         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
1540         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
1541         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
1542         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
1543         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
1544         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
1545         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
1546         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
1547         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
1548         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
1549         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
1550         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
1551         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
1552         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
1553         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
1554         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
1555         use UNSPEC_STOREU.
1556         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
1557         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
1558         load nor store.
1559         (ix86_expand_vector_move_misalign): Likewise.
1560         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
1561         to scalar function prototype for unaligned load/store builtins.
1562         (ix86_expand_special_args_builtin): Updated.
1563         * config/i386/sse.md (UNSPEC_LOADU): Removed.
1564         (UNSPEC_STOREU): Likewise.
1565         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
1566         (VI_ULOADSTORE_F_AVX512VL): Likewise.
1567         (ssescalarsize): Handle V4TI, V2TI and V1TI.
1568         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
1569         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
1570         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
1571         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
1572         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
1573         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
1574         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
1575         (<avx512>_storedqu<mode>_mask): Likewise.
1576         (*sse4_2_pcmpestr_unaligned): Likewise.
1577         (*sse4_2_pcmpistr_unaligned): Likewise.
1578         (*mov<mode>_internal): Renamed to ...
1579         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
1580         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
1581         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
1582         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
1584 2016-04-19  Richard Biener  <rguenther@suse.de>
1586         PR tree-optimization/70171
1587         * tree-ssa-phiprop.c: Include stor-layout.h.
1588         (phiprop_insert_phi): Handle the aggregate copy case.
1589         (propagate_with_phi): Likewise.
1591 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
1593         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
1594         instead of simplify_gen_subreg (... , 0).
1595         (ix86_delegitimize_address): Ditto.
1596         (ix86_split_divmod): Ditto.
1597         (ix86_split_copysign_const): Ditto.
1598         (ix86_split_copysign_var): Ditto.
1599         (ix86_expand_args_builtin): Ditto.
1600         (ix86_expand_round_builtin): Ditto.
1601         (ix86_expand_special_args_builtin): Ditto.
1602         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
1603         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
1604         (udivmodqi4): Ditto.
1605         (absneg splitters): Ditto.
1606         (*jcc_bt<mode>_1): Ditto.
1608 2016-04-19  Richard Biener  <rguenther@suse.de>
1610         PR tree-optimization/70724
1611         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
1612         restoring out from ...
1613         (free_scc_vn): ... here.
1614         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
1615         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
1616         tail merging.
1617         (pass_fre::execute): Restore SSA info.
1619 2016-04-19  Richard Biener  <rguenther@suse.de>
1621         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
1622         * gimple-walk.c (walk_gimple_op): Initialize it.
1623         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
1624         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
1625         remapping SSA names of defs.
1626         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
1627         adjustment.
1629 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
1631         PR middle-end/70689
1632         * lra-constraints.c (equiv_substition_p): New.
1633         (process_alt_operands): Use it.
1634         (swap_operands): Swap it.
1635         (curr_insn_transform): Update it.
1637 2016-04-18  Michael Matz  <matz@suse.de>
1639         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
1640         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
1641         * tree-core.h (tree_type_common.align): Use bit-field.
1642         (tree_type_common.spare): New.
1643         (tree_decl_common.off_align): Make smaller.
1644         (tree_decl_common.align): Use bit-field.
1646         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
1647         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
1648         (scan_sharing_clauses): Ditto.
1649         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
1650         (omp_finish_file): Ditto.
1651         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
1652         (layout_decl): Ditto.
1653         (relayout_decl): Ditto.
1654         (finalize_record_size): Use SET_TYPE_ALIGN.
1655         (finalize_type_size): Ditto.
1656         (finish_builtin_struct): Ditto.
1657         (layout_type): Ditto.
1658         (initialize_sizetypes): Ditto.
1659         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
1660         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
1661         (lookup_field_for_decl): Use SET_DECL_ALIGN.
1662         (get_chain_field): Ditto.
1663         (get_trampoline_type): Ditto.
1664         (get_nl_goto_field): Ditto.
1665         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
1666         SET_DECL_ALIGN.
1667         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
1668         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
1669         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
1670         (build_qualified_type): Use SET_TYPE_ALIGN.
1671         (build_aligned_type, build_range_type_1): Ditto.
1672         (build_atomic_base): Ditto.
1673         (build_common_tree_nodes): Ditto.
1674         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
1675         (expand_one_stack_var_at): Ditto.
1676         * coverage.c (build_var): Use SET_DECL_ALIGN.
1677         * except.c (init_eh): Ditto.
1678         * function.c (assign_parm_setup_block): Ditto.
1679         * symtab.c (increase_alignment_1): Ditto.
1680         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
1681         * tree-vect-stmts.c (ensure_base_align): Ditto.
1682         * varasm.c (align_variable): Ditto.
1683         (assemble_variable): Ditto.
1684         (build_constant_desc): Ditto.
1685         (output_constant_def_contents): Ditto.
1687         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
1688         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
1689         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
1690         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
1691         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
1693 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
1695         PR target/70708
1696         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
1697         replace %vmovsd with "%vmovq".
1698         (vec_concatv2df): Likewise.
1700 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
1702         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
1703         (*vec_extractv2si_0): Ditto.
1704         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
1705         (zero_extended_scalar_load_operand splitters): Ditto.
1706         (vec_extract splitters): Ditto.
1707         (*vec_extractv4si_0_zext): Ditto.
1708         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
1709         and lowpart_subreg.
1710         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
1711         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
1712         (*sse4_1_extractps): Use lowpart_subreg.
1714 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1716         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
1717         gld requirements.
1718         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
1719         Mention Solaris 11 packaging changes.
1720         Update gas and gld requirements.
1721         Remove reference to pre-Solaris 10 bug.
1722         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
1723         systems and bugs.
1724         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
1725         with cc.
1727 2016-04-17  Jan Hubicka  <jh@suse.cz>
1729         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
1730         max_loop_iterations_int.
1732 2016-04-18  Richard Biener  <rguenther@suse.de>
1734         PR tree-optimization/43434
1735         * tree-ssa-structalias.c (struct vls_data): New.
1736         (visit_loadstore): Handle all pointer-based accesses.
1737         (compute_dependence_clique): Compute a bitmap of restrict tags
1738         assigned bases and pass it to visit_loadstore.
1740 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
1742         PR target/70711
1743         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
1744         armv8.1-a and armv8.1-a+crc.
1746 2016-04-18  Richard Biener  <rguenther@suse.de>
1748         PR tree-optimization/70701
1749         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
1750         references after translating through a memcpy.
1752 2016-04-18  Richard Biener  <rguenther@suse.de>
1754         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
1755         (compute_antic): ... here.  For partial antic use regular
1756         postorder and scrap iteration.
1757         (compute_partial_antic_aux): Remove unused return value.
1758         (init_pre): Do not allocate postorder.
1759         (fini_pre): Do not free postorder.
1761 2016-04-18  Richard Biener  <rguenther@suse.de>
1763         PR middle-end/37870
1764         * expmed.c (extract_bit_field_1): Remove broken case
1765         using a wider MODE_INT mode.
1767 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
1769         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
1770         unless compiling with at least GCC-4.8.
1772 2016-04-17  Jan Hubicka  <jh@suse.cz>
1774         PR bootstrap/70706
1775         * graphite.c (graphite_finalize): Update call to
1776         tree_estimate_probability.
1777         * predict.h (tree_estimate_probability): Update prototype.
1779 2016-04-17  Jan Hubicka  <jh@suse.cz>
1781         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
1782         (tree_estimate_probability): Likewise.
1783         (pass_profile::execute): Update.
1784         (report_predictor_hitrates): New function.
1785         * profile.c (compute_branch_probabilities): Use it.
1786         * predict.h (report_predictor_hitrates): Declare.
1788 2016-04-17  Jan Hubicka  <jh@suse.cz>
1790         PR ipa/70018
1791         * cgraph.h (cgraph_node::set_const_flag,
1792         cgraph_node::set_pure_flag): Update prototype to return bool;
1793         update comment.
1794         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
1795         of interposable symbol are interposable, too.
1796         (cgraph_set_const_flag_1): Rename to ...
1797         (set_const_flag_1): ... this one; change to self recursive function
1798         instead of call_for_symbol_thunks_and_aliases. Handle correctly
1799         clearnig the flag in all variants and also virtual thunks of const
1800         functions are pure; track if any change was done.
1801         (cgraph_node::set_const_flag): Update.
1802         (struct set_pure_flag_info): New struct.
1803         (cgraph_set_pure_flag_1): Rename to ...
1804         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
1805         rather than pointer encoded flags; track if any changes was done;
1806         handle correctly clearning flag and setting flag of aliases already
1807         declared const.
1808         (cgraph_node::set_pure_flag): Update.
1809         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
1811 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1813         PR other/70433
1814         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
1815         backslash in label.
1817 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1819         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
1820         '{}<> ' as escape-for-record.
1822 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1824         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
1825         structure.
1827 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1829         PR other/70185
1830         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
1831         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
1832         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
1833         * passes.c (finish_optimization_passes): Only call
1834         finish_graph_dump_file if dfi->graph_dump_initialized.
1835         (execute_function_dump, pass_init_dump_file): Use
1836         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
1838 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1840         PR tree-optimization/70256
1841         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
1842         (debug_varmap): New function.
1844 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1846         PR other/70183
1847         * passes.c (pass_manager::register_pass): Propagate pflags.
1849 2016-04-17  Tom de Vries  <tom@codesourcery.com>
1851         PR other/68875
1852         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
1853         * passes.c (pass_manager::pass_manager): Declare and init p_start in
1854         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
1855         check if it's equal to p_start.
1856         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
1858 2016-04-15  Jan Hubicka  <jh@suse.cz>
1860         PR ipa/70018
1861         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
1862         function does not bind to current def.
1863         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
1864         handle conservatively calls to functions that does not need to bind
1865         to current def.
1866         (check_call): Update call of worse_state.
1867         (ignore_edge_for_nothrow): Update.
1868         (ignore_edge_for_pure_const): Likewise.
1869         (propagate_pure_const): Update calls to worse_state.
1870         (skip_function_for_local_pure_const): Reformat comments.
1872 2016-04-15  Jan Hubicka  <jh@suse.cz>
1874         PR ipa/70018
1875         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
1876         (cgraph_node::function_symbol): Likewise.
1877         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
1878         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
1879         (symtab_node::ultimate_alias_target): Add REF parameter.
1880         (symtab_node::binds_to_current_def_p): Declare.
1881         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
1882         (cgraph_node::function_symbol): Likewise.
1883         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
1884         (cgraph_node::get_availability): Likewise.
1885         (cgraph_edge::binds_to_current_def_p): New inline function.
1886         (varpool_node::get_availability): Add REF parameter.
1887         (varpool_node::ultimate_alias_target): Likewise.
1888         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
1889         (symtab_node::binds_to_current_def_p): Likewise.
1890         * varpool.c (varpool_node::get_availability): Likewise.
1892 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
1894         PR target/70662
1895         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
1896         Fix mode size check.
1898 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
1900         * BASE-VER: Set to 7.0.0.
1902 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
1904         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
1906 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1908         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
1909         architecture revisions.
1911 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
1913         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
1914         * config/i386/i386.c (ix86_using_red_zone): No longer static.
1915         * config/i386/i386.md (stack decrement to push peepholes): Guard
1916         with !x86_using_red_zone ().
1918 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
1920         PR c++/70675
1921         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
1922         to dump_generic_node.
1923         (NIY): Pass also flags to do_niy.
1925 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
1927         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
1928         (simd_clone_vector_of_formal_parm_types)
1929         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
1930         (simd_clone_mangle, simd_clone_create)
1931         (simd_clone_adjust_return_type, create_tmp_simd_array)
1932         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
1933         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
1934         (ipa_simd_modify_function_body, simd_clone_linear_addend)
1935         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
1936         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
1937         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
1938         * omp-simd-clone.c: ... this new file.
1939         (simd_clone_vector_of_formal_parm_types): Make it static.
1940         * Makefile.in (OBJS): Add omp-simd-clone.o.
1942 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
1944         PR target/70662
1945         * config/i386/sse.md: Use proper memory operand modifiers.
1948 2016-04-15  Richard Biener  <rguenther@suse.de>
1949         Alan Modra  <amodra@gmail.com>
1951         PR tree-optimization/70130
1952         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
1953         when alignment stays not the same and no not use the realign
1954         scheme then.
1956 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
1958         PR target/70669
1959         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
1960         direct move handlers for KFmode. Change TFmode handlers test from
1961         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
1963 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
1965         PR c++/70594
1966         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
1967         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
1968         (inlined_polymorphic_ctor_dtor_block_p): Use it.
1969         * tree-ssa-live.c (remove_unused_scope_block_p): When
1970         in_ctor_dtor_block, avoid discarding not just BLOCKs with
1971         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
1972         block_ultimate_origin is FUNCTION_DECL.
1973         (remove_unused_locals): If current_function_decl is
1974         polymorphic_ctor_dtor_p, pass initial true to
1975         remove_unused_scope_block_p' is_ctor_dtor_block.
1977 2016-04-14  Martin Sebor  <msebor@redhat.com>
1979         PR c++/69517
1980         PR c++/70019
1981         PR c++/70588
1982         * doc/extend.texi (Variable Length): Revert.
1984 2016-04-14  Marek Polacek  <polacek@redhat.com>
1985             Jan Hubicka  <hubicka@ucw.cz>
1987         PR c++/70029
1988         * tree.c (verify_type): Disable the canonical type of main variant
1989         check.
1991 2016-04-14  Jason Merrill  <jason@redhat.com>
1993         * cfgexpand.c, expr.c: Revert previous change.
1995 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
1997         PR middle-end/70643
1998         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
1999         when building a mem ref for the incoming reduction variable.
2001 2016-04-14  Richard Biener  <rguenther@suse.de>
2003         PR tree-optimization/70614
2004         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
2005         loop if the evolution dropped to chrec_dont_know.
2006         (interpret_condition_phi): Likewise.
2008 2016-04-14  Richard Biener  <rguenther@suse.de>
2010         PR tree-optimization/70623
2011         * tree-ssa-pre.c (changed_blocks): Make global ...
2012         (compute_antic): ... local here.  Move and fix worklist
2013         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
2014         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
2015         worklist handling, dump when ANTIC_IN changed.
2016         (compute_partial_antic_aux): Remove worklist handling.
2017         (init_pre): Do not compute post dominators.  Add a comment about
2018         the CFG order chosen.
2019         (fini_pre): Do not free post dominators.
2021 2016-04-13  Martin Sebor  <msebor@redhat.com>
2023         PR c++/69517
2024         PR c++/70019
2025         PR c++/70588
2026         * doc/extend.texi (Variable Length): Document C++ specifics.
2028 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
2030         PR c++/70641
2031         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
2032         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
2033         eh edges have been purged.
2035         PR c++/70594
2036         * tree-sra.c (create_access_replacement,
2037         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
2038         gets fancy name.
2039         * tree-pretty-print.c (dump_fancy_name): New function.
2040         (dump_decl_name, dump_generic_node): Use it.
2042 2016-04-13  Jason Merrill  <jason@redhat.com>
2044         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
2045         * expr.c (expand_expr_real_1): Likewise.
2047 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
2049         * config/i386/i386.md (kunpckhi): Swap operands.
2050         (kunpcksi): Likewise.
2051         (kunpckdi): Likewise.
2052         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
2053         (vec_pack_trunc_<mode>): Likewise.
2055 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
2057         PR debug/70628
2058         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
2060         PR middle-end/70633
2061         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
2062         gimplification turns some element into non-constant.
2064         PR debug/70628
2065         * rtl.h (convert_memory_address_addr_space_1): New prototype.
2066         * explow.c (convert_memory_address_addr_space_1): No longer static,
2067         add NO_EMIT argument and don't call convert_modes if true, pass
2068         it down recursively, remove break after return.
2069         (convert_memory_address_addr_space): Adjust caller.
2070         * simplify-rtx.c (simplify_unary_operation_1): Call
2071         convert_memory_address_addr_space_1 instead of convert_memory_address,
2072         if it returns NULL, don't simplify.
2074 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2076         PR target/70630
2077         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
2079 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
2081         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
2082         Bump the upper SIMDLEN limits, so that if the return type or
2083         characteristic type if the return type is void can be passed in
2084         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
2085         allowed.
2087 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2089         PR target/70640
2090         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
2091         Do not use "=" constraint on an input constraint.
2092         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
2093         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
2094         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
2095         generates (neg (abs ...)) instead of (abs ...).
2097 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
2099         PR rtl-optimization/70596
2100         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
2101         just invalidate LRA data and reset them.  Adjust dump wording.
2103 2016-04-12  Martin Liska  <mliska@suse.cz>
2105         Revert
2106         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
2108         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
2109         estimates here.
2110         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
2111         max_loop_iterations_int.
2112         (tree_unswitch_outer_loop): Likewise.
2113         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
2114         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
2116 2016-04-12  Tom de Vries  <tom@codesourcery.com>
2118         PR tree-optimization/68756
2119         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
2120         instead of new_name.
2122 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
2124         PR tree-optimization/70602
2125         * tree-sra.c (generate_subtree_copies): Don't write anything into
2126         constant pool decls.
2128         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
2129         regardless whether there are depend clauses or not.
2131 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2133         PR target/70381
2134         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
2135         target attribute and pragma from changing the -mfloat128
2136         and -mfloat128-hardware options.
2138         * doc/extend.texi (Additional Floating Types): Document PowerPC
2139         __float128 restrictions.
2141 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
2143         PR target/70133
2144         * config/aarch64/driver-aarch64.c
2145         (aarch64_get_extension_string_for_isa_flags): New.
2146         (arch_extension): Rename to...
2147         (aarch64_arch_extension): ...This.
2148         (ext_to_feat_string): Rename to...
2149         (aarch64_extensions): ...This.
2150         (aarch64_core_data): Keep track of architecture extension flags.
2151         (cpu_data): Rename to...
2152         (aarch64_cpu_data): ...This.
2153         (aarch64_arch_driver_info): Keep track of architecture extension
2154         flags.
2155         (get_arch_name_from_id): Rename to...
2156         (get_arch_from_id): ...This, change return type.
2157         (host_detect_local_cpu): Update and reformat for renames, handle
2158         extensions through common infrastructure.
2160 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
2162         PR target/70133
2163         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
2164         track of a canonical flag name.
2165         (all_extensions): Likewise.
2166         (arch_to_arch_name): Also track extension flags enabled by the arch.
2167         (all_architectures): Likewise.
2168         (aarch64_parse_extension): Move to here.
2169         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
2170         rework.
2171         (aarch64_rewrite_selected_cpu): Update for above change.
2172         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
2173         are handled, such that the single explicit value enabled by an
2174         extension is kept seperate from the implicit values it also enables.
2175         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
2176         to here.
2177         (aarch64_parse_extension): New.
2178         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
2179         here to config/aarch64/aarch64-protos.h.
2180         (aarch64_parse_extension): Move from here to
2181         common/config/aarch64/aarch64-common.c.
2182         (aarch64_option_print): Update.
2183         (aarch64_declare_function_name): Likewise.
2184         (aarch64_start_file): Likewise.
2185         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
2186         the canonical flag for extensions.
2187         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
2188         flags.
2190 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
2192         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
2193         AARCH64_FL_CRC.
2195 2016-04-09  Tom de Vries  <tom@codesourcery.com>
2197         PR tree-optimization/68953
2198         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
2199         first to last subscript.
2201 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
2203         PR tree-optimization/70586
2204         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
2205         for any calls.
2207 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
2209         PR lto/70289
2210         PR ipa/70348
2211         PR tree-optimization/70373
2212         PR middle-end/70533
2213         PR middle-end/70534
2214         PR middle-end/70535
2215         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
2216         clauses for acc parallel reductions as necessary.  Error on those
2217         that are private.
2218         * omp-low.c (scan_sharing_clauses): Don't install variables which
2219         are used in acc parallel reductions.
2220         (lower_rec_input_clauses): Remove dead code.
2221         (lower_oacc_reductions): Add support for reference reductions.
2222         (lower_reduction_clauses): Remove dead code.
2223         (lower_omp_target): Don't remap variables appearing in acc parallel
2224         reductions.
2225         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
2227 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
2229         PR middle-end/70593
2230         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
2231         with multiple SSA_NAME defs, force the outputs other than first
2232         to be live before calling live_track_process_def on each output.
2234         PR rtl-optimization/70574
2235         * fwprop.c (forward_propagate_and_simplify): Don't add
2236         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
2237         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
2238         paradoxical subregs within *loc.
2240 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
2242         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
2243         -ftree-parallelize-loops={0,1}.
2244         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
2245         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
2246         * config/ia64/hpux.h (LIB_SPEC): Likewise.
2247         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
2248         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
2250 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
2252         PR sanitizer/70541
2253         * asan.c (instrument_derefs): If we get unknown location, extract it
2254         with EXPR_LOCATION.
2255         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
2257 2016-04-08  Tom de Vries  <tom@codesourcery.com>
2259         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
2260         implicit firstprivate clause.
2262 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2264         PR target/70566
2265         * config/arm/thumb2.md (tst + branch-> lsls + branch
2266         peephole below *orsi_not_shiftsi_si): Require that condition
2267         register is dead after the peephole.
2268         (second peephole after the above): Likewise.
2270 2016-04-08  Alan Modra  <amodra@gmail.com>
2272         PR target/70117
2273         * builtins.c (fold_builtin_classify): For IBM extended precision,
2274         look at just the high-order double to test for NaN.
2275         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
2276         test just the high double for Inf but both doubles for subnormal
2277         limit.
2279 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
2281         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
2282         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
2283         node->simdclone->mask_mode != VOIDmode masks.
2284         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
2285         earlier, use it instead of node->simdclone.
2286         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
2287         Set clonei->mask_mode.
2289 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
2291         PR c/70436
2292         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
2293         Pass it through to cp_parser_already_scoped_statement.
2294         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
2295         it through to cp_parser_statement.
2296         (cp_parser_statement): Pass IF_P through to
2297         cp_parser_iteration_statement.
2298         (cp_parser_pragma): Adjust call to
2299         cp_parser_iteration_statement.
2301 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
2303         PR c/70436
2304         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
2305         resolve a future -Wparentheses warning.
2306         * omp-low.c (scan_sharing_clauses): Likewise.
2307         * tree-parloops.c (eliminate_local_variables): Likewise.
2309 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
2311         PR rtl-optimization/70398
2312         * lra-constraints.c (process_address_1): Check zero scale and code
2313         for reloading with zero scale.
2315 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
2317         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
2318         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
2320 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
2322         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
2323         Add support for AVX512F clones, include them by default for
2324         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
2325         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
2326         up to 128.
2328         PR middle-end/70550
2329         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
2330         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
2331         firstprivate clauses.
2332         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
2333         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
2334         (lower_omp_target): Set TREE_NO_WARNING for
2335         non-addressable possibly uninitialized vars which are copied into
2336         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
2338 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
2340         * config/pa/predicates.md (integer_store_memory_operand): Accept
2341         REG+D operands with a large offset when reload_in_progress is true.
2342         (floating_point_store_memory_operand): Likewise.
2344 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
2346         PR c++/70336
2347         * match.pd (nested int casts): Limit to GIMPLE.
2349 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
2351         PR ipa/66223
2352         * ipa-devirt.c (maybe_record_node): Fix comment; use
2353         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
2355 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
2357         PR rtl-optimization/70542
2358         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
2359         if there are any uses other than insn or debug insns.
2361 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
2362             Jakub Jelinek  <jakub@redhat.com>
2364         PR tree-optimization/70509
2365         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
2366         Shift HOST_WIDE_INT_1U instead of 1.
2368 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
2370         PR tree-optimization/70509
2371         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
2372         of the vector base type for index.
2374 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
2376         PR target/70510
2377         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
2379 2016-04-05  Richard Biener  <rguenther@suse.de>
2381         PR tree-optimization/70526
2382         * tree-sra.c (build_ref_for_offset): Use prev_base to
2383         extract the alias pointer type.
2385 2016-04-05  Richard Biener  <rguenther@suse.de>
2387         * dse.c (struct store_info): Remove alias_set member.
2388         (struct read_info_type): Likewise.
2389         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
2390         spill_deleted, clear_alias_set_lookup): Remove.
2391         (get_group_info): Remove dead base == NULL_RTX case.
2392         (dse_step0): Remove initialization of removed variables.
2393         (delete_dead_store_insn): Reomve alias set dumping.
2394         (free_read_records): Remove alias_set handling.
2395         (canon_address): Remove alias_set_out parameter.
2396         (record_store): Remove spill_alias_set, it's always zero.
2397         (check_mem_read_rtx): Likewise.
2398         (dse_step2): Rename from ...
2399         (dse_step2_nospill): ... this.  Adjust.
2400         (scan_stores): Rename from ...
2401         (scan_stores_nospill): ... this.
2402         (scan_reads): Rename from ...
2403         (scan_reads_nospill): ... this.
2404         (scan_stores_spill, scan_reads_spill): Remove.
2405         (dse_step3_scan): Remove for_spills argument which is always false.
2406         (dse_step3): Likewise.
2407         (dse_step5): Rename from ...
2408         (dse_step5_nospill): ... this.  Remove alias_set handling.
2409         (rest_of_handle_dse): Adjust.
2411 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
2413         PR target/70525
2414         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
2415         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
2416         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
2417         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
2419 2016-04-05  Richard Biener  <rguenther@suse.de>
2421         PR middle-end/70499
2422         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
2423         non-register type temporaries into SSA.
2425 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
2427         PR ipa/66223
2428         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
2429         calls when sanitizing.
2430         (possible_polymorphic_call_target_p): Fix formatting.
2432 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2433             Jakub Jelinek <jakub@redhat.com>
2435         PR middle-end/70457
2436         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
2437         to ensure a call statement is compatible with a built-in's
2438         prototype.
2439         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
2440         Likewise.
2442 2016-04-04  Richard Biener  <rguenther@suse.de>
2444         PR rtl-optimization/70484
2445         * rtl.h (canon_output_dependence): Declare.
2446         * alias.c (canon_output_dependence): New function.
2447         * dse.c (record_store): Use canon_output_dependence rather
2448         than canon_true_dependence.
2450 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
2452         PR ipa/68881
2453         * cgraph.h (symtab_node::copy_visibility_from): New function.
2454         * symtab.c (symtab_node::copy_visibility_from): New function.
2455         * ipa-visibility.c (optimize_weakref): New function.
2456         (function_and_variable_visibility): Use it.
2458 2016-04-04  Martin Liska  <mliska@suse.cz>
2460         PR hsa/70402
2461         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
2462         value that is really in range handled by SBR instruction.
2463         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
2464         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
2465         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
2467 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
2469         PR target/70416
2470         PR target/67391
2471         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
2472         set, but not for SP_REG operands.
2474 2016-04-02  Martin Sebor  <msebor@redhat.com>
2476         PR c++/67376
2477         * fold-const.c (maybe_nonzero_address): New function.
2478         (fold_comparison): Call it.  Fold equality and relational
2479         expressions involving null pointers.
2480         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
2482 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
2484         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
2485         the "Y" constraint (scalar FP 0.0 immediate).
2487         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
2488         Add the "const_double" to the list of operand constraints.
2490 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
2492         PR rtl-optimization/70467
2493         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
2494         If low word of the last operand is 0, just emit addition/subtraction
2495         for the high word.
2497 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2499         PR target/70404
2500         * config/s390/s390.c (s390_expand_insv): Check for everything
2501         constant instead of just VOIDmode stuff.
2503 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2505         PR target/70496
2506         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
2508 2016-04-01  Nathan Sidwell  <nathan@acm.org>
2510         * tree.def (TRY_CATCH_EXPR): Correct documentation.
2512 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
2514         PR rtl-optimization/70461
2515         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
2516         is necessary.
2518 2016-03-31  Martin Liska  <mliska@suse.cz>
2520         PR hsa/70399
2521         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
2522         a tree value or an immediate integer value to a buffer
2523         that is eventually copied to a BRIG section.
2524         (emit_immediate_operand): Call the function here.
2525         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
2526         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
2527         of class' fields that are removed.
2528         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
2529         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
2530         m_brig_repr_size fields.
2532 2016-03-31  Martin Liska  <mliska@suse.cz>
2534         PR hsa/70391
2535         * hsa-gen.c (hsa_function_representation::update_dominance): New
2536         function.
2537         (convert_addr_to_flat_segment): Likewise.
2538         (gen_hsa_memory_set): New alignment argument.
2539         (gen_hsa_ctor_assignment): Likewise.
2540         (gen_hsa_insns_for_single_assignment): Provide alignment
2541         to gen_hsa_ctor_assignment.
2542         (gen_hsa_insns_for_direct_call): Add new argument.
2543         (expand_lhs_of_string_op): New function.
2544         (expand_string_operation_builtin): Likewise.
2545         (expand_memory_copy): New function.
2546         (expand_memory_set): New function.
2547         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
2548         (convert_switch_statements): Change signature.
2549         (generate_hsa): Use a return value of the function.
2550         (pass_gen_hsail::execute): Do not call
2551         convert_switch_statements here.
2552         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
2553         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
2554         (hsa_function_representation::update_dominance): New function.
2556 2016-03-31  Martin Liska  <mliska@suse.cz>
2558         PR hsa/70391
2559         * hsa-brig.c (emit_directive_variable): Emit alignment
2560         according to hsa_symbol::m_align.
2561         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
2562         (dump_hsa_symbol): Dump alignment of HSA symbols.
2563         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
2564         (gen_hsa_addr_with_align): New function.
2565         (hsa_bitmemref_alignment): Use newly added function.
2566         (gen_hsa_insns_for_load): Likewise.
2567         (gen_hsa_insns_for_store): Likewise.
2568         (gen_hsa_memory_copy): New argument added.
2569         (gen_hsa_insns_for_single_assignment): Respect
2570         alignment for assignments processed via gen_hsa_memory_copy.
2571         (gen_hsa_insns_for_direct_call): Likewise.
2572         (gen_hsa_insns_for_return): Likewise.
2573         (gen_function_def_parameters): Set default alignment.
2574         * hsa.c (hsa_object_alignment): New function.
2575         (hsa_byte_alignment): Pasted function.
2576         * hsa.h (hsa_symbol::m_align): New field.
2578 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
2580         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
2581         scratch field for goto case.
2583 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
2585         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
2587 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
2589         PR target/70442
2590         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
2591         (scalar_chain::convert_insn): Call convert_op for reg
2592         moves to handle undefined registers.
2594 2016-03-31  Nathan Sidwell  <nathan@acm.org>
2596         PR c++/70393
2597         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
2598         Assert we don't want to move backwards.
2600 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2602         PR target/70453
2603         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
2605 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
2607         PR rtl-optimization/70460
2608         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
2609         with operand from REG_LABEL_OPERAND, instead substitute
2610         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
2611         Don't do anything for REG_NON_LOCAL_GOTO jumps.
2613 2016-03-31  Martin Liska  <mliska@suse.cz>
2615         * passes.c (execute_one_pass): Do not call
2616         todo_after for a discarded function.
2618 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
2620         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
2621         (no_cost, infinite_cost): Initialize the new field.
2622         (get_computation_cost_at): Record setup cost.
2623         (determine_use_iv_cost_address): Skip cost computation for sub
2624         uses if we can estimate it without losing accuracy.
2626 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
2628         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
2629         estimates here.
2630         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
2631         max_loop_iterations_int.
2632         (tree_unswitch_outer_loop): Likewise.
2633         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
2634         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
2636 2016-03-30  Richard Biener  <rguenther@suse.de>
2638         PR middle-end/70450
2639         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
2641 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
2643         PR target/70421
2644         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
2645         in gen_blendm expander.
2647 2016-03-30  Nick Clifton  <nickc@redhat.com>
2649         PR target/62254
2650         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
2651         case where we are already provided with an SImode SUBREG.
2653 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2655         PR target/70439
2656         * config/i386/i386.c (ix86_expand_epilogue): Properly check
2657         conflict between DRAP register and __builtin_eh_return.
2659 2016-03-30  Michael Matz  <matz@suse.de>
2660             Richard Biener  <rguenther@suse.de>
2662         PR ipa/12392
2663         * ipa-polymorphic-call.c (struct type_change_info): Change
2664         speculative to an unsigned allowing to limit the work we do.
2665         (csftc_abort_walking_p): New inline function..
2666         (check_stmt_for_type_change): Limit the number of may-defs
2667         skipped for speculative devirtualization to
2668         max-speculative-devirt-maydefs.
2669         * params.def (max-speculative-devirt-maydefs): New param.
2670         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
2672 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
2674         PR target/63890
2675         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
2676         and TARGET_MACHO.
2678 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
2680         PR tree-optimization/59124
2681         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
2682         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
2684 2016-03-29  Jeff Law  <law@redhat.com>
2686         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
2688 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
2690         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
2691         to HOST_WIDE_INT.
2693 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
2695         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
2696         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
2697         gcrt0.o if linking dynamically.
2699 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
2701         PR ipa/70283
2702         * ipa-devirt.c (methods_equal_p): New function.
2703         (compare_virtual_tables): Use it.
2704         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
2705         * cgraphclones.c (clone_function_name_1): Use
2706         symbol_table::symbol_suffix_separator.
2707         * coverage.c (build_var): Likewise.
2708         * symtab.c (symbol_table::symbol_suffix_separator): New.
2710 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
2712         PR rtl-optimization/70429
2713         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
2714         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
2715         mode != result_mode.
2717         PR c++/70353
2718         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
2720         PR tree-optimization/70405
2721         * ssa-iterators.h (num_imm_uses): Add missing braces.
2723 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
2725         PR rtl-optimization/68695
2726         * ira-color.c (allocno_copy_cost_saving): New.
2727         (improve_allocation): Use it.
2729 2016-03-29  Richard Henderson  <rth@redhat.com>
2731         PR middle-end/70355
2732         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
2734 2016-03-29  Richard Biener  <rguenther@suse.de>
2736         PR middle-end/70424
2737         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
2738         use alignment returned by get_pointer_alignment_1 if it is
2739         bigger than BITS_PER_UNIT.
2740         * builtins.c (get_pointer_alignment_1): Do not return true
2741         for alignment extracted from SSA info.
2743 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
2745         * config/ft32/ft32.opt (mnodiv): New.
2746         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
2747         * doc/invoke.texi (FT32 Options -mnodiv): New.
2749 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
2751         PR target/70406
2752         * config/i386/i386.md (define_split, andn): Fix modes.
2754 2016-03-26  Richard Biener  <rguenther@suse.de>
2755             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2757         PR ipa/70366
2758         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
2759         instead of
2760         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
2761         as 2nd argument to cl_optimization_restore().
2763 2016-03-25  Richard Henderson  <rth@redhat.com>
2765         PR target/70120
2766         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
2767         * config/aarch64/aarch64-protos.h: Declare it.
2768         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
2770 2016-03-25  Alan Modra  <amodra@gmail.com>
2772         PR target/70052
2773         * config/rs6000/constraints.md (j): Simplify.
2774         * config/rs6000/predicates.md (easy_fp_constant): Exclude
2775         decimal float 0.D.
2776         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
2777         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
2778          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
2779         in all constraint alternatives.
2780         (movtd_64bit_nodm): Delete "j" constraint alternative.
2782 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
2784         * tree-ssa-propagate.c: Enhance docs for
2785         SSA_PROP_NOT_INTERESTING.
2787 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
2789         * doc/extend.texi: Fix typo in documentation to pure attribute.
2791 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
2793         PR target/70319
2794         * config/pa/pa.md (bswapdi2): Use a scratch register.
2796 2016-03-24  Richard Henderson  <rth@redhat.com>
2798         PR middle-end/69845
2799         * fold-const.c (extract_muldiv_1): Correct test for multiplication
2800         overflow.
2802 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
2804         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
2805         using ix86_expand_binary_operator instead of gen_andsi3.
2807 2016-03-24  Richard Biener  <rguenther@suse.de>
2809         PR tree-optimization/70396
2810         * tree-vect-stmts.c (vectorizable_comparison): Use
2811         get_vectype_for_scalar_type.
2813 2016-03-24  Richard Biener  <rguenther@suse.de>
2815         PR middle-end/70370
2816         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
2817         with register bases.
2819 2016-03-24  Richard Biener  <rguenther@suse.de>
2821         PR tree-optimization/70372
2822         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
2823         build_all_ones_cst to also handle vector types correctly.
2825 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2827         PR target/70381
2828         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
2829         -mfloat128 here.
2831 2016-03-23  Marek Polacek  <polacek@redhat.com>
2833         PR c++/69884
2834         * doc/invoke.texi: Document -Wignored-attributes.
2836 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
2838         PR tree-optimization/69042
2839         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
2840         parameter from 30 to 40.
2842 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
2844         PR tree-optimization/69042
2845         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
2846         for use with constant offset stripped in base.
2848 2016-03-23  Richard Biener  <rguenther@suse.de>
2850         PR middle-end/70251
2851         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
2852         mode compatibility check.
2853         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
2855 2016-03-23  Jeff Law  <law@redhat.com>
2857         PR tree-optimization/64058
2858         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
2859         CONFLICT_COUNT.
2860         (struct ssa_conflicts): Move up earlier in the file.
2861         (conflicts_, var_map_): New static variables.
2862         (initialize_conflict_count): New function to initialize the
2863         CONFLICT_COUNT field for each conflict pair.
2864         (compare_pairs): Lazily initialize the conflict count and use it
2865         as the first tie-breaker.
2866         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
2867         and wipe conflicts_ and map_ around the call to qsort.  Remove
2868         special case for 2 coalesce pairs.
2869         * bitmap.c (bitmap_count_unique_bits): New function.
2870         (bitmap_count_bits_in_word): New function, extracted from
2871         bitmap_count_bits.
2872         (bitmap_count_bits): Use bitmap_count_bits_in_word.
2873         * bitmap.h (bitmap_count_unique_bits): Declare it.
2875 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
2877         PR target/69917
2878         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
2879         transparent alias chain for decl assembler name.
2880         * config/sol2.c (solaris_assemble_visibility): Likewise.
2882 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2884         * config/arm/arm1020e.md (1020call_op): Reduce reservation
2885         duration.
2886         (v10_fdivs): Likewise.
2887         (v10_fdivd): Likewise.
2889 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2891         PR driver/70132
2892         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
2893         to not call fclose twice on file.
2895 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
2897         PR tree-optimization/70354
2898         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
2899         oprnd0 is wider than oprnd1 and there is a cast from the wider
2900         type to oprnd1, mask it with the mask of the narrower type.
2902         PR target/70321
2903         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
2904         Optimize TARGET_STV splitters, if high or low word of last argument
2905         is 0 or -1.
2907 2016-03-22  Jeff Law  <law@redhat.com>
2909         PR target/70232
2910         tree-ssa-threadbackward.c
2911         (fsm_find_control_statement_thread_paths): Correctly distinguish
2912         between old style jump threads vs FSM jump threads.
2914 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
2916         PR target/70302
2917         * config/i386/i386.c (scalar_chain::convert_op): Support
2918         uninitialized register usage case.
2920 2016-03-22  Richard Biener  <rguenther@suse.de>
2922         PR middle-end/70251
2923         * genmatch.c (gen_transform): Adjust last parameter to a three-state
2924         int...
2925         (capture::gen_transform): ... to change behavior when substituting
2926         a condition into cond or not-cond expr context.
2927         (dt_simplify::gen_1): Adjust.
2928         * gimple-match-head.c: Include gimplify.h for unshare_expr.
2929         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
2930         last change and instead change to
2931         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
2932         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
2934 2016-03-22  Anthony Green  <green@moxielogic.com>
2936         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
2937         issue for moxiebox targets.
2938         (CC1PLUS_SPEC): Ditto.
2940 2016-03-22  Richard Biener  <rguenther@suse.de>
2942         PR middle-end/70333
2943         * fold-const.c (extract_muldiv_1): Properly perform multiplication
2944         in the wide type.
2946 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
2948         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
2950 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
2952         PR target/70325
2953         * config/i386/i386.c (def_builtin): Handle
2954         OPTION_MASK_ISA_AVX512VL to be and-ed with other
2955         bits.
2956         (const struct builtin_description bdesc_special_args[]):
2957         Remove duplicate ISA bits.
2959 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
2961         PR target/70329
2962         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
2963         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
2964         in a way that works also for AVX512BW.
2966         PR target/70300
2967         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
2968         instead of source if operands[1] is xmm16 and above and
2969         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
2970         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
2972         PR c++/70295
2973         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
2974         on assign if (*from_p) is a comparison, set it to
2975         TREE_NO_WARNING (*from_p).
2977 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
2979         PR middle-end/70326
2980         * lra.c (restore_scratches): Ignore deleted insns.
2982 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
2983             Jakub Jelinek  <jakub@redhat.com>
2985         PR tree-optimization/70317
2986         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
2987         to HONOR_NANS.
2989 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
2991         PR target/70327
2992         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
2993         of ix86_expand_move.
2994         (movoi): Ditto.
2995         (movti): Use general_operand for operand 1 predicate.
2997 2016-03-21  Martin Liska  <mliska@suse.cz>
2999         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
3000         insns.
3001         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
3003 2016-03-21  Martin Liska  <mliska@suse.cz>
3005         PR ipa/70306
3006         * ipa-icf.c (sem_function::parse): Skip static
3007         constructors and destructors.
3009 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
3011         PR target/70296
3012         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
3013         function-like macro, peek following token(s) if it is followed
3014         by CPP_OPEN_PAREN token with optional padding in between, and
3015         if not, don't treat it like a macro.
3017 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
3018             Alexander Monakov  <amonakov@ispras.ru>
3020         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
3021         for the stabs debug format.
3023 2016-03-21  Richard Biener  <rguenther@suse.de>
3025         PR tree-optimization/70310
3026         * tree-vect-generic.c (expand_vector_condition): Fold the built
3027         condition.
3029 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3031         PR target/70293
3032         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
3033         Block third alternative for AVX-512VL target,
3035 2016-03-21  Martin Liska  <mliska@suse.cz>
3037         PR hsa/70234
3038         * hsa-brig.c (emit_function_directives): Mark unemitted
3039         global variables for emission.
3040         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
3041         (get_symbol_for_decl): Likewise.
3042         * hsa.h (struct hsa_symbol): New flag.
3044 2016-03-21  Richard Biener  <rguenther@suse.de>
3046         PR tree-optimization/70288
3047         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
3048         we do not estimate unsimplified all-constant conditionals or
3049         switches as optimized away.
3051 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
3053         PR rtl-optimization/69102
3054         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
3055         when we have a readonly dependency context.
3057 2016-03-18  Jeff Law  <law@redhat.com>
3059         PR rtl-optimization/70263
3060         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
3061         (update_equiv_regs): When trying to move a store to after the insn
3062         that sets the source of the store, make sure the store occurs after
3063         the insn that sets the source of the store.  When successful note
3064         the REG_EQUIV note created in the dump file.
3066 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
3067             Bernd Schmidt  <bschmidt@redhat.com>
3069         * doc/extend.texi: Document more potential problems with basic asms.
3071 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
3073         PR rtl-optimization/70278
3074         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
3075         VOIDmode.
3077 2016-03-18  Jason Merrill  <jason@redhat.com>
3079         * calls.c (load_register_parameters): Fix zero size sibcall logic.
3081 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
3083         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
3084         values to 128b regs.
3086 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
3088         PR tree-optimization/70252
3089         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
3090         boolean vector has a proper number of elements.
3091         (supportable_narrowing_operation): Likewise.
3093 2016-03-18  Tom de Vries  <tom@codesourcery.com>
3095         PR ipa/70269
3096         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
3098 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
3100         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
3101         instead of replace_rtx for DEBUG_INSNs.
3103 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3105         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
3106         load type reservations.
3108 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
3110         PR target/70188
3111         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
3112         define_constraint for "Q" and "T" constraints.
3114 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
3116         Tweak the pipeline model for Exynos M1
3118         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
3119         model.
3121 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
3123         PR c/70264
3124         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
3125         where one or both locations aren't within a line_map.
3127 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
3129         PR driver/70192
3130         * opts.c (finish_options): Don't set flag_pie to the default if
3131         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
3132         if it is -1.
3134 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
3136         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
3137         true as ALL_REGS argument to replace_rtx.
3139 2016-03-17  Richard Biener  <rguenther@suse.de>
3141         PR debug/70271
3142         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
3143         last.
3145 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
3147         PR target/70245
3148         * rtl.h (replace_rtx): Add ALL_REGS argument.
3149         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
3150         equality and assert mode is the same, instead of just rtx pointer
3151         equality.
3152         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
3153         true as ALL_REGS argument to replace_rtx.
3155 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
3157         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
3158         for boolean vector with vector mode only.
3159         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
3161 2016-03-17  Nick Clifton  <nickc@redhat.com>
3163         PR target/70162
3164         * config/rx/rx.c (rx_print_integer): Print negative constants in
3165         decimal.
3167 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
3169         PR target/70261
3170         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
3172 2016-03-16  Richard Henderson  <rth@redhat.com>
3173             Richard Biener  <rguenth@suse.de>
3175         PR middle-end/70240
3176         PR middle-end/68215
3177         PR tree-opt/68714
3178         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
3179         first operand as is_gimple_condexpr.
3181         PR middle-end/70240
3182         PR middle-end/68215
3183         Revert r231575
3184         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
3185         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
3186         Do not gimplify the result.
3187         (do_unop): Adjust call to tree_vec_extract.
3188         (do_binop): Likewise.
3189         (do_compare): Likewise.
3190         (do_plus_minus): Likewise.
3191         (do_negate): Likewise.
3192         (expand_vector_condition): Likewise.
3193         (do_cond): Likewise.
3195 2016-03-16  Richard Henderson  <rth@redhat.com>
3197         PR target/70048
3198         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
3199         (aarch64_classify_address): Use it.
3200         (aarch64_legitimize_address): Force all subexpressions of PLUS
3201         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
3203 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
3204             Richard Biener  <rguenth@suse.de>
3206         PR target/70245
3207         * rtlanal.c (replace_rtx): For REG, if from is a REG,
3208         return to even if only REGNO is equal, and assert
3209         mode is the same.
3211 2016-03-11  Jeff Law  <law@redhat.com>
3213         PR rtl-optimization/70224
3214         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
3216 2016-03-16  Richard Henderson  <rth@redhat.com>
3218         PR middle-end/70199
3219         * function.h (struct function): Add has_forced_label_in_static.
3220         * gimplify.c (force_labels_r): Set it.
3221         * lto-streamer-in.c (input_struct_function_base): Read it.
3222         * lto-streamer-out.c (output_struct_function_base): Write it.
3223         * tree-inline.c (has_label_address_in_static_1): Remove.
3224         (copy_forbidden): Remove fndecl parameter; test
3225         has_forced_label_in_static.
3226         (inline_forbidden_p): Update call to copy_forbidden.
3227         (tree_versionable_function_p): Likewise.
3228         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
3229         (chkp_versioning): Likewise.
3230         * tree-inline.h (copy_forbidden): Update decl.
3232 2016-03-16  Marek Polacek  <polacek@redhat.com>
3234         PR c/70093
3235         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
3236         function being thunked if the result type doesn't have fixed size.
3237         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
3238         doesn't have fixed size.
3240 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
3242         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
3243         reporting malformed loop nest.
3245 2016-03-16  Tom de Vries  <tom@codesourcery.com>
3247         PR lto/70187
3248         * ipa-devirt.c (possible_polymorphic_call_targets): Move
3249         nodes.length () == 1 test to before first nodes[0] access.
3251 2016-03-16  Tom de Vries  <tom@codesourcery.com>
3253         PR tree-optimization/68715
3254         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
3255         single_pred_p test.
3257 2016-03-16  Tom de Vries  <tom@codesourcery.com>
3259         PR tree-optimization/68809
3260         * graphite-scop-detection.c (same_close_phi_node): Test if result types
3261         are the same.
3263 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
3264             Sandra Loosemore  <sandra@codesourcery.com>
3266         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
3267         on leaf attribute. Mention ELF interposition problems.
3269 2016-03-16  Alan Modra  <amodra@gmail.com>
3271         PR rtl-optimization/69195
3272         PR rtl-optimization/47992
3273         * ira.c (indirect_jump_optimize): Ignore artificial defs.
3274         Add comments.
3276 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
3278         PR bootstrap/69513
3279         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
3281 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3283         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
3285 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
3287         PR rtl-optimization/70222
3288         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
3289         optimization if mode is different from result_mode, queue up masking
3290         of the result in outer_op.  Formatting fix.
3292         PR middle-end/70239
3293         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
3294         of safe_grow.
3296 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
3298         PR rtl-optimization/69032
3299         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
3300         looping backwards over basic block insns.
3302 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
3304         PR target/66660
3305         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
3306         to non-speculative when propagating trap bits.
3308 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
3310         PR rtl-optimization/63384
3311         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
3312         DEBUG_INSN_P insns.
3314 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
3316         PR target/64411
3317         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
3318         factored out from ...
3319         (sched_analyze_insn): ... here.
3320         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
3321         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
3322         get_implicit_reg_pending_clobbers in it.
3323         (setup_id_reg_sets): Use setup_id_implicit_regs.
3324         (deps_init_id): Ditto.
3326 2016-03-15  Tom de Vries  <tom@codesourcery.com>
3328         PR ipa/70161
3329         * cgraph.c (cgraph_node::get_body): Save, reset and restore
3330         dump_file_name.
3331         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
3332         execute_function_dump.
3333         (execute_one_pass): Don't dump function if it will be dumped after ipa
3334         transform.
3336 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
3338         * genrecog.c (match_pattern_2): If pred is NULL don't call
3339         safe_predicate_mode on it.
3341 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
3343         PR middle-end/70219
3344         * lra-constraints.c (delete_move_and_clobber): Change assertion
3345         to also allow dregno == 0.
3347 2016-03-14  Richard Henderson  <rth@redhat.com>
3349         PR tree-opt/68714
3350         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
3351         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
3352         (reassociate_bb): Use optimize_vec_cond_expr; avoid
3353         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
3354         on vectors.
3356 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
3358         PR target/70083
3359         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
3360         regs.
3361         (lra_create_live_ranges_1): initialize hard register biggest_mode to
3362         VOIDmode.
3363         * lra-constraints.c (split_reg): For hard regs, try to find the
3364         biggest single-register mode used in the function.
3366 2016-03-14  Richard Biener  <rguenther@suse.de>
3368         PR tree-optimization/56365
3369         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
3370         constants to compare against.
3372 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
3374         PR target/70098
3375         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
3376         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
3377         (define_split for the GPR case): Use int_reg_operand instead of
3378         gpc_reg_operand for the output.
3380 2016-03-14  Tom de Vries  <tom@codesourcery.com>
3382         PR tree-optimization/70045
3383         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
3384         create_empty_if_region_on_edge argument.
3386 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
3388         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
3389         (STACK_CHECK_PROTECT): Likewise.
3390         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
3391         (STACK_CHECK_PROTECT): Likewise.
3392         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
3393         (STACK_CHECK_PROTECT): Likewise.
3394         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
3395         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
3396         (STACK_CHECK_PROTECT): Likewise.
3398 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
3400         PR rtl-optimization/69307
3401         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
3402         registers in modes that span more than one register.
3404 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
3406         PR target/69614
3407         * lra-constraints.c (delete_move_and_clobber): New.
3408         (remove_inheritance_pseudos): Use it.
3410 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
3412         PR ada/70017
3413         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
3414         the libcall is LCT_THROW.
3415         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
3416         for the checking routine.
3418 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
3420         PR target/70131
3421         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
3422         optimization if we have direct move.
3423         (roundu32<mode>2_fprs): Likewise.
3425 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
3427         PR target/70123
3428         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
3429         be rematerialized.
3430         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
3431         Arguments swapped.  All callers changed.  Take reg_renumber into
3432         account, and Calculate and compare register ranges for hard regs.
3434 2016-03-11  Jeff Law  <law@redhat.com>
3436         PR tree-optimization/70190
3437         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
3438         Handle cases where we can not extract the taken edge, even though we
3439         found a constant value.
3441         PR tree-optimization/64058
3442         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
3443         (num_coalesce_pairs): Move up earlier in file.
3444         (find_coalesce_pair): Initialize the INDEX field for each pair
3445         discovered.
3446         (compare_pairs): No longer sort on the elements in each pair.
3447         Instead break ties with the index of the coalesce pair.
3449 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3451         PR target/70002
3452         * config/aarch64/aarch64-protos.h
3453         (aarch64_save_restore_target_globals): New prototype.
3454         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
3455         Call the above when popping pragma.
3456         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
3457         New function.
3458         (aarch64_set_current_function): Rewrite using the above.
3460 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
3462         PR tree-optimization/70177
3463         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
3464         (extract_ops_from_tree): ... this.  In the 2 argument
3465         overload remove _1 suffix.
3466         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
3467         (extract_ops_from_tree): ... this.
3468         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
3469         Adjust callers.
3470         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
3471         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
3472         extract_ops_from_tree instead of 2 operand one.
3474 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
3476         PR tree-optimization/70013
3477         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
3478         for constant-pool entries.
3480 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
3482         PR rtl-optimization/70174
3483         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
3484         followed by gen_lowpart on force_reg instead of just gen_lowpart.
3486         PR tree-optimization/70169
3487         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
3488         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
3489         for unknown codes.
3491 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
3492             Jakub Jelinek  <jakub@redhat.com>
3494         PR target/70160
3495         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
3496         of uninitialized values.
3498 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3500         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
3501         define_expand.
3502         ("*trunctddd2"): New pattern definition.
3503         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
3504         TD->DD truncation.
3506 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3508         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
3509         definitions for BFP and DFP rounding modes.
3510         ("fixuns_truncdddi2", "fixuns_trunctddi2")
3511         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
3512         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
3513         ("fix_trunctf<mode>2"): Use the new constants instead of magic
3514         numbers.
3516 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3518         * config/s390/constraints.md: Adjust comment.
3519         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
3520         s390_decompose_addrstyle_without_index.
3521         * config/s390/predicates.md (shift_count_or_setmem_operand):
3522         Rename to setmem_operand.
3523         * config/s390/s390-protos.h
3524         (s390_decompose_shift_count): Rename to
3525         s390_decompose_addrstyle_without_index.
3526         * config/s390/s390.c (s390_decompose_shift_count)
3527         (s390_mem_constraint, print_shift_count_operand)
3528         (print_operand_address, print_operand): Rename
3529         s390_decompose_shift_count to
3530         s390_decompose_addrstyle_without_index and rename
3531         print_shift_count_operand to print_addrstyle_operand troughout the
3532         file.
3533         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
3534         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
3535         Rename shift_count_or_setmem_operand to setmem_operand.
3536         * config/s390/vx-builtins.md ("vec_insert<mode>")
3537         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
3538         nonmemory_operand.
3540 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3542         PR target/70168
3543         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
3544         Handle overlapping retval and newval.
3546 2016-03-10  Nick Clifton  <nickc@redhat.com>
3548         PR target/7044
3549         * config/aarch64/aarch64.c
3550         (aarch64_override_options_after_change_1): When forcing
3551         flag_omit_frame_pointer to be true, use a special value that can
3552         be detected if this function is called again, thus preventing
3553         flag_omit_leaf_frame_pointer from being forced to be false.
3555 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3557         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
3558         Set x_flag_omit_leaf_frame_pointer when handling
3559         -momit-leaf-frame-pointer.
3561 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3563         PR lto/69589
3564         * cgraph.c (cgraph_node::dump): Dump split_part and
3565         indirect_call_target.
3566         * cgraph.h (cgraph_node): Add indirect_call_target flag.
3567         * ipa.c (has_addr_references_p): Cleanup.
3568         (is_indirect_call_target_p): New.
3569         (walk_polymorphic_call_targets): Do not mark virtuals that may be
3570         called indirectly as local.
3571         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
3573 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3575         PR ipa/69630
3576         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
3577         on cxa_pure_virtual.
3579 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3581         PR lto/69589
3582         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
3584 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
3586         PR lto/69589
3587         * tree.c (need_assembler_name_p): Only record main variant type names.
3589 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
3591         PR target/70113.
3592         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
3593         Always define to 0 or 1.
3594         (TARGET_FIX_ERR_A53_843419): New macro.
3595         * config/aarch64/aarch64-elf-raw.h
3596         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
3597         * config/aarch64/aarch64-linux.h: Likewise.
3598         * config/aarch64/aarch64.c
3599         (aarch64_override_options_after_change_1): Do not default
3600         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
3601         843419 is on.
3602         (aarch64_attributes): Handle fix-cortex-a53-843419.
3603         (aarch64_can_inline_p): Likewise.
3604         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
3606 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
3607         Jakub Jelinek <jakub@redhat.com>
3609         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
3610         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
3611         DECL_COMMONS if flag_unconstrained_commons is set.
3612         * tree-dfa.c (get_ref_base_and_extent): Likewise.
3613         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
3614         (funconstrained-commons): Document.
3616 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
3618         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
3619         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
3621 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
3623         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
3624         has a proper number of elements.
3626 2016-03-10  Alan Modra  <amodra@gmail.com>
3628         PR rtl-optimization/69195
3629         PR rtl-optimization/47992
3630         * ira.c (recorded_label_ref): Delete.
3631         (update_equiv_regs): Return void.
3632         (indirect_jump_optimize): New function.
3633         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
3634         before regstat_compute_ri.  Don't rebuild_jump_labels here.
3635         Delete update_regstat.
3637 2016-03-10  Richard Biener  <rguenther@suse.de>
3639         PR tree-optimization/70128
3640         * tree-ssa-structalias.c (set_uids_in_ptset): Set
3641         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
3643 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
3645         PR tree-optimization/70152
3646         * tree-sra.c (replace_removed_params_ssa_names): Copy over
3647         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
3649         PR target/70086
3650         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
3651         instead of gen_sse2_loadlpd.
3652         * config/i386/sse.md (*vec_concatv2df): Rename to...
3653         (vec_concatv2df): ... this.
3655         PR tree-optimization/70127
3656         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
3658 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
3660         PR c/68473
3661         PR c++/70105
3662         * diagnostic-show-locus.c (compatible_locations_p): New function.
3663         (layout::layout): Sanitize ranges using compatible_locations_p.
3665 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
3667         PR c/68473
3668         PR c++/70105
3669         * diagnostic-show-locus.c (layout_range::layout_range): Replace
3670         location_range param with three const expanded_locations * and a
3671         bool.
3672         (layout::layout): Replace call to
3673         rich_location::lazily_expand_location with get_expanded_location.
3674         Extract the range and perform location expansion here, passing
3675         the results to the layout_range ctor.
3676         * diagnostic.c (source_range::debug): Delete.
3677         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
3678         of rich_location::get_expanded_location.
3679         * gcc-rich-location.c (get_range_for_expr): Delete.
3680         (gcc_rich_location::add_expr): Reimplement to avoid the
3681         rich_location::add_range overload that took a location_range,
3682         passing a location_t instead.
3684 2016-03-09  Richard Biener  <rguenther@suse.de>
3685         Jakub Jelinek  <jakub@redhat.com>
3687         PR tree-optimization/70138
3688         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
3689         Also skip vect_double_reduction_def.
3691 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
3693         PR target/70049
3694         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
3695         if the operand is "m".
3697 2016-03-09  Nathan Sidwell  <nathan@acm.org>
3699         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
3701 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3703         * config/i386/i386.c (processor_target_table): Fix cost table
3704         intialization order for znver1.
3706 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
3708         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
3709         - becuase -> because.
3710         * ipa-reference.c (ignore_module_statics): Likewise.
3711         * cgraph.c (cgraph_node::get_body): Likewise.
3712         * ipa-inline.c (early_inliner): Likewise.
3713         * ipa-devirt.c (types_same_for_odr): Likewise.
3714         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
3715         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
3717 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3719         * tree-ssa-math-opts.c: Fix typo in comment.
3721 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
3723         PR target/70110
3724         * config/i386/i386.c (scalar_chain::make_vector_copies,
3725         scalar_chain::convert_reg): Call end_sequence in between
3726         get_insns and emit_conversion_insns rather than after both
3727         calls.
3729 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
3731         PR target/70064
3732         * config/i386/i386.h (machine_function): Add
3733         pc_thunk_call_expanded flag.
3734         (ix86_pc_thunk_call_expanded): New define.
3735         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
3736         (*set_got): Rename insn pattern from set_got.
3737         (*set_got_labelled): Rename inst pattern from set_got_labelled.
3738         * config/i386/i386.c (ix86_compute_frame_layout): Use
3739         ix86_pc_thunk_call_expanded to prevent red-zone.
3741 2016-03-07  Martin Jambor  <mjambor@suse.cz>
3743         * hsa.h (hsa_get_ctor_statements): Declare.
3744         (hsa_get_dtor_statements): Likewise.
3745         (hsa_get_kernel_dispatch_type): Likewise.
3746         * hsa.c (hsa_get_ctor_statements): New function.
3747         (hsa_get_dtor_statements): Likewise.
3748         (hsa_get_kernel_dispatch_type): Likewise.
3749         * hsa-brig.c (hsa_cdtor_statements): Removed.
3750         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
3751         hsa_get_dtor_statements.
3752         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
3753         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
3755 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3757         * config/arm/arm-cores.def (cortex-r8): New.
3758         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
3759         * config/arm/arm-tune.md: Likewise.
3760         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
3762 2016-03-07  Martin Sebor  <msebor@redhat.com>
3764         PR rtl-optimization/19705
3765         * doc/invoke.texi (Options That Control Optimization): Clarify
3766         -fno-branch-count-reg.
3768 2016-02-26  Richard Biener  <rguenther@suse.de>
3769             Jeff Law  <law@redhat.com>
3771         PR tree-optimization/69740
3772         * cfghooks.c (remove_edge): Request loop fixups if we delete
3773         an edge that might turn an irreducible loop into a natural
3774         loop.
3775         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
3776         Move after definition of loops_state_clear.
3778 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
3780         PR rtl-optimization/69052
3781         * rtlanal.c (commutative_operand_precedence): Set higher precedence
3782         to CONST_WIDE_INT.
3784 2016-03-07  Tom de Vries  <tom@codesourcery.com>
3786         PR tree-optimization/70116
3787         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
3788         is_tm_ending stmts and ubsan/asan internal functions.
3789         (find_duplicate): Use it.  Don't test is_tm_ending here.
3791 2016-03-07  Richard Biener  <rguenther@suse.de>
3793         PR tree-optimization/70115
3794         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
3795         (propagate_constants_for_unrolling): Use replace_uses_by.
3797 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
3799         PR middle-end/69916
3800         * omp-low.c (struct oacc_loop): Add ifns.
3801         (new_oacc_loop_raw): Initialize it.
3802         (finish_oacc_loop): Clear mask & flags if no ifns.
3803         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
3804         (oacc_loop_xform_loop): Add ifns arg & adjust.
3805         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
3807 2016-03-07  Richard Henderson  <rth@redhat.com>
3809         PR rtl-opt/70061
3810         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
3811         (insert_value_copy_on_edge): Likewise.
3813 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3815         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
3817 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3819         PR target/62281
3820         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
3822 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
3824         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
3826 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
3828         Fix sseimul type attribute.
3829         * config/i386/znver1.md
3830         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
3831         znver1_sseimul_avx256_load) : Fix the type attribute.
3832         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
3833         pipe usage and latency.
3835 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
3837         PR c++/70084
3838         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
3839         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
3840         to the right type.
3842 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
3844         PR c/69973
3845         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
3847         PR rtl-optimization/69941
3848         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
3849         the reg share its mode.
3851 2016-03-04  Jeff Law  <law@redhat.com>
3853         PR tree-optimization/69196
3854         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
3855         If the both SSA_NAMEs are anonymous, then consider them unassociated
3856         and include the PHI in the statement count.
3858 2016-03-05  Tom de Vries  <tom@codesourcery.com>
3860         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
3861         construct in oacc routine.  Check for oacc region in oacc routine.
3863 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
3865         PR target/70062
3866         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
3867         2016-02-22 changes, instead don't recurse if RECUR is already true.
3868         Don't change *dynamic_check if RECUR.  Adjust recursive caller
3869         to pass true to the new argument.
3870         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
3872         PR target/70059
3873         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3874         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
3875         fixes.
3876         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
3878 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
3880         PR rtl-optimization/57676
3881         * lra-assigns.c (lra_assign): Guard test for maximum iterations
3882         with flag_checking.
3884 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
3886         * tree-vect-patterns.c (search_type_for_mask): Handle
3887         comparison of booleans.
3889 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
3891         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
3892         Fix @xref usage.
3894         PR debug/69947
3895         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
3896         all other ops that have dw_val_class_die_ref operands,
3897         and DW_OP_GNU_entry_value.
3899 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3901         PR rtl-optimization/69904
3902         * config/arm/arm.c (arm_cannot_copy_insn_p):
3903         Return true for load-exclusive instructions.
3905 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
3907         PR target/70021
3908         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
3909         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
3910         the pattern no matter if it is used just by non-pattern, pattern
3911         or mix thereof.
3912         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
3913         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
3914         oprnd1 def_stmt is in pattern, don't look through it.
3916 2016-03-03  Marek Polacek  <polacek@redhat.com>
3918         PR middle-end/70050
3919         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
3921 2016-03-03  Martin Liska  <mliska@suse.cz>
3923         PR tree-optimization/70043
3924         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
3925         previous statement if we see a debug statement.
3927 2016-03-03  Richard Biener  <rguenther@suse.de>
3929         PR tree-optimization/55936
3930         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
3931         parameter and guard unsafe equivalence use.
3932         (vrp_evaluate_conditional_warnv_with_ops): Always use
3933         safe equivalences but not via the quadratic compare_names
3934         helper.
3936 2016-03-03  Michael Collison  <michael.collison@linaro.org>
3938         PR target/70014
3939         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
3940         for operand 1 to s_register_operand. Change predicate for operand
3941         2 to arm_not_immediate_operand.
3943 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
3945         * doc/tm.texi: Regenerated.
3947 2016-03-02  Richard Henderson  <rth@redhat.com>
3949         PR rtl-opt/67145
3950         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
3951         simplification when all args are positive non-fixed registers.
3953 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3955         * target.def (lra_p): Specify that new ports should use LRA.
3957 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
3959         PR libgomp/69555
3960         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
3961         gimplify_type_sizes the type they refer to.
3962         (omp_notice_variable): Handle reference vars to VLAs.
3963         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
3964         reference to VLA decls in the second pass instead of first pass.
3966 2016-03-02  Tom de Vries  <tom@codesourcery.com>
3968         PR tree-optimization/68659
3969         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
3970         new_expr == NULL_TREE.
3971         (get_new_name): Handle ADDR_EXPR.
3973 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
3975         PR rtl-optimization/69052
3976         * loop-invariant.c (canonicalize_address): New function.
3977         (inv_can_prop_to_addr_use): Check validity of address expression
3978         which is canonicalized by above function.
3980 2016-03-02  Alan Modra  <amodra@gmail.com>
3982         PR ipa/69990
3983         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
3984         larger alignment.
3986 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
3988         PR target/70028
3989         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
3990         (*movhi_internal): Put mask moves from and to memory separately
3991         from moves from/to GPRs.
3993 2016-03-02  Richard Biener  <rguenther@suse.de>
3995         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
3996         GENERIC expressions in GIMPLE.
3998 2016-03-02  Richard Biener  <rguenther@suse.de>
4000         * config/i386/i386.c (type_natural_mode): Fix typo.
4002 2016-03-02  Nick Clifton  <nickc@redhat.com>
4004         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
4006 2016-03-02  Richard Biener  <rguenther@suse.de>
4007             Uros Bizjak  <ubizjak@gmail.com>
4009         PR target/67278
4010         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
4012 2016-03-02  Richard Biener  <rguenther@suse.de>
4014         PR middle-end/67278
4015         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
4017 2016-03-02  Marek Polacek  <polacek@redhat.com>
4019         PR c/67854
4020         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
4021         "is promoted to" warning.
4023 2016-03-01  DJ Delorie  <dj@redhat.com>
4025         * config.gcc: Deprecate mep-*.
4027 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
4029         PR middle-end/70025
4030         * lra-constraints.c (regno_val_use_in): New.
4031         (match_reload): Use it instead of regno_use_in.
4033 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
4035         PR rtl-optimization/70007
4036         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
4037         references present in REG_EQUAL notes attached to non-SET patterns.
4039 2016-03-01  Jeff Law  <law@redhat.com>
4041         PR tree-optimization/69196
4042         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4043         Appropriately clamp the number of statements to copy when the
4044         thread path does not traverse a loop backedge.
4046         PR tree-optimization/69196
4047         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4048         Do count some PHIs in the thread path against the insn count.  Decrease
4049         final statement count by one as the control statement in the last
4050         block will get removed.  Remove special cased code for handling PHIs
4051         in the last block.
4053 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
4055         PR target/70027
4056         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
4057         asm dialect alternatives to explicit GOTPCREL calls.
4059 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
4061         PR ada/70017
4062         * ira.c (do_reload): Issue warning for generic stack checking here...
4063         * reload1.c (reload): ...instead of here and streamline it.
4065 2016-03-01  Nick Clifton  <nickc@redhat.com>
4067         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
4069 2016-03-01  Richard Biener  <rguenther@suse.de>
4071         PR tree-optimization/69983
4072         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
4073         types and fall back to operand_equal_p.
4075 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4077         Revert
4078         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4080         * config/s390/constraints.md ("jm8"): New constraint.
4081         * config/s390/predicates.md ("const_int_8bitset_operand"): New
4082         predicate.
4083         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
4084         into ...
4085         ("*setmem_long<setmem_and>"): New pattern.
4086         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
4087         into ...
4088         ("*setmem_long_31z<setmem_and>"): New pattern.
4089         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
4090         New substitution rules with the required attributes.
4093 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4095         Revert
4096         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4098         * gensupport.c (process_substs_on_one_elem): Split loop to
4099         complete mark_operands_used_in_match_dup on all expressions in the
4100         vector first.
4101         (adjust_operands_numbers): Inline into process_substs_on_one_elem
4102         and remove function.
4104 2016-03-01  Richard Biener  <rguenther@suse.de>
4106         PR middle-end/70022
4107         * fold-const.c (fold_indirect_ref_1): Fix range checking for
4108         vector BIT_FIELD_REF extract.
4110 2016-03-01  Richard Biener  <rguenther@suse.de>
4112         PR tree-optimization/69994
4113         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
4115 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
4117         PR tree-optimization/69956
4118         * tree-vect-stmts.c (supportable_widening_operation): Support
4119         multi-step conversion of boolean vectors.
4120         (supportable_narrowing_operation): Likewise.
4122 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4124         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
4125         anymore.
4127 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4129         * config/s390/subst.md (DSI_VI): New mode iterator.
4130         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
4131         * config/s390/vector.md ("vec_set<mode>"): Move expander before
4132         the insn definition.
4133         ("*vec_set<mode>"): Change predicate and add alternative to
4134         support only either register or const_int operands as element
4135         selector.
4136         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
4137         operands.
4138         ("vec_extract<mode>"): New expander.
4139         ("*vec_extract<mode>"): New insn definition supporting reg and
4140         const_int element selectors.
4141         ("*vec_extract<mode>_plus"): New insn definition supporting
4142         reg+const_int element selectors.
4143         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
4144         following expander+insn definition.
4145         ("<vec_shifts_name><mode>3"): New expander.
4146         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
4148 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4150         * config/s390/s390.md ("*tabort_1"): Change predicate to
4151         nonmemory_operand.  Add a second alternative to cover
4152         register as well as const int operands.
4153         ("*tabort_1_plus"): New pattern definition.
4155 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4157         * config/s390/s390.md ("*ashrdi3_cc_31")
4158         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
4159         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
4160         Merge insn definitions into ...
4161         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
4162         New pattern definition.
4163         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
4164         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
4165         ("*ashr<mode>3_and"): Merge insn definitions into ...
4166         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
4167         New pattern definition.
4168         * config/s390/subst.md ("addr_style_op_cc_subst")
4169         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
4170         substitutions patterns plus attributes.
4171         Add ashiftrt to SUBST iterator.
4173 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4175         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
4176         op2 to nonmemory_operand.
4177         ("*<shift>di3_31", "*<shift>di3_31_and"):
4178         Merge into single pattern definition ...
4179         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
4180         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
4181         pattern definition ...
4182         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
4183         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
4184         iterator.
4186 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4188         * config/s390/predicates.md (const_int_6bitset_operand): New
4189         predicate.
4190         * config/s390/s390.md: Include subst.md.
4191         ("rotl<mode>3"): New expander.
4192         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
4193         ...
4194         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
4195         * config/s390/subst.md: New file.
4197 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4199         * config/s390/s390.md ("op_type", "atype", "length" attributes):
4200         Remove RRR type.  It doesn't really exist.
4201         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
4202         attributes.
4203         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
4204         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
4205         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
4206         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
4207         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
4208         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
4209         `enabled' attribute.
4211 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4213         * gensupport.c (process_substs_on_one_elem): Split loop to
4214         complete mark_operands_used_in_match_dup on all expressions in the
4215         vector first.
4216         (adjust_operands_numbers): Inline into process_substs_on_one_elem
4217         and remove function.
4219 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
4221         PR target/69706
4222         * config/sparc/sparc.c (NWORDS_UP): Rename to...
4223         (CEIL_NWORDS): ...this.  Use CEIL macro.
4224         (compute_fp_layout): Adjust to above renaming.
4225         (function_arg_union_value): Likewise.
4226         (sparc_arg_partial_bytes): Likewise.
4227         (sparc_function_arg_advance): Likewise.
4229 2016-02-29  Jeff Law  <law@redhat.com>
4231         PR tree-optimization/70005
4232         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
4233         where an object with a boolean range is compared against a value
4234         outside [0..1].
4236         PR tree-optimization/69999
4237         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
4238         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
4239         loop cleanups.
4241 2016-02-29  Richard Biener  <rguenther@suse.de>
4243         PR tree-optimization/69994
4244         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
4245         (get_unary_op): Look through nop conversions.
4246         (ops_equal_values_p): New function, look for equality diregarding
4247         nop conversions.
4248         (eliminate_plus_minus_pair): Use ops_equal_values_p
4249         (repropagate_negates): Do not use get_unary_op here.
4251 2016-02-29  Martin Liska  <mliska@suse.cz>
4253         * system.h: Poison ENABLE_CHECKING macro.
4255 2016-02-29  Martin Liska  <mliska@suse.cz>
4257         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
4258         is presented in dump flags.
4259         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
4260         (hsa_regalloc): Likewise.
4262 2016-02-19  Richard Biener  <rguenther@suse.de>
4264         PR tree-optimization/69980
4265         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
4266         permutation of those we need to keep.
4268 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
4270         PR target/69706
4271         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
4272         (NWORDS_UP): ...this
4273         (init_cumulative_args): Minor tweaks.
4274         (sparc_promote_function_mode): Likewise.
4275         (scan_record_type): Delete.
4276         (traverse_record_type): New function template.
4277         (classify_data_t): New structure type.
4278         (classify_registers): New inline function.
4279         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
4280         exhausted.  Instantiate traverse_record_type on classify_registers and
4281         deal with the case of a structure passed in slot #15 with no FP field
4282         in the first word.
4283         (assign_data_t): New structure type.
4284         (compute_int_layout): New static function.
4285         (compute_fp_layout): Likewise.
4286         (count_registers): New inline function.
4287         (assign_int_registers): New static function.
4288         (assign_fp_registers): Likewise.
4289         (assign_registers): New inline function.
4290         (function_arg_record_value_1): Delete.
4291         (function_arg_record_value_2): Likewise.
4292         (function_arg_record_value_3): Likewise.
4293         (function_arg_record_value): Adjust to above changes.  Instantiate
4294         traverse_record_type on count_registers to first count the number of
4295         registers to be used and then on assign_registers to assign them.
4296         (function_arg_union_value): Adjust to above renaming.
4297         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
4298         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
4299         case of a structure passed in slot #15
4300         (sparc_function_arg_advance): Likewise.
4301         (function_arg_padding): Minor tweak.
4303 2016-02-29  Richard Biener  <rguenther@suse.de>
4305         PR tree-optimization/69720
4306         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
4307         the adjustment_def path for possibly vectorized defs.
4308         (vect_create_epilog_for_reduction): Handle vectorized initial
4309         defs properly.
4311 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
4313         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
4315 2016-02-27  Jeff Law  <law@redhat.com>
4317         Revert
4318         2016-02-26  Richard Biener  <rguenther@suse.de>
4319                     Jeff Law  <law@redhat.com>
4321         PR tree-optimization/69740
4322         * cfghooks.c (remove_edge): Request loop fixups if we delete
4323         an edge that might turn an irreducible loop into a natural
4324         loop.
4326 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
4328         PR rtl-optimization/69896
4329         * tree-vect-generic.c (get_compute_type): Avoid single element
4330         vector types.
4332 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
4334         Rename the AArch64 tuning option and related functions to enable the
4335         Newton series for the reciprocal square root to reflect its
4336         approximative characteristic.
4338         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
4339         function to "aarch64_emit_approx_rsqrt".
4340         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
4341         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
4342         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
4343         (xgene1_tunings): Likewise.
4344         (use_rsqrt_p): Likewise.
4345         (aarch64_emit_swrsqrt): Use new function name.
4346         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
4347         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
4348         text explaining this option.
4349         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
4351 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
4353         PR target/69969
4354         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4355         complain about -mallow-movmisalign without -mvsx if
4356         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
4358 2016-02-26  Joel Sherrill  <joel@rtems.org>
4360         * config.gcc: Add x86_64-*-rtems*.
4361         * gcc/config/i386/rtems-64.h: New file.
4363 2016-02-26  Joel Sherrill  <joel@rtems.org>
4365         * config.gcc: Add aarch64-*-rtems*.
4366         * gcc/config/aarch64/rtems.h: New file.
4368 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
4370         PR target/69946
4371         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
4372         shift amount using %h.  Add comment.
4374 2016-02-26  Richard Biener  <rguenther@suse.de>
4375             Jeff Law  <law@redhat.com>
4377         PR tree-optimization/69740
4378         * cfghooks.c (remove_edge): Request loop fixups if we delete
4379         an edge that might turn an irreducible loop into a natural
4380         loop.
4382 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4384         PR middle-end/69920
4385         * tree-sra.c (sra_modify_assign): Do not remove loads of
4386         uninitialized aggregates to SSA_NAMEs.
4388 2016-02-26  Richard Henderson  <rth@redhat.com>
4390         PR target/69709
4391         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
4392         pseudo in case the target rtx matches the source of the left
4393         shift.
4395 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4397         PR hsa/69568
4398         * hsa.h (hsa_type_packed_p): Declare.
4399         * hsa.c (hsa_type_packed_p): New function.
4400         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
4401         loads.
4402         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
4403         * hsa-brig.c (emit_basic_insn): Likewise.
4405 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4407         pr hsa/69674
4408         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
4409         pointers.
4410         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
4412 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4414         * hsa.h (is_a_helper): New overload for hsa_op_immed for
4415         hsa_op_with_type operands.
4416         (hsa_unsigned_type_for_type): Declare.
4417         * hsa.c (hsa_unsigned_type_for_type): New function.
4418         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
4419         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
4420         the finalizer.  Do not emit extra move.
4422 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4424         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
4425         atomic operations in private segment.
4427 2016-02-26  Martin Jambor  <mjambor@suse.cz>
4429         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
4430         statements to wi->info.  Also disallow omp simd constructs.
4431         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
4432         for not gridifying.  Dump special string for omp_for.
4434 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4436         PR target/69245
4437         * config/aarch64/aarch64.c (aarch64_set_current_function):
4438         Save/restore target globals when switching to
4439         target_option_default_node.
4441 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4443         PR target/69613
4444         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
4445         Return 0 if !SHIFT_COUNT_TRUNCATED.
4447 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
4448             Eric Botcazou  <ebotcazou@adacore.com>
4450         PR rtl-optimization/69891
4451         * dse.c (scan_insn): If we can't figure out memset arguments
4452         or they are non-constant, call clear_rhs_from_active_local_stores.
4454 2016-02-26  Martin Liska  <mliska@suse.cz>
4456         * doc/extend.texi: Mention clog10, clog10f an clog10l
4457         in Builtins section.
4459 2016-02-26  Martin Liska  <mliska@suse.cz>
4461         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
4462         CHECKING_P.
4463         (resolve_args_picking_1): Likewise.
4464         * dwarf2out.h (struct GTY): Likewise.
4466 2016-02-26  Martin Liska  <mliska@suse.cz>
4468         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
4469         with flag_checking.
4470         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
4472 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
4473             Martin Liska  <mliska@suse.cz>
4475         * doc/install.texi: Mention --enable-valgrind-annotations.
4477 2016-02-26  Richard Biener  <rguenther@suse.de>
4479         PR tree-optimization/69551
4480         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
4481         looking through aliases adjust DECL_PT_UID to refer to the
4482         ultimate alias target.
4484 2016-02-25  Martin Liska  <mliska@suse.cz>
4486         PR middle-end/69919
4487         * alloc-pool.c (after_memory_report): New variable.
4488         * alloc-pool.h (base_pool_allocator ::release): Do not use
4489         the infrastructure if after_memory_report.
4490         * toplev.c (toplev::main): Mark after memory report.
4492 2016-02-25  Richard Biener  <rguenther@suse.de>
4494         PR tree-optimization/48795
4495         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
4497 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
4499         PR driver/68463
4500         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
4501         offloading is enabled and -fopenacc or -fopenmp is specified.
4502         (CRTOFFLOADEND): Likewise.
4503         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
4504         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
4505         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
4506         (offload_objects_file_name): New static var.
4507         (tool_cleanup): Remove offload_objects_file_name file.
4508         (find_offloadbeginend): Replace with ...
4509         (find_crtoffloadtable): ... this.
4510         (run_gcc): Remove offload_argc and offload_argv.
4511         Get offload_objects_file_name from -foffload-objects=... option.
4512         Read names of object files with offload from this file, pass them to
4513         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
4514         don't pass offloadbegin and offloadend to the linker.  Don't pass
4515         offload non-LTO files to the linker, because now they're not claimed.
4517 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
4519         PR ipa/69630
4520         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
4521         on builtin_unreachable.
4523 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
4525         PR rtl-optimization/69896
4526         * regcprop.c: Include cfgrtl.h.
4527         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
4528         than remembered mode, either delete it (if noop_move_p), or
4529         treat like copy_p but not noop_p instruction.
4531 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
4533         PR debug/69705
4534         * dwarf2out.c (gen_variable_die): Work around buggy LTO
4535         - allow NULL decl for Fortran DW_TAG_common_block variables.
4537 2016-02-24  Jason Merrill  <jason@redhat.com>
4539         * common.opt (flifetime-dse): Add -flifetime-dse=1.
4541 2016-02-24  Richard Biener  <rguenther@suse.de>
4542             Jakub Jelinek  <jakub@redhat.com>
4544         PR middle-end/69760
4545         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
4546         conditionally executed ops to well-defined overflow behavior.
4548 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
4550         PR middle-end/69915
4551         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
4552         elements.
4554 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4556         PR rtl-optimization/69886
4557         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
4558         argument.  Use it when checking validity of set instructions.
4559         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
4560         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
4561         callsite.
4562         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
4563         * store-motion.c (find_moveable_store): Update
4564         can_assign_to_reg_without_clobbers_p callsite.
4566 2016-02-24  Richard Biener  <rguenther@suse.de>
4568         PR middle-end/68963
4569         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
4570         bogus check.
4571         (record_nonwrapping_iv): Do not fall back to the low/high bound
4572         for non-constant IV bases if the stmt is not always executed.
4574 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4576         * config/arm/arm-cores.def (cortex-a32): New entry.
4577         * config/arm/arm-tables.opt: Regenerate.
4578         * config/arm/arm-tune.md: Regenerate.
4579         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
4580         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
4581         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
4582         for -mcpu and -mtune.
4584 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4586         PR target/69875
4587         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
4588         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
4589         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
4590         (atomic_loaddi_1): Delete.
4591         (atomic_loaddi): Rewrite expander using the above changes.
4593 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
4595         PR c/69918
4596         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
4597         2 to 3.
4599 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
4600             Richard Biener  <rguenth@suse.de>
4602         PR middle-end/69909
4603         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
4604         set_mem_attributes if tem is SSA_NAME which got expanded
4605         as a MEM.
4607 2016-02-24  Richard Biener  <rguenther@suse.de>
4609         PR tree-optimization/69907
4610         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
4611         end of permutations for BB vectorization.
4613 2016-02-24  Christian Bruel  <christian.bruel@st.com>
4615         * config/arm/arm-c.c (arm_option_override): Initialize
4616         target_option_current_node.
4617         * config/arm/arm.c (arm_pragma_target_parse): Replace
4618         build_target_option_node call by target_option_current_node.
4619         Set target_option_current_node.
4620         Fix comments.
4622 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
4624         PR target/69810
4625         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
4626         define_insn_and_split to define_insn.
4627         (zero_extendqi<mode>2_dot2): Same.
4628         (extendqi<mode>2_dot): Same.
4629         (extendqi<mode>2_dot2): Same.
4631 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
4633         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
4634         and add bypass for AES{D,E} and AESMC pairs.
4635         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
4636         and AESMC pairs.
4638 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
4640         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
4641         series for reciprocal square root in Exynos M1.
4643 2016-02-23  Martin Sebor  <msebor@redhat.com>
4645         PR c/69759
4646         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
4647         __builtin_alloca_with_align.
4649 2016-02-23  Richard Henderson  <rth@redhat.com>
4651         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
4652         (ix86_register_pragmas): Remove __seg_tls.
4653         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
4654         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
4655         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
4656         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
4657         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
4658         * doc/extend.texi (__seg_tls): Remove item.
4660 2016-02-23  Richard Biener  <rguenther@suse.de>
4662         * alloc-pool.h (struct allocation_object): Make id member
4663         conditional on CHECKING_P again.
4664         (get_instance): Adjust.
4665         (base_pool_allocator): Likewise.
4667 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
4669         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
4670         (parallelize_loops): In OpenACC kernels mode, set n_threads to
4671         zero.
4672         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
4673         flag_openacc.
4674         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
4676 2016-02-23  Richard Biener  <rguenther@suse.de>
4678         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
4679         * bitmap.h (struct bitmap_usage): Likewise.
4680         (bitmap_move): Declare.
4681         * bitmap.c (register_overhead): Take size_t argument.
4682         (bitmap_move): New function.
4683         * df-problems.c (df_rd_transfer_function): Use bitmap_move
4684         to properly account overhead.
4685         * tree.c (free_node): Use tree_size.
4687 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
4689         PR c++/69902
4690         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
4691         when inverting comparison.
4693         PR c/69900
4694         * common.opt (Wunreachable-code): Add Warning flag.
4696 2016-02-23  Mark Wielaard  <mjw@redhat.com>
4697             Jakub Jelinek  <jakub@redhat.com>
4699         PR c/69911
4700         * cgraphunit.c (check_global_declaration): Check main_input_filename
4701         and DECL_SOURCE_FILE are not NULL.
4703 2016-02-23  Martin Jambor  <mjambor@suse.cz>
4705         PR tree-optimization/69666
4706         * tree-sra.c (sra_modify_assign): Do not attempt to create
4707         default_def replacements for unscalarizable regions.
4709 2016-02-20  Mark Wielaard  <mjw@redhat.com>
4711         PR c/28901
4712         * cgraphunit.c (check_global_declaration): Check level of
4713         warn_unused_const_variable and main_input_filename.
4714         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
4715         (-Wunused-variable): For C implies -Wunused-const-variable=1.
4716         (-Wunused-const-variable): Explain levels 1 and 2.
4718 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
4720         PR target/69888
4721         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
4722         identical arguments.  Formatting and spelling fixes.
4724         PR target/69885
4725         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
4726         be specified.
4728         PR target/69894
4729         PR target/69895
4730         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
4731         and m68k-devices.def.
4732         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
4733         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
4735 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
4737         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
4738         and HImode registers.
4740 2016-02-22  Richard Biener  <rguenther@suse.de>
4742         PR tree-optimization/69882
4743         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
4744         preserve permutations present because of gaps.
4745         (vect_supported_load_permutation_p): Always continue checking
4746         permutations after vect_attempt_slp_rearrange_stmts.
4748 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
4750         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
4751         min_profitable_estimate, rather than min_profitable_iters.
4753 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
4755         PR target/69885
4756         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
4757         SImode for last match_operand.
4759 2016-02-22  Martin Liska  <mliska@suse.cz>
4761         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
4762         return bitsize - 1 as the return value.
4764 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
4766         PR target/69806
4767         PR target/54089
4768         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
4769         Handle negative shift counts.
4770         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
4771         force_reg on the shift constant.
4772         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
4773         (lshrsi3_d): Handle negative shift counts.
4775 2016-02-22  Richard Biener  <rguenther@suse.de>
4776             Tom de Vries  <tom@codesourcery.com>
4778         * graph.c: Include dumpfile.h.
4779         (print_graph_cfg): Split into three overloads.
4780         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
4782 2016-02-22  Tom de Vries  <tom@codesourcery.com>
4784         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
4785         dump-fn.
4787 2016-02-22  Richard Biener  <rguenther@suse.de>
4789         PR ipa/37448
4790         * ipa-inline-transform.c (inline_call): When not updating
4791         overall summaries adjust self size by the growth estimate.
4792         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
4793         hash-set, do not update overall summaries here.  Renamed from ...
4794         (inline_to_all_callers): ... this which is now wrapping the
4795         above and performing delayed overall summary update.
4796         (early_inline_small_functions): Delay updating of the overall
4797         summary.
4799 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
4801         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
4802         variable.
4804 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
4806         PR driver/69805
4807         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
4808         :%* in %:gt() argument.
4809         (greater_than_spec_func): Adjust for expecting only numbers,
4810         if there are more than two numbers, compare the last two.
4812 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
4814         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
4815         -Wnarrowing with -std.
4817 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
4819         PR c++/69851
4820         * expr.c (store_field): Don't use bit-field path if exp is
4821         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
4822         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
4823         and the assignment can be performed by bitwise copy.  Formatting
4824         fix.
4826         PR middle-end/69838
4827         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
4828         call copy_reg_eh_region_note_forward on before and/or after sequences
4829         and remove note from insn if it no longer can throw.
4831         PR target/69820
4832         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
4833         if TARGET_AVX512BW.
4835 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4837         * config/s390/vector.md: Add missing commutative operand markers
4838         to the patterns which qualify for one.
4839         * config/s390/vx-builtins.md: Likewise.
4841 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4843         * config/s390/vector.md (VI, VI_QHS): Add single element vector
4844         types to mode iterators.
4845         (vec_double): ... and mode attribute.
4846         * config/s390/vx-builtins.md (non_vec_int): Likewise.
4848 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4850         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
4851         Change the predicate of op2 from nonimmediate to general and let
4852         reload fix it if necessary.
4854 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4856         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
4858 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4860         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
4861         mode.
4863 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4865         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
4866         * config/s390/s390.c (s390_expand_vec_movstr): New function.
4867         * config/s390/s390.md ("movstr<P:mode>"): Call
4868         s390_expand_vec_movstr.
4870 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4872         * config/s390/s390.md: Add missing output modifier for operand 1
4873         to print it as address properly.
4875 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4877         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
4878         * config/s390/2964.md: New file.
4879         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
4880         of insn grouping attributes depending on the CPU level.
4881         (s390_get_unit_mask): New function.
4882         (s390_sched_score): Remove the OOO from the scheduling macros.
4883         Add loop to calculate a score for the instruction mix.
4884         (s390_sched_reorder): Likewise plus improve debug output.
4885         (s390_sched_variable_issue): Rename macros as above.  Calculate
4886         the unit distances after actually scheduling an insn.  Improve
4887         debug output.
4888         (s390_sched_init): Clear last_scheduled_unit_distance array.
4889         * config/s390/s390.md: Include 2964.md.
4891 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
4893         PR target/69671
4894         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
4895         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
4896         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
4897         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
4898         *avx512f_<code>v8div16qi2_mask_1): New insns.
4900 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4902         PR target/68404
4903         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
4904         2016-02-09 change.
4906         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
4907         earlyclobber from target.  Use wF constraint for fused memory
4908         address.
4909         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
4911 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
4912             Martin Liska  <mliska@suse.cz>
4914         PR sanitizer/69863
4915         * cfgexpand.c (asan_sanitize_stack_p): New function.
4916         (partition_stack_vars): Use the function.
4917         (expand_stack_vars): Likewise.
4918         (defer_stack_allocation): Likewise.
4919         (expand_used_vars): Likewise.
4921 2016-02-18  Richard Biener  <rguenther@suse.de>
4923         PR middle-end/69553
4924         * fold-const.c (operand_equal_p): Properly compare offsets for
4925         IMAGPART_EXPR and ARRAY_REF.
4927 2016-02-18  Nick Clifton  <nickc@redhat.com>
4929         PR target/62254
4930         PR target/69610
4931         * config/arm/arm.c (arm_option_override_internal): Disable
4932         interworking if the target does not support thumb instructions.
4933         (arm_reload_in_hi): Handle the case where a register to register
4934         move needs reloading because there is no simple pattern to handle
4935         it.
4936         (arm_reload_out_hi): Likewise.
4938 2016-02-18  Richard Biener  <rguenther@suse.de>
4940         PR middle-end/69854
4941         * match.pd: Don't use fold_binary or fold_unary for folding
4942         constants.
4944 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
4946         PR c++/69850
4947         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
4948         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
4949         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
4950         warn on gimple_no_warning_p statements.
4952 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
4954         * doc/extend.texi (C++ Attributes): Correct description of
4955         warn_unused type attribute.
4957 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4959         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
4960         correct instruction.
4962 2016-02-17  Richard Biener  <rguenther@suse.de>
4964         PR rtl-optimization/69609
4965         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
4966         (find_traces_1_round): When ending a trace update cached priority
4967         of successors.
4968         (bb_to_key): Use cached priority when available.
4969         (copy_bb): Initialize cached priority.
4970         (reorder_basic_blocks_software_trace_cache): Likewise.
4972 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4974         PR target/69161
4975         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
4976         New predicate.
4977         (aarch64_comparison_operator): Break overly long line into two.
4978         (aarch64_comparison_operation): Likewise.
4979         * config/aarch64/aarch64.md (cstorecc4): Use
4980         aarch64_comparison_operator_mode instead of
4981         aarch64_comparison_operator.
4982         (cstore<mode>4): Likewise.
4983         (aarch64_cstore<mode>): Likewise.
4984         (*cstoresi_insn_uxtw): Likewise.
4985         (cstore<mode>_neg): Likewise.
4986         (*cstoresi_neg_uxtw): Likewise.
4988 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4990         PR target/69161
4991         * config/arm/predicates.md (arm_comparison_operator_mode):
4992         New predicate.
4993         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
4994         instead of arm_comparison_operator.
4995         (*mov_negscc): Likewise.
4996         (*mov_notscc): Likewise.
4997         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
4998         (*thumb2_mov_negscc): Likewise.
4999         (*thumb2_mov_negscc_strict_it): Likewise.
5000         (*thumb2_mov_notscc): Likewise.
5001         (*thumb2_mov_notscc_strict_it): Likewise.
5003 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
5005         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
5006         Add missing return.
5008 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
5010         * config/visium/visium.c (machine_libfunc_index): New enum.
5011         (machine_libfuncs): New structure.
5012         (visium_libfuncs): New static variable.
5013         (TARGET_INIT_LIBFUNCS): Define to...
5014         (visium_init_libfuncs): ...this.  New function.
5015         (expand_block_move_4): Use the appropriate libfunc.
5016         (expand_block_move_2): Likewise.
5017         (expand_block_move_1): Likewise.
5018         (expand_block_set_4): Likewise.
5019         (expand_block_set_2): Likewise.
5020         (expand_block_set_1): Likewise.
5021         (visium_trampoline_init): Likewise.
5023 2016-02-17  Nick Clifton  <nickc@redhat.com>
5025         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
5026         TI's devices.csv file as of March 2016.
5028 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5030         PR Target/48344
5031         * opts-global.c (handle_common_deferred_options): Introduce and
5032         initialize two global variables to remember command-line options
5033         specifying a stack-limiting register.
5034         * opts.h: Add extern declarations of the two new global variables.
5035         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
5036         variable based on the values of the two new global variables.
5038 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
5040         PR c/69835
5041         * common.opt (Wnonnull-compare): New warning.
5042         * doc/invoke.texi (-Wnonnull): Remove text about comparison
5043         of arguments against NULL.
5044         (-Wnonnull-compare): Document.
5045         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
5046         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
5047         * passes.def (pass_warn_nonnull_compare): Add.
5048         * gimple-ssa-nonnull-compare.c: New file.
5050 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5052         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
5053         AARCH64_EXTRA_TUNE_RECIP_SQRT.
5055 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5057         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
5058         reciprocal sqrt for -mlow-precision-recip-sqrt.
5060 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5061             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5063         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
5064         always use lane loads to construct non-constant vectors.
5066 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
5068         * config/aarch64/aarch64.md
5069         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
5070         constraints for operand 3.
5071         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
5073 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
5074             Richard Biener  <rguenther@suse.de>
5076         PR tree-optimization/69820
5077         * tree-vect-patterns.c (type_conversion_p): Return false if
5078         *orig_type is unsigned single precision or boolean.
5079         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
5080         Formatting fix.
5082 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
5084         PR rtl-optimization/69764
5085         PR rtl-optimization/69771
5086         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
5087         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
5089 2016-02-16  Richard Biener  <rguenther@suse.de>
5091         PR tree-optimization/69776
5092         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
5093         sets from caller.
5094         (indirect_refs_may_alias_p): Likewise.
5095         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
5096         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
5097         according to tbaa_p.
5098         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
5099         (optimize_stmt): For redundant store discovery do not allow tbaa.
5101 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
5103         PR tree-optimization/69714
5104         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
5105         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
5107 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
5109         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
5110         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
5111         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
5112         * config/arc/arc.c (arc_init): Check FPU options.
5113         (get_arc_condition_code): Handle new CC_FPU* modes.
5114         (arc_select_cc_mode): Likewise.
5115         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
5116         register pair only. Allow access for ARCv2 accumulator.
5117         (gen_compare_reg): Whenever we have FPU support use FPU compare
5118         instructions.
5119         (arc_reorg): Don't generate brcc insns when FPU compare
5120         instructions are involved.
5121         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
5122         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
5123         floating point emulation.
5124         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
5125         (REVERSE_CONDITION): Add new CC_FPU* modes.
5126         (TARGET_FP_SP_BASE): Define.
5127         (TARGET_FP_DP_BASE): Likewise.
5128         (TARGET_FP_SP_FUSED): Likewise.
5129         (TARGET_FP_DP_FUSED): Likewise.
5130         (TARGET_FP_SP_CONV): Likewise.
5131         (TARGET_FP_DP_CONV): Likewise.
5132         (TARGET_FP_SP_SQRT): Likewise.
5133         (TARGET_FP_DP_SQRT): Likewise.
5134         (TARGET_FP_DP_AX): Likewise.
5135         * config/arc/arc.md (ARCV2_ACC): New constant.
5136         (type): New fpu type attribute.
5137         (SDF): Conditional iterator.
5138         (cstore<mode>, cbranch<mode>): Change expand condition.
5139         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
5140         handles FPU/FPX cases as well.
5141         * config/arc/arc.opt (mfpu): New option.
5142         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
5143         Renamed.
5144         (adddf3, muldf3, subdf3): Removed.
5145         * config/arc/predicates.md (proper_comparison_operator): Recognize
5146         CC_FPU* modes.
5147         * config/arc/fpu.md: New file.
5148         * doc/invoke.texi (ARC Options): Document mfpu option.
5150 2016-02-16  Richard Biener  <rguenther@suse.de>
5152         PR rtl-optimization/69291
5153         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
5154         noce_operand_ok check.
5156 2016-02-16  Tom de Vries  <tom@codesourcery.com>
5158         PR lto/67709
5159         * omp-low.c (simd_clone_create): Remove call to
5160         symtab->call_cgraph_insertion_hooks.
5162 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
5164         PR tree-optimization/69802
5165         * tree-ssa-reassoc.c (update_range_test): If op is
5166         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
5167         op == 1 test of precision 1 integral op, otherwise handle
5168         that case as op itself.  Fix up formatting.
5169         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
5170         up formatting.
5172 2016-02-16  Richard Biener  <rguenther@suse.de>
5174         PR tree-optimization/69586
5175         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
5176         types for conversion sources.
5178 2016-02-16  Richard Biener  <rguenther@suse.de>
5180         PR middle-end/69801
5181         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
5182         mask OEP_ADDRESS_OF.
5184 2016-02-16  Alan Modra  <amodra@gmail.com>
5186         PR target/68973
5187         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
5188         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
5189         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
5190         (p8_mtvsrwz): New.
5191         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
5192         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
5193         (p8_fmrgow_<mode>): Likewise.
5194         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
5195         changes.
5196         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
5197         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
5198         to use movdi_internal64.  Remove op0_di.
5199         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
5201 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
5203         Add support for the FCCMP insn types
5205         * config/aarch64/aarch64.md (fccmp): Change insn type.
5206         (fccmpe): Likewise.
5207         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
5208         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
5209         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
5210         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
5211         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
5212         * config/arm/types.md (fccmps): Add new insn type.
5213         (fccmpd): Likewise.
5215 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5217         * alias.c (get_alias_set): Fix a typo in comment.
5219 2016-02-15  Richard Biener  <rguenther@suse.de>
5221         PR tree-optimization/69595
5222         * match.pd: Complete range test simplification to true.
5224 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
5226         PR rtl-optimization/69648
5227         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
5228         pic_offset_table_rtx.
5230         PR rtl-optimization/69752
5231         * ira.c (update_equiv_regs): When looking for more than a single SET,
5232         also take other side effects into account.
5234 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
5236         * config/s390/s390.c (s390_function_profiler): Add a new sequence
5237         for z900+ CPUs in 31-bit mode.
5239 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
5241         * common/config/s390/s390-common.c (s390_supports_split_stack):
5242         New function.
5243         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
5244         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
5245         * config/s390/s390.c (struct machine_function): New field
5246         split_stack_varargs_pointer.
5247         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
5248         in s390_emit_prologue.
5249         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
5250         vararg pointer.
5251         (morestack_ref): New global.
5252         (SPLIT_STACK_AVAILABLE): New macro.
5253         (s390_expand_split_stack_prologue): New function.
5254         (s390_live_on_entry): New function.
5255         (s390_va_start): Use split-stack vararg pointer if appropriate.
5256         (s390_asm_file_end): Emit the split-stack note sections.
5257         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
5258         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
5259         (UNSPECV_SPLIT_STACK_CALL): New unspec.
5260         (UNSPECV_SPLIT_STACK_DATA): New unspec.
5261         (split_stack_prologue): New expand.
5262         (split_stack_space_check): New expand.
5263         (split_stack_data): New insn.
5264         (split_stack_call): New expand.
5265         (split_stack_call_*): New insn.
5266         (split_stack_cond_call): New expand.
5267         (split_stack_cond_call_*): New insn.
5269 2016-02-15  Richard Biener  <rguenther@suse.de>
5271         PR tree-optimization/69783
5272         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5273         Add trivially correct cases.
5275 2016-02-15  Tom de Vries  <tom@codesourcery.com>
5277         PR lto/69655
5278         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
5279         do_force_output.
5280         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
5282 2016-02-15  Richard Biener  <rguenther@suse.de>
5284         PR tree-optimization/69776
5285         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
5286         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
5287         indicate whether we can use TBAA to disambiguate against stores.
5288         Use alias-set zero if not.
5289         (visit_reference_op_store): Do not use TBAA when looking up
5290         redundant stores.
5291         * tree-ssa-pre.c (compute_avail): Use TBAA here.
5292         (eliminate_dom_walker::before_dom_children): But not when looking
5293         up redundant stores.
5295 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
5297         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
5299 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5301         *  config/i386/znver1.md
5302         (znver1_pop, znver1_pop_mem,
5303         znver1_load_imov_double_store,
5304         znver1_load_imov_direct_store,
5305         znver1_load_imov_direct_load,
5306         znver1_load_imov_double_load): Add new.
5307         (znver1_insn, znver1_insn_load): Add icmov type.
5308         (znver1_sseavx_fma,
5309         znver1_sseavx_fma_load,
5310         znver1_avx256_fma,
5311         znver1_avx256_fma_load): Fix pipe usage.
5313 2016-02-14  Alan Modra  <amodra@gmail.com>
5315         PR target/68973
5316         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
5317         with an invalid hard reg, reload just the reg not the entire
5318         pre/post-inc/dec address expression.
5320 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
5322         PR target/67260
5323         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
5324         fixed R1_REG scratch reg.
5325         (sibcall_value_pcrel_fdpic): Likewise.
5327 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
5329         PR target/67636
5330         PR target/64345
5331         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
5333 2016-02-12  Walter Lee  <walt@tilera.com>
5335         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
5336         * config/tilegx/t-tilegx: Likewise.
5338 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
5340         PR other/69554
5341         * diagnostic-show-locus.c (struct line_span): New struct.
5342         (layout::get_first_line): Delete.
5343         (layout::get_last_line): Delete.
5344         (layout::get_num_line_spans): New member function.
5345         (layout::get_line_span): Likewise.
5346         (layout::print_heading_for_line_span_index_p): Likewise.
5347         (layout::get_expanded_location): Likewise.
5348         (layout::calculate_line_spans): Likewise.
5349         (layout::m_first_line): Delete.
5350         (layout::m_last_line): Delete.
5351         (layout::m_line_spans): New field.
5352         (layout::layout): Update comment.  Replace m_first_line and
5353         m_last_line with m_line_spans, replacing their initialization
5354         with a call to calculate_line_spans.
5355         (diagnostic_show_locus): When printing source lines and
5356         annotations, rather than looping over a single span
5357         of lines, instead loop over each line_span within
5358         the layout, with an inner loop over the lines within them.
5359         Call the context's start_span callback when changing line spans.
5360         * diagnostic.c (diagnostic_initialize): Initialize start_span.
5361         (diagnostic_build_prefix): Break out the building of the location
5362         part of the string into...
5363         (diagnostic_get_location_text): ...this new function, rewriting
5364         it from nested ternary expressions to a sequence of "if"
5365         statements.
5366         (default_diagnostic_start_span_fn): New function.
5367         * diagnostic.h (diagnostic_start_span_fn): New typedef.
5368         (diagnostic_context::start_span): New field.
5369         (default_diagnostic_start_span_fn): New prototype.
5371 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
5373         PR driver/69779
5374         * gcc.c (driver::finalize): Fix cleanup of "specs".
5376 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
5378         PR driver/69265
5379         PR driver/69453
5380         * gcc.c (driver::driver): Initialize m_option_suggestions.
5381         (driver::~driver): Clean up m_option_suggestions.
5382         (suggest_option): Convert to...
5383         (driver::suggest_option): ...this, and split out into
5384         driver::build_option_suggestions and find_closest_string.
5385         (driver::build_option_suggestions): New function, from
5386         first half of suggest_option.  Special-case
5387         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
5388         the sanitizer_opts array.  For options of enum types, add the
5389         various enum values to the candidate strings.
5390         (driver::handle_unrecognized_options): Remove "const".
5391         * gcc.h (driver::handle_unrecognized_options): Likewise.
5392         (driver::build_option_suggestions): New decl.
5393         (driver::suggest_option): New decl.
5394         (driver::m_option_suggestions): New field.
5395         * opts-common.c (add_misspelling_candidates): New function.
5396         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
5397         and make non-static.
5398         * opts.h (sanitizer_opts): New array decl.
5399         (add_misspelling_candidates): New function decl.
5400         * spellcheck.c (find_closest_string): New function.
5401         * spellcheck.h (find_closest_string): New function decl.
5403 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
5405         PR rtl-optimization/69764
5406         PR rtl-optimization/69771
5407         * optabs.c (expand_binop_directly): For shift_optab_p, force
5408         convert_modes with VOIDmode if xop1 has VOIDmode.
5410 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
5412         PR target/69729
5413         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
5414         to correctly determine instrumentation thunks.
5416 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
5418         PR ipa/69241
5419         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
5420         type by reference, force lhs on the call.
5422         PR ipa/68672
5423         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
5424         Compute retval and retbnd early in all cases if split_part_return_p
5425         and return_bb is not EXIT.  Remove all clobber stmts and reset
5426         all debug stmts that refer to SSA_NAMEs defined in split part,
5427         except if it is retval, in that case replace the old retval with the
5428         lhs of the call to the split part.
5430 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
5432         revert:
5433         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
5435         PR middle-end/66726
5436         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
5437         whose result is used in PHI.
5438         (maybe_optimize_range_tests): Likewise.
5439         (final_range_test_p): Likweise.
5441 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
5443         PR middle-end/66726
5444         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
5445         whose result is used in PHI.
5446         (maybe_optimize_range_tests): Likewise.
5447         (final_range_test_p): Likweise.
5449 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
5451         * cgraph.c: Spelling fixes - behaviour -> behavior and
5452         neighbour -> neighbor.
5453         * target.def: Likewise.
5454         * sel-sched.c: Likewise.
5455         * config/mips/mips.c: Likewise.
5456         * config/arc/arc.md: Likewise.
5457         * config/arm/cortex-a57.md: Likewise.
5458         * config/arm/arm.c: Likewise.
5459         * config/arm/neon.md: Likewise.
5460         * config/arm/arm-c.c: Likewise.
5461         * config/vms/vms-c.c: Likewise.
5462         * config/s390/s390.c: Likewise.
5463         * config/i386/znver1.md: Likewise.
5464         * config/i386/i386.c: Likewise.
5465         * config/ia64/hpux-unix2003.h: Likewise.
5466         * config/msp430/msp430.md: Likewise.
5467         * config/rx/rx.c: Likewise.
5468         * config/rx/rx.md: Likewise.
5469         * config/aarch64/aarch64-simd.md: Likewise.
5470         * config/aarch64/aarch64.c: Likewise.
5471         * config/nvptx/nvptx.c: Likewise.
5472         * config/bfin/bfin.c: Likewise.
5473         * config/cris/cris.opt: Likewise.
5474         * config/rs6000/rs6000.c: Likewise.
5475         * target.h: Likewise.
5476         * spellcheck.c: Likewise.
5477         * ira-build.c: Likewise.
5478         * tree-inline.c: Likewise.
5479         * builtins.c: Likewise.
5480         * lra-constraints.c: Likewise.
5481         * explow.c: Likewise.
5482         * hwint.h: Likewise.
5483         * targhooks.c: Likewise.
5484         * tree-vect-data-refs.c: Likewise.
5485         * expr.c: Likewise.
5486         * doc/tm.texi: Likewise.
5487         * doc/extend.texi: Likewise.
5488         * doc/install.texi: Likewise.
5489         * doc/md.texi: Likewise.
5490         * tree-ssa-tail-merge.c: Likewise.
5491         * sched-int.h: Likewise.
5492         * match.pd: Likewise.
5493         * sched-ebb.c: Likewise.
5494         * target.def (omit_struct_return_reg): Likewise.
5495         * gimple-ssa-isolate-paths.c: Likewise.
5496         (find_implicit_erroneous_behaviour): Renamed to...
5497         (find_implicit_erroneous_behavior): ... this.
5498         (find_explicit_erroneous_behaviour): Renamed to...
5499         (find_explicit_erroneous_behavior): ... this.
5500         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
5502 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
5504         PR rtl-optimization/64682
5505         PR rtl-optimization/69567
5506         PR rtl-optimization/69737
5507         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
5508         in I2 as well, just lose it.
5510 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5512         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
5513         New variable.
5514         (aarch64_last_printed_tune_string): Likewise.
5515         (aarch64_declare_function_name): Only output .arch assembler
5516         directive if it will be different from the previously output
5517         directive.  Same for .tune comment but only if -dA is set.
5518         (aarch64_start_file): New function.
5519         (TARGET_ASM_FILE_START): Define.
5521 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
5523         PR plugins/69758
5524         * Makefile.in (PLUGIN_HEADERS): Add params.list.
5526 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
5528         PR target/65313
5529         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
5530         -Wmaybe-uninitialized warning.
5532 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
5534         PR target/69713
5535         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
5537 2016-02-11  Richard Biener  <rguenther@suse.de>
5539         PR rtl-optimization/69291
5540         * ifcvt.c (noce_try_store_flag_constants): Do not allow
5541         subexpressions affected by changing the result.
5543 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
5545         PR target/69148
5546         * lra-constraints.c (curr_insn_transform): Find in/out operands
5547         for secondary memory moves.  Update dups.
5549 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
5551         PR tree-optimization/69652
5552         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
5553         to nested loop, did source re-formatting, skip debug statements,
5554         add check on statement with volatile operand, remove dead scalar
5555         statements.
5557 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
5558             Patrick Palka  <ppalka@gcc.gnu.org>
5560         PR ipa/69241
5561         PR c++/69649
5562         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
5563         calls if the return type is TREE_ADDRESSABLE.
5564         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
5565         * ipa-split.c (split_function): Fix doubled "we" in comment.
5566         Use void return type for the split part even if
5567         !split_point->split_part_set_retval.
5569 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
5571         PR tree-optimization/68021
5572         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
5573         when computing the value of biv cand by itself.
5575 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
5577         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
5578         (cortexa57_tunings): Likewise.
5579         (cortexa72_tunings): Likewise.
5580         (arch_macro_fusion_pair_p): Add support for AES fusion.
5581         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
5582         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
5583         Allow virtual registers before reload so early scheduling works.
5584         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
5585         correct latency and pipeline.
5586         (cortex_a57_crypto_complex): Likewise.
5587         (cortex_a57_crypto_xor): Likewise.
5588         (define_bypass): Add AES bypass.
5590 2016-02-10  Richard Biener  <rguenther@suse.de>
5592         PR tree-optimization/69726
5593         * passes.def: Add DCE pass before late uninit.
5594         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
5595         really fixup if-conversions job.
5597 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
5599         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
5600         (arm_cortex_a57_tune): Likewise.
5601         (aarch_macro_fusion_pair_p): Add support for AES fusion.
5602         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
5604 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
5606         * timevar.def (TV_PHASE_DBGINFO): Delete.
5607         (TV_PHASE_CHECK_DBGINFO): Likewise.
5608         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
5610 2016-02-10  Richard Biener  <rguenther@suse.de>
5612         PR tree-optimization/69719
5613         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5614         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
5616 2016-02-09  Andrew Pinski  <apinski@cavium.com>
5618         PR tree-opt/69282
5619         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
5620         get_vcond_mask_icode returns false.
5622 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
5624         PR target/68404
5625         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
5626         an ADDIS that adds a pointer to a large constant that sets the
5627         upper16 bits with a load operation.
5629 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
5631         PR target/68532
5632         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
5633         order.
5634         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
5635         endian.
5636         (vzipq_s16): Likewise.
5637         (vzipq_s32): Likewise.
5638         (vzipq_f32): Likewise.
5639         (vzipq_u8): Likewise.
5640         (vzipq_u16): Likewise.
5641         (vzipq_u32): Likewise.
5642         (vzipq_p8): Likewise.
5643         (vzipq_p16): Likewise.
5645 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
5647         PR target/68532
5648         * config/arm/arm.c (neon_endian_lane_map): New function.
5649         (neon_vector_pair_endian_lane_map): New function.
5650         (arm_evpc_neon_vuzp): Allow for big endian lane order.
5651         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
5652         endian.
5653         (vuzpq_s16): Likewise.
5654         (vuzpq_s32): Likewise.
5655         (vuzpq_f32): Likewise.
5656         (vuzpq_u8): Likewise.
5657         (vuzpq_u16): Likewise.
5658         (vuzpq_u32): Likewise.
5659         (vuzpq_p8): Likewise.
5660         (vuzpq_p16): Likewise.
5662 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
5664         PR target/69634
5665         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
5666         debug insns.
5668 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
5670         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
5671         truncate const_int operand 1 to QImode.
5673 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
5675         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
5676         corresponding to an abnormal edge.
5678 2016-02-09  Tom de Vries  <tom@codesourcery.com>
5680         PR tree-optimization/69599
5681         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
5682         function.
5683         (find_func_aliases_for_builtin_call, find_func_clobbers)
5684         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
5685         partition.
5687 2016-02-09  Richard Biener  <rguenther@suse.de>
5689         PR tree-optimization/69715
5690         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
5691         LHS on calls as non-rewritable.
5693 2016-02-09  Tom de Vries  <tom@codesourcery.com>
5695         PR lto/69707
5696         * lto-wrapper.c (append_diag_options): New function.
5697         (compile_offload_image): Call append_diag_options.
5699 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
5701         PR other/69722
5702         * doc/extend.texi (Flag Output Operands): Correct sectioning.
5703         Minor copy-edit to fix verb tenses.
5705 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
5707         PR tree-optimization/69209
5708         * ipa-split.c (split_function): If split part is not
5709         returning retval, retval has gimple type but is not
5710         gimple value, force it into a SSA_NAME first.
5712 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
5714         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
5715         outdated section.
5717 2016-02-08  Jason Merrill  <jason@redhat.com>
5719         PR c++/69631
5720         * convert.c (convert_to_integer_1): Check dofold on truncation
5721         distribution.
5722         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
5723         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
5724         Rename from *_nofold.
5725         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
5726         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
5728 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
5730         PR target/60410
5731         * tree.c (build_common_tree_nodes): Remove short_double argument.
5732         All callers changed.
5733         * tree.h (build_common_tree_nodes): Adjust declaration.
5734         * doc/invoke.texi (-fshort-double): Remove documentation.
5735         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
5736         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
5737         * lto-wrapper.c (merge_and_complain, append_compiler_options)
5738         (append_linker_options): Don't handle OPT_fshort_double.
5740         PR rtl-optimization/68730
5741         * lra-remat.c (insn_to_cand_activation): New static variable.
5742         (lra_remat): Allocate and free it.
5743         (create_cand): New arg activation. Initialize a field in
5744         insn_to_cand_activation if it is nonnull.
5745         (create_cands): Pass the activation insn to create_cand when making
5746         a candidate involving an output reload.  Reorganize code a little.
5747         (do_remat): Keep track of active status of candidates in a separate
5748         bitmap.
5750 2016-02-08  Richard Biener  <rguenther@suse.de>
5752         PR tree-optimization/69719
5753         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
5754         Properly use absolute of the difference of the two offsets to
5755         compare or adjust the segment length.
5757 2016-02-08  Richard Biener  <rguenther@suse.de>
5758             Jeff Law  <law@redhat.com>
5760         PR target/68273
5761         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
5762         types for anonymous SSA names.
5764 2016-02-08   Richard Biener  <rguenther@suse.de>
5766         PR rtl-optimization/69274
5767         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
5769 2016-02-08  Jeff Law  <law@redhat.com>
5771         PR tree-optimization/65917
5772         * tree-ssa-dom.c (record_temporary_equivalences): Record both
5773         equivalences from if (x == y) style conditionals.
5774         (loop_depth_of_name): Remove.
5775         (record_equality): Remove loop depth check.
5776         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
5777         (const_and_copies::record_const_or_copy_raw): New member function.
5778         * tree-ssa-scopedtables.c
5779         (const_and_copies::record_const_or_copy_raw): New, factored out of
5780         (const_and_copies::record_const_or_copy): Call new member function.
5782 2016-02-05  Jeff Law  <law@redhat.com>
5784         PR tree-optimization/68541
5785         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
5786         (count_stmts_in_block): New function.
5787         (poor_ifcvt_candidate_code): Likewise.
5788         (is_feasible_trace): Add some heuristics to determine when path
5789         splitting is profitable.
5790         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
5791         is a diamond with a single exit.
5793 2016-02-05  Martin Sebor  <msebor@redhat.com>
5795         PR c++/69662
5796         * doc/invoke.texi: Update -Wplacement-new to take an optional
5797         argument.
5799 2016-02-06  Richard Henderson  <rth@redhat.com>
5801         PR c/69643
5802         * tree.c (tree_nop_conversion_p): Do not strip casts into or
5803         out of non-standard address spaces.
5805 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
5807         PR rtl-optimization/69691
5808         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
5810 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
5812         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
5813         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
5814         (*ieee128_mfvsrd_64bit): Likewise.
5815         (*ieee128_mfvsrd_32bit): Likewise.
5817 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
5819         PR target/69369
5820         Revert r232560:
5821         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
5823         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
5824         instrumented_version.
5826 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
5828         * doc/invoke.texi (Optimize Options): In table of --param options
5829         rename second occurrence of tracer-min-branch-ratio to
5830         tracer-min-branch-probability, rename
5831         tracer-min-branch-ratio-feedback to
5832         tracer-min-branch-probability-feedback and clarify description,
5833         rename sched-spec-state-edge-prob-cutoff to
5834         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
5835         to selsched-insns-to-rename, rename lto-minpartition to
5836         lto-min-partition, delete reorder-blocks-duplicate and
5837         reorder-blocks-duplicate-feedback.
5839 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5841         * config/s390/s390.c (s390_register_info_set_ranges): Remove
5842         superfluous loops.
5844 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5846         * doc/extend.texi: S/390: Correct some typos.
5848 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5850         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
5852 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5854         PR target/69625
5855         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
5856         (s390_register_info_gprtofpr): Use new macros above.
5857         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
5858         its name.
5859         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
5860         its name.  Adjust restore and save gpr ranges.
5861         (s390_register_info_set_ranges): New function.
5862         (s390_register_info): Use new macros above.  Call
5863         s390_register_info_set_ranges.
5864         (s390_optimize_register_info): Likewise.
5865         (s390_hard_regno_rename_ok): Use new macros.
5866         (s390_hard_regno_scratch_ok): Likewise.
5867         (s390_emit_epilogue): Likewise.
5868         (s390_can_use_return_insn): Likewise.
5869         (s390_optimize_prologue): Likewise.
5870         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
5872 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
5874         PR bootstrap/69677
5875         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
5876         alignment fixes.
5877         (ix86_option_override_internal): Disable TARGET_STV even for
5878         -m{incoming,preferred}-stack-boundary=3.
5880 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5882         * config.gcc: Mark deprecated rtems targets as obsolete.
5884 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
5886         PR rtl-optimization/64682
5887         PR rtl-optimization/69567
5888         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
5889         before I2 only if the register is both used and set in I2.
5891 2016-02-04  DJ Delorie  <dj@redhat.com>
5893         * config/msp430/msp430.c (msp430_start_function): Add function type.
5895 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
5897         PR fortran/69368
5898         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
5900 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
5902         PR rtl-optimization/69577
5903         Revert:
5904         2015-10-29  Richard Henderson  <rth@redhat.com>
5906         PR target/68124
5907         PR rtl-opt/67609
5908         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
5909         sse check to the exact conditions of PR 67609.
5911 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
5913         PR target/69667
5914         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
5915         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
5916         not allowed into the traditional Altivec registers.
5917         (movtd_64bit_nodm): Likewise.
5918         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
5920 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
5922         * config/aarch64/cortex-a57-fma-steering.c
5923         (aarch64_register_fma_steering): Remove "static" from arguments
5924         to register_pass.
5926 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
5928         PR target/69619
5929         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
5930         twice when complex.
5932 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
5934         * doc/invoke.texi: Delete -mno-fma4.
5936 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
5938         PR rtl-optimization/69577
5939         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
5940         (find_subregs_of_mode): Update accordingly.  Iterate over partial
5941         definitions.
5943 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
5945         * config/arm/arm-protos.h (neon_reinterpret): Remove.
5946         * config/arm/arm.c (neon_reinterpret): Remove.
5947         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
5948         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
5949         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
5950         vreinterpretti): Remove.
5951         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
5952         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
5953         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
5954         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
5955         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
5956         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
5957         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
5958         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
5959         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
5960         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
5961         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
5962         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
5963         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
5964         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
5965         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
5966         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
5967         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
5968         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
5969         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
5970         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
5971         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
5972         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
5973         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
5974         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
5975         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
5976         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
5977         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
5978         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
5979         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
5980         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
5981         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
5982         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
5983         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
5984         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
5985         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
5986         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
5987         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
5988         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
5989         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
5990         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
5991         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
5992         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
5993         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
5994         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
5995         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
5996         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
5997         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
5998         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
5999         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
6000         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
6001         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
6002         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
6003         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
6004         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
6005         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
6006         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
6007         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
6008         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
6009         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
6010         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
6011         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
6012         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
6013         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
6014         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
6015         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
6016         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
6017         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
6018         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
6019         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
6020         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
6021         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
6022         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
6023         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
6024         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
6025         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
6026         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
6027         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
6028         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
6029         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
6030         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
6031         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
6032         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
6033         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
6034         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
6035         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
6036         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
6037         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
6038         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
6039         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
6040         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
6041         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
6042         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
6043         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
6044         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
6045         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
6046         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
6047         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
6048         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
6049         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
6050         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
6051         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
6052         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
6053         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
6055 2016-02-04  Martin Liska  <mliska@suse.cz>
6057         PR sanitizer/69276
6058         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
6059         that are gimple_store_p.
6060         (maybe_instrument_call): Likewise.
6062 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
6064         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
6065         register scaling out of memory reference and comment why.
6067 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6069         PR target/65932
6070         PR target/67714
6071         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
6072         folding the source of a SET.
6074 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6076         PR target/65932
6077         PR target/67714
6078         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
6079         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
6081 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
6083         PR target/65932
6084         PR target/67714
6085         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
6086         HImode.
6088 2016-02-04  Christian Bruel  <christian.bruel@st.com>
6090         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
6091         * config/arm/arm.c (arm_set_current_function): Likewise.
6093 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
6094             Ilya Enkovich  <enkovich.gnu@gmail.com>
6095             H.J. Lu  <hongjiu.lu@intel.com>
6097         PR target/69454
6098         * config/i386/i386.c (convert_scalars_to_vector): Remove
6099         stack alignment fixes.
6100         (ix86_option_override_internal): Disable TARGET_STV if stack
6101         might not be aligned enough.
6102         (ix86_minimum_alignment): Assert that TARGET_STV is false.
6104 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
6106         * gcc/config/i386/x86-tune.def: Disable default prefetching
6107         for -march=znver1.
6109 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
6110             Vladimir Makarov  <vmakarov@redhat.com>
6112         PR target/69461
6113         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
6114         in validating fused toc addresses.
6116 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
6118         PR c/69627
6119         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
6120         range->m_caret fields if range->m_show_caret_p is false.
6122         PR target/69644
6123         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6124         Force oldval into register if it does not satisfy reg_or_short_operand
6125         predicate.  Fix up formatting.
6127 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
6128             Alexandre Oliva  <aoliva@redhat.com>
6130         PR target/69461
6131         * lra-constraints.c (simplify_operand_subreg): Check additionally
6132         address validity after potential reloading.
6133         (process_address_1): Check insns validity.  In case of failure do
6134         nothing.
6136 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
6138         PR target/69118
6139         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
6140         Fix target.
6142 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
6144         * wide-int.cc (canonize_uhwi): New function.
6145         (wi::divmod_internal): Use it.
6147 2016-02-02  James Norris  <jnorris@codesourcery.com
6149         * gimplify.c (omp_notice_variable): Add usage check.
6151 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
6153         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
6154         like LE, GE, LT, GT when emitting relational operator.
6156 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
6158         * ira-costs.c (find_costs_and_classes): Add extra argument.
6159         * target.def (ira_change_pseudo_allocno_class): Add parameter.
6160         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
6161         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
6162         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
6163         Add best_class parameter, and return it if not ALL_REGS.
6164         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
6165         Add parameter.
6166         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
6167         Update target hook.
6169 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
6171         * config/aarch64/aarch64.c
6172         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
6173         (aarch64_ira_change_pseudo_allocno_class): New function.
6175 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
6177         PR target/67032
6178         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
6180 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6182         * config/avr/avr.c (avr_option_override): Set
6183         PARAM_ALLOW_STORE_DATA_RACES to 1.
6185 2016-02-02  Richard Biener  <rguenther@suse.de>
6187         PR tree-optimization/69595
6188         * match.pd: Add range test simplifications to true/false.
6190 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
6192         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
6193         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
6194         instead.
6196 2016-02-02  Richard Biener  <rguenther@suse.de>
6198         PR tree-optimization/69606
6199         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
6200         info on the result before moving a stmt.
6202 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
6204         PR middle-end/68542
6205         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
6206         branch with vector comparison.
6207         * config/i386/sse.md (VI48_AVX): New mode iterator.
6208         (define_expand "cbranch<mode>4): Add support for conditional branch
6209         with vector comparison.
6210         * tree-vect-loop.c (optimize_mask_stores): New function.
6211         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
6212         has_mask_store field of vect_info.
6213         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
6214         vectorized loops having masked stores after vec_info destroy.
6215         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
6216         correspondent macros.
6217         (optimize_mask_stores): Add prototype.
6219 2016-02-02  Alan Modra  <amodra@gmail.com>
6221         PR target/69548
6222         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
6223         allow subregs.
6225 2016-02-02  Alan Modra  <amodra@gmail.com>
6227         PR target/68662
6228         * config/rs6000/rs6000.c (need_toc_init): New var, set it
6229         whenever toc_label_name used.
6230         (rs6000_file_start): Don't set up toc section here,
6231         (rs6000_output_function_epilogue): do so here instead,
6232         (rs6000_xcoff_file_start): and here.
6233         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
6234         (load_toc_aix_di): Likewise.
6236 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
6238         PR rtl-optimization/69592
6239         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
6240         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
6241         (num_sign_bit_copies_binary_arith_p): New inline function.
6242         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
6244 2016-02-01  Jeff Law  <law@redhat.com>
6246         PR tree-optimization/69580
6247         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
6248         * tree-ssa-threadbackward.c
6249         (fsm_find_control_statement_thread_paths): Do not try to walk
6250         through large PHI nodes.
6252 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
6254         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
6255         when count is incremented above limit, don't analyze further
6256         insns afterwards.
6258         * omp-low.c (oacc_parse_default_dims): Avoid
6259         -Wsign-compare warning, make sure value fits into int
6260         rather than just unsigned int.
6262 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
6264         PR tree-optimization/67921
6265         * fold-const.c (split_tree): New parameters.  Convert pointer
6266         type variable part to proper type before negating.
6267         (fold_binary_loc): Pass new arguments to split_tree.
6269 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
6271         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
6272         (nvptx_goacc_validate_dims): Extend to handle global defaults.
6273         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
6274         * doc/tm.texti: Rebuilt.
6275         * doc/invoke.texi (fopenacc-dim): Document.
6276         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
6277         (append_compiler_options): Likewise.
6278         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
6279         (oacc_parse_default_dims): New.
6280         (oacc_validate_dims): Add USED arg.  Select non-unity default when
6281         possible.
6282         (oacc_loop_fixed_partitions): Return mask of used partitions.
6283         (oacc_loop_auto_partitions): Emit dump info.
6284         (oacc_loop_partition): Return mask of used partitions.
6285         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
6286         loop partitioning and validation calls.
6288 2016-02-01  Richard Biener  <rguenther@suse.de>
6290         PR middle-end/69556
6291         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
6293 2016-02-01  Richard Biener  <rguenther@suse.de>
6295         PR tree-optimization/69574
6296         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
6297         of asserting return chrec_dont_know.
6299 2016-02-01  Martin Liska  <mliska@suse.cz>
6301         * mem-stats-traits.h: Add copyright header.
6302         * mem-stats.h: Likewise.
6304 2016-02-01  Richard Biener  <rguenther@suse.de>
6306         PR tree-optimization/69579
6307         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
6308         Do not propagate through abnormal PHI results.
6310 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
6312         * postreload.c (reload_cse_simplify): Remove dead code.
6314 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
6316         PR rtl-optimization/69570
6317         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
6318         if there is more than one set, not if there is a single set.
6320 2016-02-01  Richard Henderson  <rth@redhat.com>
6322         PR rtl-opt/69535
6323         * combine.c (make_compound_operation): When looking through a
6324         subreg, make sure to re-extend to the width of the outer mode.
6326 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
6328         PR tree-optimization/69546
6329         * wide-int.cc (wi::divmod_internal): For unsigned division
6330         where both operands fit into uhwi, if o1 is 1 and o0 has
6331         msb set, if divident_prec is larger than bits per hwi,
6332         clear another quotient word and return 2 instead of 1.
6333         Similarly for remainder with msb in HWI set, if dividend_prec
6334         is larger than bits per hwi.
6336 2016-01-29  Martin Jambor  <mjambor@suse.cz>
6338         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
6339         Use short lowercase names.
6340         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
6341         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
6342         acq_rel one.  Protect warning agains segfaults if
6343         get_memory_order_name returns NULL.
6344         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
6345         with release semantics.  Do not warn if get_memory_order already did.
6346         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
6347         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
6348         if get_memory_order already did.
6350 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
6352         * doc/install.texi: Document that isl-0.16 is supported.
6354 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
6356         PR target/69299
6357         * config/i386/constraints.md (Bm): Describe as special memory
6358         constraint.
6359         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
6360         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
6361         * genpreds.c (struct constraint_data): Add is_special_memory.
6362         (have_special_memory_constraints, special_memory_start): New
6363         static vars.
6364         (special_memory_end): Ditto.
6365         (add_constraint): Add new arg is_special_memory.  Add code to
6366         process its true value.  Update have_special_memory_constraints.
6367         (process_define_constraint): Pass the new arg.
6368         (process_define_register_constraint): Ditto.
6369         (choose_enum_order): Process special memory.
6370         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
6371         function insn_extra_special_memory_constraint.
6372         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
6373         * gensupport.c (process_rtx): Process
6374         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
6375         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
6376         * ira-lives.c (single_reg_class): Use
6377         insn_extra_special_memory_constraint.
6378         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
6379         * lra-constraints.c (process_alt_operands): Ditto.
6380         (curr_insn_transform): Use insn_extra_special_memory_constraint.
6381         * recog.c (asm_operand_ok, preprocess_constraints): Process
6382         CT_SPECIAL_MEMORY.
6383         * reload.c (find_reloads): Ditto.
6384         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
6385         * stmt.c (parse_input_constraint): Use
6386         insn_extra_special_memory_constraint.
6388 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
6390         PR target/69530
6391         * lra-splill.c (lra_final_code_change): Revert r229087 by
6392         removing all sub-registers.
6394 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
6396         PR target/65604
6397         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
6399 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
6401         PR target/69551
6402         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
6403         SSE1, copy target into the temporary reg first before recursing
6404         on it.
6406 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
6408         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
6409         with vm.
6411 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
6413         * ginclude/stdarg.h: Test __cplusplus instead of
6414         __GXX_EXPERIMENTAL_CXX0X__.
6416 2016-01-29  Richard Biener  <rguenther@suse.de>
6418         PR tree-optimization/69547
6419         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
6420         Do not mark clobbers necessary.
6421         (mark_all_reaching_defs_necessary_1): Likewise.
6423 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6425         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
6426         declaration name with %qs and print it in both error messages.
6427         Also fix indentation.
6429 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6431         PR other/69006
6432         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
6433         trailing blank line from error message.
6435 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
6437         PR c++/69462
6438         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
6439         for C++-11.
6441 2016-01-29  Richard Biener  <rguenther@suse.de>
6443         PR middle-end/69537
6444         * match.pd: Allow all integral types when simplifying a
6445         widening or sign-changing conversion.
6447 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
6449         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
6450         back to setting codegen_error to fail codegen.
6452 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
6454         PR target/69459
6455         * config/i386/constraints.md (C): Only accept constant zero operand.
6456         (BC): New constraint.
6457         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
6458         instead of C constraint.
6459         * doc/md.texi (Machine Constraints): Update description
6460         of C constraint.
6462 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
6464         PR target/68400
6465         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
6467 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
6469         PR middle-end/69542
6470         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
6471         non-debug insns.
6473 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
6475         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
6476         branches if using guessed profile.
6478 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
6480         * graphite-optimize-isl.c (optimize_isl): Fix dump.
6482 2016-01-28  Richard Henderson  <rth@redhat.com>
6484         PR target/69305
6485         * config/aarch64/aarch64-modes.def (CC_Cmode): New
6486         * config/aarch64/aarch64-protos.h: Update.
6487         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
6488         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
6489         (aarch64_get_condition_code_1): Handle CC_Cmode.
6490         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
6491         (*add<mode>3_compareC_cconly_imm): New.
6492         (*add<mode>3_compareC_cconly): New.
6493         (*add<mode>3_compareC_imm): New.
6494         (add<mode>3_compareC): New.
6495         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
6496         to be first.  Use aarch64_carry_operation.
6497         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
6498         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
6499         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
6500         (subti3): Use subdi3_compare1.
6501         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
6502         (sub<mode>3_compare1): New.
6503         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
6504         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
6505         (*subsi3_carryin_uxtw): Likewise.
6506         (*ngc<mode>, *ngcsi_uxtw): Likewise.
6507         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
6508         * config/aarch64/iterators.md (DWI): New.
6509         * config/aarch64/predicates.md (aarch64_carry_operation): New.
6510         (aarch64_borrow_operation): New.
6512 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
6514         * graphite-optimize-isl.c (optimize_isl): Print a different debug
6515         message when isl does not return a valid schedule.
6517 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
6519         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
6520         Remove comments from class declarations: they are already in the code
6521         close by the defs.
6523 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
6525         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
6526         codegen_error_p.
6527         (ternary_op_to_tree): Same.
6528         (unary_op_to_tree): Same.
6529         (nary_op_to_tree): Same.
6530         (gcc_expression_from_isl_expr_op): Same.
6531         (gcc_expression_from_isl_expression): Same.
6532         (graphite_create_new_loop): Same.
6533         (graphite_create_new_loop_guard): Same.
6534         (build_iv_mapping): Same.
6535         (graphite_create_new_guard): Same.
6536         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
6537         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
6539 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
6541         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
6542         instead of setting codegen_error to fail codegen.
6544 2016-01-28  Jason Merrill  <jason@redhat.com>
6546         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
6548 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
6550         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
6551         Remove CONST_INT_P check in CCMP cost calculation.
6553 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
6555         * config/aarch64/aarch64.c (generic_vector_cost):
6556         Set vec_permute_cost.
6557         (cortexa57_vector_cost): Likewise.
6558         (exynosm1_vector_cost): Likewise.
6559         (xgene1_vector_cost): Likewise.
6560         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
6561         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
6562         Add vec_permute_cost entry.
6564 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
6566         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
6567         immediate as %1.
6568         (add<mode>3_compare0): Likewise.
6569         (addsi3_compare0_uxtw): Likewise.
6570         (add<mode>3nr_compare0): Likewise.
6571         (compare_neg<mode>): Likewise.
6572         (<optab><mode>3): Likewise.
6574 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
6576         * tree-vect-stmts.c (vectorizable_comparison): Add
6577         NULL check for vectype.
6579 2016-01-28  Richard Biener  <rguenther@suse.de>
6581         PR tree-optimization/69466
6582         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
6583         Account for PHIs we couldn't duplicate.
6585 2016-01-28  Martin Liska  <mliska@suse.cz>
6587         PR pch/68758
6588         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
6589         instead of ENABLE_VALGRIND_CHECKING.
6591 2016-01-27  Richard Henderson  <rth@redhat.com>
6593         PR rtl-opt/69447
6594         * lra-remat.c (subreg_regs): New.
6595         (dump_candidates_and_remat_bb_data): Dump it.
6596         (operand_to_remat): Reject if operand in subreg_regs.
6597         (set_bb_regs): Collect subreg_regs.
6598         (lra_remat): Init and free subreg_regs.  Compute
6599         calculate_local_reg_remat_bb_data before create_cands.
6601 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
6603         PR target/68986
6604         * config/i386/i386.c (ix86_update_stack_boundary): Don't
6605         change stack_alignment_needed for __tls_get_addr call.
6607 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
6609         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
6611 2016-01-27  Jeff Law  <law@redhat.com>
6613         PR tree-optimization/68398
6614         PR tree-optimization/69196
6615         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
6616         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
6617         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6618         Only count PHIs in the last block in the path.  The others will
6619         const/copy propagate away.  Add heuristic to allow more irreducible
6620         subloops to be created when it is likely profitable to do so.
6622         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6623         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
6624         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
6626 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
6628         PR lto/69254
6629         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
6630         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
6631         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
6632         * tree-streamer-in.c: Include asan.h.
6633         (streamer_get_builtin_tree): For builtins in sanitizer
6634         range call initialize_sanitizer_builtins and retry.
6636 2016-01-27  Ian Lance Taylor  <iant@google.com>
6638         * common.opt (fkeep-gc-roots-live): New undocumented option.
6639         * tree-ssa-loop-ivopts.c (add_candidate_1): If
6640         -fkeep-gc-roots-live, skip pointers.
6641         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
6642         NULL.
6644 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
6646         PR target/69512
6647         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
6648         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
6650 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
6652         PR target/68380
6653         * configure.ac: NetBSD provides SSP in its C library.
6654         * configure: Updated.
6656 2016-01-27  Richard Biener  <rguenther@suse.de>
6658         PR tree-optimization/69166
6659         * tree-vect-loop.c (vect_is_simple_reduction): Always check
6660         reduction code for commutativity / associativity.
6662 2016-01-27  Martin Jambor  <mjambor@suse.cz>
6664         PR tree-optimization/69355
6665         * tree-sra.c (analyze_access_subtree): Correct hole detection when
6666         total_scalarization fails.
6668 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
6670         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
6671         power9.
6673 2016-01-27  Christian Bruel  <christian.bruel@st.com>
6675         PR target/69245
6676         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
6677         Move arm_reset_previous_fndecl and set_target_option_current_node in
6678         the conditional part.  Call save_restore_target_globals.
6679         * config/arm/arm.c (arm_set_current_function):
6680         Refactor to better support #pragma target and attribute mix.
6681         Call save_restore_target_globals.
6682         * config/arm/arm-protos.h (save_restore_target_globals): New function.
6684 2016-01-27  Martin Liska  <mliska@suse.cz>
6686         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
6687         reference for an HSA kernel and its host function.
6689 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
6691         PR tree-optimization/69399
6692         * wide-int.h (wi::lrshift): For larger precisions, only
6693         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
6695 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
6697         * config/arc/predicates.md (proper_comparison_operator): Reject
6698         constant-constant comparison.
6700 2016-01-26  Tom de Vries  <tom@codesourcery.com>
6702         PR tree-optimization/69110
6703         * tree-data-ref.c (initialize_data_dependence_relation): Handle
6704         DR_NUM_DIMENSIONS == 0.
6706 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
6707             Sebastian Pop  <s.pop@samsung.com>
6709         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
6710         isl_ast_op_cond and isl_ast_op_select.
6711         (gcc_expression_from_isl_expr_op): Same.
6713 2016-01-26  Jason Merrill  <jason@redhat.com>
6715         PR c++/68782
6716         * tree.c (recompute_constructor_flags): Split out from
6717         build_constructor.
6718         (verify_constructor_flags): New.
6719         * tree.h: Declare them.
6721 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
6723         PR rtl-optimization/69217
6724         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
6725         are no TYPE_FIELDS set for the record type.
6727 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
6729         PR target/68662
6730         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
6731         toc_label_name unconditionally.
6732         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
6733         SYMBOL_REF string.  Use toc_label_name instead of constructing
6734         LCTOC1.
6735         (rs6000_elf_declare_function_name): Use toc_label_name instead of
6736         constructing LCTOC1.
6738 2016-01-26  Martin Sebor  <msebor@redhat.com>
6740         PR other/69477
6741         * doc/extend.texi (Common Type Attributes): Move text that talks about
6742         attribute packed from attribute aligned to the section discussing
6743         the former attribute for clarity.
6745 2016-01-26  Richard Henderson  <rth@redhat.com>
6747         PR middle-end/60908
6748         * trans-mem.c (tm_region_init): Mark entry block as visited.
6750 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
6752         PR other/69006
6753         * diagnostic-show-locus.c (layout::print_source_line): Replace
6754         call to pp_newline with call to layout::print_newline.
6755         (layout::print_annotation_line): Likewise.
6756         (layout::move_to_column): Likewise.
6757         (layout::print_any_fixits): After printing any fixits, print a
6758         trailing newline, if necessary.
6759         (layout::print_newline): New method, resetting any colorization
6760         before a newline.
6761         (diagnostic_show_locus): Move the pp_newline to before the
6762         early bailout.  Remove dummy block enclosing the layout instance.
6763         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
6764         of pp_newline_and_flush with pp_flush.
6765         (diagnostic_append_note): Delete use of pp_newline.
6766         (diagnostic_append_note_at_rich_loc): Delete.
6767         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
6768         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
6769         when newline characters are added to the buffer.
6771 2016-01-26  Michael Matz  <matz@suse.de>
6773         * configure.ac (ac_cv_std_swap_in_utility): New test.
6774         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
6775         * configure: Regenerate.
6776         * config.in: Regenerate.
6778 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
6780         * config/arc/arc.md (cstoresi4): Force operand into register.
6781         (arcset<code>): Fix predicate.
6782         (arcsetltu): Likewise.
6783         (arcsetgeu): Likewise.
6784         (arcsethi): Likewise.
6785         (arcsetls): Likewise.
6787 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
6789         PR tree-optimization/69483
6790         * gimple-fold.c (canonicalize_constructor_val): Return NULL
6791         if base has error_mark_node type.
6793 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
6795         PR target/68620
6796         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
6797         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
6798         New helper macros.
6799         (vget_lane_f16): Handle big-endian.
6800         (vgetq_lane_f16): Likewise.
6801         (vset_lane_f16): Likewise.
6802         (vsetq_lane_f16): Likewise.
6803         * config/arm/iterators.md (VQXMOV): Add V8HF.
6804         (VDQ): Add V4HF and V8HF.
6805         (V_reg): Handle V4HF and V8HF.
6806         (Is_float_mode): Likewise.
6807         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
6808         neon_vdup_nv8hf): New patterns.
6809         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
6810         Use VD_LANE iterator.
6811         (neon_vld1_dup<mode>): Use VQ2 iterator.
6813 2016-01-26  Nathan Sidwell  <nathan@acm.org>
6815         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
6816         (set_oacc_fn_attrib): Add IS_KERNEL arg.
6817         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
6818         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
6819         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
6820         (oacc_validate_dims): Add LEVEL arg, don't return level.
6821         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
6822         oacc_validate_dims.
6823         (execute_oacc_device_lower): Adjust, add more dump output.
6824         * tree-ssa-loop.c (gate_oacc_kernels): Use
6825         oacc_fn_attrib_kernels_p.
6826         * tree-parloops.c (create_parallel_loop): Adjust
6827         set_oacc_fn_attrib call.
6829 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
6831         PR lto/69254
6832         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
6833         (append_compiler_options): Handle -fcilkplus.
6834         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
6836 2016-01-26  Nick Clifton  <nickc@redhat.com>
6838         PR target/66655
6839         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
6840         been marked as DECL_ONE_ONLY but we do not the means to make it
6841         so, then do not allow it to bind locally.
6843 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
6845         PR lto/69254
6846         * opts.h (parse_sanitizer_options): New prototype.
6847         * opts.c (sanitizer_opts): New array.
6848         (parse_sanitizer_options): New function.
6849         (common_handle_option): Use parse_sanitizer_options.
6851 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
6853         PR target/68986
6854         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
6855         alignment adjustment to ...
6856         (ix86_update_stack_boundary): Here.  Don't over-align stack for
6857         __tls_get_addr.
6858         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
6859         if __tls_get_addr is called.
6861 2016-01-26  Christian Bruel  <christian.bruel@st.com>
6863         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
6865 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6867         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
6869 2016-01-26  Richard Biener  <rguenther@suse.de>
6871         PR middle-end/69467
6872         * match.pd: Guard X * CST CMP 0 pattern with single_use.
6874 2016-01-26  Richard Biener  <rguenther@suse.de>
6876         PR tree-optimization/69452
6877         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
6878         (move_computations_dom_walker::before_dom_children): Rename
6879         to ...
6880         (move_computations_worker): This.
6881         (move_computations): Perform an RPO rather than a DOM walk.
6883 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
6885         PR target/69442
6886         * combine.c (combine_instructions): For REG_EQUAL note with
6887         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
6888         to the underlying register.
6889         * doc/rtl.texi (REG_EQUAL): Document the behavior of
6890         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
6892 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
6894         PR target/67896
6895         * config/aarch64/aarch64-builtins.c
6896         (aarch64_init_simd_builtin_types): Do not set structural
6897         equality to __Poly{8,16,64,128}_t types.
6899 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
6901         PR tree-optimization/69400
6902         * wide-int.cc (wi_pack): Take the precision as argument and
6903         perform canonicalization here rather than in the callers.
6904         Use the main loop to handle all full-width HWIs.  Add a
6905         zero HWI if in_len isn't a full result.
6906         (wi::divmod_internal): Update accordingly.
6907         (wi::mul_internal): Likewise.  Simplify.
6909 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
6910             Sebastian Pop  <s.pop@samsung.com>
6912         * graphite-poly.c (apply_poly_transforms): Simplify.
6913         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
6914         (print_isl_map): Same.
6915         (print_isl_union_map): Same.
6916         (print_isl_schedule): New.
6917         (debug_isl_schedule): New.
6918         * graphite-dependences.c (scop_get_reads): Do not call
6919         isl_union_map_add_map that is undocumented isl functionality.
6920         (scop_get_must_writes): Same.
6921         (scop_get_may_writes): Same.
6922         (scop_get_original_schedule): Remove.
6923         (scop_get_dependences): Do not call isl_union_map_compute_flow that
6924         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
6925         (compute_deps): Remove.
6926         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
6927         (debug_schedule_ast): New.
6928         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
6929         set_separate_option.
6930         (graphite_regenerate_ast_isl): Add dump.
6931         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
6932         from scop->transformed_schedule.
6933         (graphite_regenerate_ast_isl): Add more dump.
6934         * graphite-optimize-isl.c (optimize_isl): Set
6935         scop->transformed_schedule.  Check whether schedules are equal.
6936         (apply_poly_transforms): Move here.
6937         * graphite-poly.c (apply_poly_transforms): ... from here.
6938         (free_poly_bb): Static.
6939         (free_scop): Static.
6940         (pbb_number_of_iterations_at_time): Remove.
6941         (print_isl_ast): New.
6942         (debug_isl_ast): New.
6943         (debug_scop_pbb): New.
6944         * graphite-scop-detection.c (print_edge): Move.
6945         (print_sese): Move.
6946         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
6947         (build_scop_scattering): Remove.
6948         (create_pw_aff_from_tree): Assert instead of bailing out.
6949         (add_condition_to_pbb): Remove unused code, do not fail.
6950         (add_conditions_to_domain): Same.
6951         (add_conditions_to_constraints): Remove.
6952         (build_scop_context): New.
6953         (add_iter_domain_dimension): New.
6954         (build_iteration_domains): Initialize pbb->iterators.
6955         Call add_conditions_to_domain.
6956         (nested_in): New.
6957         (loop_at): New.
6958         (index_outermost_in_loop): New.
6959         (index_pbb_in_loop): New.
6960         (outermost_pbb_in): New.
6961         (add_in_sequence): New.
6962         (add_outer_projection): New.
6963         (outer_projection_mupa): New.
6964         (add_loop_schedule): New.
6965         (build_schedule_pbb): New.
6966         (build_schedule_loop): New.
6967         (embed_in_surrounding_loops): New.
6968         (build_schedule_loop_nest): New.
6969         (build_original_schedule): New.
6970         (build_poly_scop): Call build_original_schedule.
6971         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
6972         (free_poly_dr): Remove.
6973         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
6974         (free_poly_bb): Remove.
6975         (debug_loop_vec): Remove.
6976         (print_isl_ast): Declare.
6977         (debug_isl_ast): Declare.
6978         (scop_do_interchange): Remove.
6979         (scop_do_strip_mine): Remove.
6980         (scop_do_block): Remove.
6981         (flatten_all_loops): Remove.
6982         (optimize_isl): Remove.
6983         (pbb_number_of_iterations_at_time): Remove.
6984         (debug_scop_pbb): Declare.
6985         (print_schedule_ast): Declare.
6986         (debug_schedule_ast): Declare.
6987         (struct scop): Remove schedule.  Add original_schedule,
6988         transformed_schedule.
6989         (free_gimple_poly_bb): Remove.
6990         (print_generated_program): Remove.
6991         (debug_generated_program): Remove.
6992         (unify_scattering_dimensions): Remove.
6993         * sese.c (print_edge): ... here.
6994         (print_sese): ... here.
6995         (debug_edge): ... here.
6996         (debug_sese): ... here.
6997         * sese.h (print_edge): Declare.
6998         (print_sese): Declare.
6999         (dump_edge): Declare.
7000         (dump_sese): Declare.
7002 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
7003             Sebastian Pop  <s.pop@samsung.com>
7005         * Makefile.in: Set ISLVER in site.exp.
7007 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
7009         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
7010         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
7011         through DECL_VALUE_EXPR for expansion.
7013 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7015         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
7016         the frame info after reload completed.
7018 2016-01-25  Jeff Law  <law@redhat.com>
7020         PR tree-optimization/69196
7021         PR tree-optimization/68398
7022         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
7023         tree-ssa-threadupdate.c.
7024         (determine_bb_domination_status): Prototype
7025         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
7026         (determine_bb_domination_status): No longer static.
7027         (valid_jump_thread_path): Remove code to detect characteristics
7028         of the jump thread path not associated with correctness.
7029         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
7030         Correct test for thread path length.  Count PHIs for real operands as
7031         statements that need to be copied.  Do not count ASSERT_EXPRs.
7032         Look at all the blocks in the thread path.  Compute and selectively
7033         filter thread paths based on threading through the latch, threading
7034         a multiway branch or crossing a multiway branch.
7036 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7038         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
7039         decl with __attribute__ ((unused)) annotation.
7041 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
7043         PR target/69421
7044         * tree-vect-stmts.c (vectorizable_condition): Check vectype
7045         of operands is compatible with a statement vectype.
7047 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
7049         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
7050         improve wording for mixed storage order support.
7052 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
7054         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
7055         (vcvt_u64_f64): Likewise.
7056         (vcvta_s64_f64): Likewise.
7057         (vcvta_u64_f64): Likewise.
7058         (vcvtm_s64_f64): Likewise.
7059         (vcvtm_u64_f64): Likewise.
7060         (vcvtn_s64_f64): Likewise.
7061         (vcvtn_u64_f64): Likewise.
7062         (vcvtp_s64_f64): Likewise.
7063         (vcvtp_u64_f64): Likewise.
7065 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
7067         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
7068         (arc_init): Check validity mll64 option.
7069         (arc_save_restore): Use double load/store instruction.
7070         (arc_expand_movmem): Likewise.
7071         (arc_split_move): Don't split if we have double load/store
7072         instructions. Returns a boolean.
7073         (arc_process_double_reg_moves): Change function to return boolean
7074         instead of a sequence of instructions.
7075         (arc_dwarf_register_span): New function.
7076         * config/arc/arc-protos.h (arc_split_move): Change prototype.
7077         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
7078         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
7079         (*movdf_insn): Likewise.
7080         * config/arc/arc.opt (mll64): New option.
7081         * config/arc/predicates.md (even_register_operand): New predicate.
7082         * doc/invoke.texi (ARC Options): Add mll64 documentation.
7084 2016-01-25  Richard Biener  <rguenther@suse.de>
7086         PR lto/69393
7087         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
7088         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
7089         DECL_NAMELESS.
7090         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
7092 2016-01-25  Richard Biener  <rguenther@suse.de>
7094         PR tree-optimization/69376
7095         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
7096         flag.
7097         (VN_INFO_ANTI_RANGE_P): New inline.
7098         (VN_INFO_RANGE_TYPE): Likewise.
7099         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
7100         SSA_NAME_ANTI_RANGE_P.
7101         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
7102         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7103         Properly query VN_INFO_RANGE_TYPE.
7105 2016-01-25  Nick Clifton  <nickc@redhat.com>
7107         PR target/66655
7108         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
7110 2016-01-23  Tom de Vries  <tom@codesourcery.com>
7112         PR tree-optimization/69426
7113         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
7114         removed clobber.
7116 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
7118         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
7119         "the the" with "the" in the comments.
7120         * ipa-devirt.c (build_type_inheritance_graph,
7121         update_type_inheritance_graph): Likewise.
7122         * tree.c (build_function_type_list_1): Likewise.
7123         * cfgloopmanip.c (scale_loop_profile): Likewise.
7124         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
7125         * gimple-ssa-split-paths.c
7126         (find_block_to_duplicate_for_splitting_paths): Likewise.
7127         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
7128         * expr.c (convert_move): Likewise.
7129         * var-tracking.c (vt_stack_adjustments): Likewise.
7130         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
7131         * tree-vrp.c (test_for_singularity): Likewise.
7133         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
7134         directly instead of building a temporary tree.
7136         PR bootstrap/69434
7137         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
7138         remove <algorithm> include.
7140 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
7142         PR target/69432
7143         * config/i386/i386.c: Include dojump.h.
7144         (expand_small_movmem_or_setmem,
7145         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
7146         fixes.
7147         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
7148         if dynamic_check != -1.
7150 2016-01-21  Jeff Law  <law@redhat.com>
7152         PR middle-end/69347
7153         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
7154         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
7155         into dominated_by_p.
7156         (cprop_into_successor_phis): Avoid unnecessary tests.
7158 2016-01-22  Richard Henderson  <rth@redhat.com>
7160         PR target/69416
7161         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
7162         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
7164 2016-01-22  Michael Matz  <matz@suse.de>
7166         * system.h (string, algorithm): Include only conditionally.
7167         (new): Include always under C++.
7168         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
7169         * final.c (toplevel): Ditto.
7170         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
7171         * genconditions.c (write_header): Make gencondmd.c define
7172         INCLUDE_STRING.
7173         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
7175         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
7176         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
7178 2016-01-22  Christian Bruel  <christian.bruel@st.com>
7180         PR target/68674
7181         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
7183 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7185         PR target/69403
7186         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
7187         define_insn_and_split.  Ensure operands[1] and operands[0] do not
7188         get assigned the same register.
7190 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
7192         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
7194 2016-01-22  Christian Bruel  <christian.bruel@st.com>
7196         * config/arm/arm-c.c (arm_pragma_target_parse):
7197         Remove warn_builtin_macro_redefined overwrite.
7199 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7201         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
7202         flag_non_call_exceptions compatibility.
7204 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
7206         PR debug/66668
7207         * dwarf2out.c (add_child_die_after): New function.
7208         (dwarf_qual_info_t): New type.
7209         (dwarf_qual_info): New variable.
7210         (qualified_die_p): New function.
7211         (modified_type_die): For -fdebug-types-section, ensure
7212         canonical order of qualifiers.  Put qualified DIEs adjacent
7213         to the corresponding non-qualified type DIE and search there
7214         for existing qualified DIEs.
7216 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
7218         * doc/extend.texi (scalar_storage_order type attribute): Document
7219         restriction on type punning and aliasing, and remove future tense.
7221 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
7223         PR target/69252
7224         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
7225         first stage.
7227 2016-01-21  Jeff Law  <law@redhat.com>
7229         PR middle-end/69347
7230         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
7231         useless call to record_temporary_equivalences.
7232         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
7233         allocate 10 slots in the bb_path vector and let it grow as needed.
7234         (fsm_find_control_statement_thread_paths): Similarly for the next_path
7235         vector.
7237 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
7239         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
7240         Detangle.
7241         * configure: Regenerate.
7243 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
7245         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
7246         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
7248 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
7250         PR middle-end/66178
7251         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
7252         drop EXPAND_INITIALIZER.
7253         * rtl.h (contains_symbolic_reference_p): Declare.
7254         * rtlanal.c (contains_symbolic_reference_p): New function.
7255         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
7256         a subtraction into a NOT if symbolic constants are involved.
7258 2016-01-21  Anton Blanchard  <anton@samba.org>
7259             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7261         PR target/63354
7262         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
7263         #define.
7264         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
7265         function.
7267 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
7269         * config/microblaze/microblaze.c
7270         (get_branch_target): New.
7271         (insert_wic_for_ilb_runout): New.
7272         (insert_wic): New.
7273         (microblaze_machine_dependent_reorg): New.
7274         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
7275         * config/microblaze/microblaze.md
7276         (UNSPEC_IPREFETCH): Define.
7277         (iprefetch): New pattern
7278         * config/microblaze/microblaze.opt
7279         (mxl-prefetch): New flag.
7281 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
7283         * config/microblaze/microblaze.h
7284         (FIXED_REGISTERS): Update in macro.
7285         (CALL_USED_REGISTERS): Update in macro.
7287 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
7289         PR rtl-optimization/68920
7290         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
7291         moves.
7293 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
7295         PR rtl-optimization/68990
7296         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
7297         pseudo instead of inheritance ones.
7299 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7300             Nick Clifton  <nickc@redhat.com>
7302         PR target/69129
7303         PR target/69012
7304         * config/mips/mips.c (mips_compute_frame_info): Initialise
7305         args_size and hard_frame_pointer_offset fields of the frame
7306         structure before calling mips_global_pointer.
7308 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
7310         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
7311         label reference.
7312         * configure: Regenerate.
7314 2016-01-21  Richard Biener  <rguenther@suse.de>
7316         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
7318 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
7320         * config/s390/s390.c (s390_asm_declare_function_size): Add code
7321         to actually emit the .size directive.
7323 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
7324              Jakub Jelinek  <jakub@redhat.com>
7326         PR target/69187
7327         PR target/65624
7328         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
7329         args array size by one to avoid buffer overflow.
7331 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
7333         * config/s390/s390.md (pool_section_start): Use switch_to_section
7334         to select proper read-only data section instead of hardcoding
7335         .rodata.
7336         (pool_section_end): Use switch_to_section to match the above.
7338 2016-01-21  Richard Biener  <rguenther@suse.de>
7340         PR tree-optimization/69378
7341         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
7342         (set_ssa_val_to): Use it for dominance checks taking into
7343         account not executable edges.
7345 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
7347         PR c++/69355
7348         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
7349         for bitsize instead of GET_MODE_PRECISION (mode).
7351 2016-01-20  Martin Sebor  <msebor@redhat.com>
7353         PR c/52291
7354         * extend.texi (__sync Builtins): Clarify the semantics of
7355         __sync_fetch_and_OP built-ins on pointers.
7356         (__atomic Builtins): Same.
7358 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7359             Sebastian Pop  <s.pop@samsung.com>
7361         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
7362         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
7363         (is_valid_rename): Same.
7364         (translate_isl_ast_to_gimple::get_rename): Same.
7365         (translate_isl_ast_to_gimple::rename_all_uses): Same.
7366         (translate_isl_ast_to_gimple::rename_uses): Same.
7367         (get_new_name): Check for close_phi nodes.
7368         (copy_loop_phi_args): Use phi_node_kind.
7369         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
7370         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
7372 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7373             Sebastian Pop  <s.pop@samsung.com>
7375         Revert commit r229783.
7376         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
7377         Remove use of parameter_rename_map.
7378         (copy_def): Remove.
7379         (copy_internal_parameters): Remove.
7380         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
7381         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
7382         (free_sese_info): Do not free parameter_rename_map.
7383         (set_rename): Do not use parameter_rename_map.
7384         (rename_uses): Update call to set_rename.
7385         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
7386         * sese.h (parameter_rename_map_t): Remove.
7387         (struct sese_info_t): Remove field parameter_rename_map.
7389 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7390             Sebastian Pop  <s.pop@samsung.com>
7392         * graphite-isl-ast-to-gimple.c: Fix comment.
7393         * graphite-scop-detection.c (defined_in_loop_p): New.
7394         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
7395         names defined in loop.
7397 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7398             Sebastian Pop  <s.pop@samsung.com>
7400         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
7401         Discard unstructured if-then-else regions.
7403 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7404             Sebastian Pop  <s.pop@samsung.com>
7406         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
7407         (cleanup_loop_iter_dom): Remove.
7408         (build_loop_iteration_domains): Remove.
7409         (build_scop_context): Remove.
7410         (build_scop_iteration_domain): Remove.
7411         (add_loop_constraints): New.
7412         (build_iteration_domains): New.
7413         (build_poly_scop): Call build_iteration_domains.
7415 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7416             Sebastian Pop  <s.pop@samsung.com>
7418         * graphite-scop-detection.c
7419         (scop_detection::harmful_loop_in_region): Free dom and loops.
7420         (scop_detection::loop_body_is_valid_scop): Free bbs.
7422 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7423             Sebastian Pop  <s.pop@samsung.com>
7425         * graphite-scop-detection.c (record_loop_in_sese): New.
7426         (gather_bbs::before_dom_children): Call record_loop_in_sese.
7427         (build_scops): Remove call to build_sese_loop_nests.
7428         * sese.c (sese_record_loop): Remove.
7429         (build_sese_loop_nests): Remove.
7430         (new_sese_info): Remove region->loops.
7431         (free_sese_info): Same.
7432         * sese.h (sese_contains_loop): Same.
7433         (build_sese_loop_nests): Remove.
7434         (sese_contains_loop): Remove.
7436 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7437             Sebastian Pop  <s.pop@samsung.com>
7439         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
7440         loop_is_valid_in_scop.
7441         (scop_detection::harmful_stmt_in_region): Renamed
7442         harmful_loop_in_region.
7443         Call loop_is_valid_in_scop.
7445 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7446             Sebastian Pop  <s.pop@samsung.com>
7448         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
7449         isl_ast_node_mark.
7451 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7452             Sebastian Pop  <s.pop@samsung.com>
7454         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
7455         * graphite.h (struct poly_bb): Remove field is_reduction.
7456         (PBB_IS_REDUCTION): Remove.
7458 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
7459             Sebastian Pop  <s.pop@samsung.com>
7461         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
7462         (add_pdr_constraints): Same.
7463         (scop_get_reads): Same.
7464         (scop_get_must_writes): Same.
7465         (scop_get_may_writes): Same.
7466         (scop_get_original_schedule): Same.
7467         (extend_schedule): Same.
7468         (apply_schedule_on_deps): Same.
7469         (carries_deps): Same.
7470         (compute_deps): Same.
7471         (scop_get_dependences): Same.
7472         * graphite-isl-ast-to-gimple.c
7473         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
7474         * graphite-optimize-isl.c (get_schedule_for_band): Same.
7475         (get_schedule_for_band_list): Same.
7476         (get_schedule_map): Same.
7477         (apply_schedule_map_to_scop): Same.
7478         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
7479         (build_loop_iteration_domains): Same.
7480         (add_condition_to_pbb): Same.
7481         (add_param_constraints): Same.
7482         (pdr_add_memory_accesses): Same.
7483         (pdr_add_data_dimensions): Same.
7485 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
7487         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
7488         requirements.
7490 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
7492         * common.opt (feliminate-dwarf2-dups): Replace references to
7493         "DWARF 2" with just "DWARF".
7494         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
7495         * doc/extend.texi: Likewise.
7496         * doc/cpp.texi: Likewise.
7497         * doc/invoke.texi: Likewise.
7498         (Option Summary): Add -gdwarf to list of Debugging Options.
7499         (Debugging Options): Document -gdwarf.
7500         * doc/contrib.texi: Spell "DWARF" like that.
7502 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
7504         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
7505         warning.  Fix up formatting.
7507         PR middle-end/67653
7508         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
7509         attempt to mark memory input operand addressable and
7510         call prepare_gimple_addressable in that case.  Don't adjust
7511         input_location for diagnostics, use error_at instead.
7513 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
7515         * config/rs6000/ppc-auxv.h: New file.
7516         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
7517         (cpu_is): Likewise.
7518         (cpu_supports): Likewise.
7519         * config/rs6000/rs6000.c: include "ppc-auxv.h".
7520         (cpu_is_info): New variable.
7521         (cpu_supports_info): Likewise.
7522         (tcb_verification_symbol): Likewise.
7523         (cpu_builtin_p): Likewise.
7524         (cpu_expand_builtin): New function.
7525         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
7526         (rs6000_init_builtins): Likewise.
7527         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
7528         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
7529         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
7530         * configure: Regenerate.
7531         * config.in: Likewise.
7532         * doc/extend.texi (PowerPC Built-in Functions): Document
7533         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
7535 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
7537         PR target/68609
7538         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
7539         domain check.
7540         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
7541         for V4SFmode.
7543 2016-01-20  Richard Henderson  <rth@redhat.com>
7545         PR bootstrap/69343
7546         PR bootstrap/69339
7547         PR tree-opt/68964
7548         Revert:
7549         * tree.c (tm_define_builtin): New.
7550         (find_tm_vector_type): New.
7551         (build_tm_vector_builtins): New.
7552         (build_common_builtin_nodes): Call it.
7554 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
7556         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
7557         (arm_fp_ok): Likewise.
7558         (arm_fp): Likewise.
7559         (arm_crypto): Likewise.
7561 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
7562             Richard Biener  <rguenther@suse.de>
7564         PR tree-optimization/69328
7565         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
7566         vectors have same number of elements.
7567         (vectorizable_condition): Fix masked version recognition.
7569 2016-01-20  Richard Biener  <rguenther@suse.de>
7571         PR tree-optimization/69345
7572         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
7573         (VN_INFO_PTR_INFO): Likewise.
7574         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
7575         info when it is equal between non-dominating SSA names.
7576         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
7577         Make sure to look at original SSA infos.
7579 2016-01-20  Jeff Law  <law@redhat.com>
7581         PR target/25114
7582         * config/m68k/predicates.md (pow2_m1_operand): New predicate
7583         extracted from ...
7584         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
7585         (pc_or_label_operand): New predicate.
7586         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
7587         tests for small integers that are 2^n - 1.
7589 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
7591         * doc/invoke.texi (Options Summary): Add '.' after @xref.
7593 2016-01-19  Jeff Law  <law@redhat.com>
7595         PR middle-end/69347
7596         * tree-ssa-threadbackwards.c
7597         (fsm_find_control_statement_thread_paths): Do not try to lookup
7598         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
7600 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
7602         * doc/lto.texi: Remove text that says only Gold has linker plugin
7603         support.
7605 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
7607         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
7608         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
7609         the DIE accordingly.
7610         (modified_type_die): Add REVERSE parameter and pass it recursively,
7611         as well as to base_type_die.  Adjust presence check accordingly.
7612         (base_type_for_mode): Adjust call to modified_type_die.
7613         (add_type_attribute): Add REVERSE parameter and pass it to
7614         modified_type_die.
7615         (generic_parameter_die): Adjust call to add_type_attribute.
7616         (add_scalar_info): Likewise.
7617         (add_subscript_info): Likewise.
7618         (gen_array_type_die): Likewise.
7619         (gen_descr_array_type_die): Likewise.
7620         (gen_entry_point_die): Likewise.
7621         (gen_enumeration_type_die): Likewise.
7622         (gen_formal_parameter_die): Likewise.
7623         (gen_subprogram_die): Likewise.
7624         (gen_variable_die ): Likewise.
7625         (gen_const_die): Likewise.
7626         (gen_field_die): Likewise.
7627         (gen_pointer_type_die): Likewise.
7628         (gen_reference_type_die): Likewise.
7629         (gen_ptr_to_mbr_type_die): Likewise.
7630         (gen_inheritance_die): Likewise.
7631         (gen_subroutine_type_die): Likewise.
7632         (gen_typedef_die): Likewise.
7633         (force_type_die): Adjust call to modified_type_die.
7635 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
7637         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
7638         flow throughout the file.  Fix broken link to Objective-C 2.0
7639         documentation.
7640         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
7641         errors.
7643 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
7645         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
7647 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
7649         PR ipa/66223
7650         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
7651         (maybe_record_node): Record cxa_pure_virtual as the only possible
7652         target if there are not ohter candidates.
7653         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
7655 2016-01-19  Richard Biener  <rguenther@suse.de>
7657         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
7658         (get_memory_order): Likewise.
7660 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
7662         * tree-vect-stmts.c (vectorizable_store): Check
7663         rhs vectype.
7665 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
7667         PR jit/68446
7668         * gcc.c (driver::decode_argv): Add call to
7669         init_opts_obstack before init_options_struct.
7670         * opts.c (init_opts_obstack): Remove idempotency.
7671         (init_options_struct): Replace call to init_opts_obstack
7672         with a gcc_assert to verify that it has already been called.
7673         * toplev.c (toplev::main): Add call to init_opts_obstack before
7674         calls to init_options_struct.
7675         (toplev::finalize): Move cleanup of opts_obstack next to
7676         cleanup of save_decoded_options, clearing the latter, and
7677         save_decoded_options_count.
7679 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7681         PR target/69135
7682         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
7683         attribute to unconditional.  Remove %? from output template.
7685 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
7686             Jiong Wang  <jiong.wang@arm.com>
7688         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
7689         generated from different expand order.
7691 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
7693         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
7694         Add support for CCMP costing.
7696 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
7698         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
7699         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
7700         (fccmpe<mode>): Likewise.
7701         (fcmp): Rename to fcmp and globalize pattern.
7702         (fcmpe): Likewise.
7703         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
7704         (aarch64_gen_ccmp_next): Add FP support.
7706 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
7708         * target.def (gen_ccmp_first): Update documentation.
7709         (gen_ccmp_next): Likewise.
7710         * doc/tm.texi (gen_ccmp_first): Update documentation.
7711         (gen_ccmp_next): Likewise.
7712         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
7713         expand_ccmp_expr_1.  Improve comments.
7714         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
7715         (ccmp_ior<mode>): Remove pattern.
7716         (cmp<mode>): Remove expand.
7717         (cmp): Globalize pattern.
7718         (cstorecc4): Use cc_register.
7719         (mov<mode>cc): Remove ccmp_cc_register check.
7720         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
7721         Simplify after removal of CC_DNE/* modes.
7722         (aarch64_ccmp_mode_to_code): Remove.
7723         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
7724         In 'k' case use integer as condition.
7725         (aarch64_nzcv_codes): Remove inverted cases.
7726         (aarch64_code_to_ccmode): Remove.
7727         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
7728         comparison with CC register to be used in folowing CCMP/branch/CSEL.
7729         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
7730         pattern.  Return the comparison with CC register.  Invert conditions
7731         when bitcode is OR.
7732         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
7733         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
7735 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
7737         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
7738         instrumented_version.
7740 2016-01-19  Richard Biener  <rguenther@suse.de>
7742         PR tree-optimization/69336
7743         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
7744         handled components with get_ref_base_and_extent.
7745         (equal_mem_array_ref_p): Adjust.
7747 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
7749         PR debug/65779
7750         * shrink-wrap.c: Include valtrack.h.
7751         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
7752         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
7753         in between insn and where it will be moved to.  Call
7754         dead_debug_insert_temp.
7755         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
7756         first and dead_debug_local_finish at the end.
7757         For uses and defs bitmap, handle all regs in between REGNO and
7758         END_REGNO, not just the first one.
7760 2016-01-19  Richard Biener  <rguenther@suse.de>
7762         PR tree-optimization/69352
7763         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
7764         (equal_mem_array_ref_p): Constrain size and max size properly.
7765         Compare the reverse flag.
7767 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
7769         * ira.c (ira): Update regstat data if we deleted insns.
7771 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
7773         PR rtl-optimization/68955
7774         PR rtl-optimization/64557
7775         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
7776         here.  Fix up formatting.
7777         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
7779 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
7781         PR lto/69133
7782         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
7783         assume that the node has body.
7784         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
7785         check.
7787 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
7789         * lto-streamer-out.c (lto_output): Do not stream instrumentation
7790         thunks.
7792 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
7794         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
7795         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
7797 2016-01-19  Martin Jambor  <mjambor@suse.cz>
7798             Martin Liska  <mliska@suse.cz>
7799             Michael Matz  <matz@suse.de>
7801         * Makefile.in (OBJS): Add new source files.
7802         (GTFILES): Add hsa.c.
7803         * common.opt (disable_hsa): New variable.
7804         (-Whsa): New warning.
7805         * config.in (ENABLE_HSA): New.
7806         * configure.ac: Treat hsa differently from other accelerators.
7807         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
7808         $enable_offloading.
7809         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
7810         * doc/install.texi (Configuration): Document --with-hsa-runtime,
7811         --with-hsa-runtime-include, --with-hsa-runtime-lib and
7812         --with-hsa-kmt-lib.
7813         * doc/invoke.texi (-Whsa): Document.
7814         (hsa-gen-debug-stores): Likewise.
7815         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
7816         to invoke offload compiler for hsa acclerator.
7817         * opts.c (common_handle_option): Determine whether HSA offloading
7818         should be performed.
7819         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
7820         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
7821         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
7822         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
7823         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
7824         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
7825         GF_OMP_FOR_KIND_GRID_LOOP.
7826         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
7827         (pp_gimple_stmt_1): Likewise.
7828         * gimple-walk.c (walk_gimple_stmt): Likewise.
7829         * gimple.c (gimple_build_omp_grid_body): New function.
7830         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
7831         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
7832         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
7833         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
7834         GF_OMP_TEAMS_GRID_PHONY.
7835         (gimple_statement_omp_single_layout): Updated comments.
7836         (gimple_build_omp_grid_body): New function.
7837         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
7838         (gimple_omp_for_grid_phony): New function.
7839         (gimple_omp_for_set_grid_phony): Likewise.
7840         (gimple_omp_parallel_grid_phony): Likewise.
7841         (gimple_omp_parallel_set_grid_phony): Likewise.
7842         (gimple_omp_teams_grid_phony): Likewise.
7843         (gimple_omp_teams_set_grid_phony): Likewise.
7844         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
7845         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
7846         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
7847         (BUILT_IN_GOMP_TARGET): Updated type.
7848         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
7849         (adjust_for_condition): New function.
7850         (get_omp_for_step_from_incr): Likewise.
7851         (extract_omp_for_data): Moved parts to adjust_for_condition and
7852         get_omp_for_step_from_incr.
7853         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
7854         (fixup_child_record_type): Bail out if receiver_decl is NULL.
7855         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
7856         (scan_omp_parallel): Do not create child functions for phony
7857         constructs.
7858         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
7859         (scan_omp_1_op): Checking assert we are not remapping to
7860         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
7861         (parallel_needs_hsa_kernel_p): New function.
7862         (expand_parallel_call): Register apprpriate parallel child
7863         functions as HSA kernels.
7864         (grid_launch_attributes_trees): New type.
7865         (grid_attr_trees): New variable.
7866         (grid_create_kernel_launch_attr_types): New function.
7867         (grid_insert_store_range_dim): Likewise.
7868         (grid_get_kernel_launch_attributes): Likewise.
7869         (get_target_argument_identifier_1): Likewise.
7870         (get_target_argument_identifier): Likewise.
7871         (get_target_argument_value): Likewise.
7872         (push_target_argument_according_to_value): Likewise.
7873         (get_target_arguments): Likewise.
7874         (expand_omp_target): Call get_target_arguments instead of looking
7875         up for teams and thread limit.
7876         (grid_expand_omp_for_loop): New function.
7877         (grid_arg_decl_map): New type.
7878         (grid_remap_kernel_arg_accesses): New function.
7879         (grid_expand_target_kernel_body): New function.
7880         (expand_omp): Call it.
7881         (lower_omp_for): Do not emit phony constructs.
7882         (lower_omp_taskreg): Do not emit phony constructs but create for them
7883         a temporary variable receiver_decl.
7884         (lower_omp_taskreg): Do not emit phony constructs.
7885         (lower_omp_teams): Likewise.
7886         (lower_omp_grid_body): New function.
7887         (lower_omp_1): Call it.
7888         (grid_reg_assignment_to_local_var_p): New function.
7889         (grid_seq_only_contains_local_assignments): Likewise.
7890         (grid_find_single_omp_among_assignments_1): Likewise.
7891         (grid_find_single_omp_among_assignments): Likewise.
7892         (grid_find_ungridifiable_statement): Likewise.
7893         (grid_target_follows_gridifiable_pattern): Likewise.
7894         (grid_remap_prebody_decls): Likewise.
7895         (grid_copy_leading_local_assignments): Likewise.
7896         (grid_process_kernel_body_copy): Likewise.
7897         (grid_attempt_target_gridification): Likewise.
7898         (grid_gridify_all_targets_stmt): Likewise.
7899         (grid_gridify_all_targets): Likewise.
7900         (execute_lower_omp): Call grid_gridify_all_targets.
7901         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
7902         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
7903         (tree_omp_clause): Added union field dimension.
7904         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
7905         * tree.c (omp_clause_num_ops): Added number of arguments of
7906         OMP_CLAUSE__GRIDDIM_.
7907         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
7908         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
7909         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
7910         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
7911         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
7912         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
7913         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
7914         * tree-pass.h (make_pass_gen_hsail): Declare.
7915         (make_pass_ipa_hsa): Likewise.
7916         * ipa-hsa.c: New file.
7917         * lto-section-in.c (lto_section_name): Add hsa section name.
7918         * lto-streamer.h (lto_section_type): Add hsa section.
7919         * timevar.def (TV_IPA_HSA): New.
7920         * hsa-brig-format.h: New file.
7921         * hsa-brig.c: New file.
7922         * hsa-dump.c: Likewise.
7923         * hsa-gen.c: Likewise.
7924         * hsa.c: Likewise.
7925         * hsa.h: Likewise.
7926         * toplev.c (compile_file): Call hsa_output_brig.
7927         * hsa-regalloc.c: New file.
7929 2016-01-18  Jeff Law  <law@redhat.com>
7931         PR tree-optimization/69320
7932         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
7933         ranged object, do nothing if the RHS constant is not [0..1].
7934         (optimize_stmt): Comparing a boolean ranged object against a
7935         constant outside [0..1] results in a compile-time constant.
7937         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
7938         test.
7940 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
7942         * doc/invoke.texi (Invoking GCC): Add new section to menu.
7943         (Option Summary): Update to reflect new section and moved options.
7944         (C++ Dialect Options): Move -fstats to new section.
7945         (Debugging Options): Move all dump, statistics, and other GCC
7946         developer options to new section.  Rewrite section introduction
7947         and re-order remaining options to put the more basic ones first.
7948         (Optimization Options): Move -fira-verbose and -flto-report* to
7949         new section.
7950         (Developer Options): New section incorporating moved options.
7951         * doc/cppopts.texi (-dM): Update cross-reference.
7953 2016-01-18  Richard Henderson  <rth@redhat.com>
7955         PR target/69176
7956         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
7957         operands to pseudo only if CSE is expected.  Split long immediate
7958         operands only after reload, and for the stack pointer.
7959         (*add<GPI>3_pluslong): Remove.
7960         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
7961         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
7962         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
7963         (*add<GPI>3 peepholes): New.
7964         (*add<GPI>3 splitters): New.
7965         * config/aarch64/constraints.md (Upl): New.
7966         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
7968 2016-01-18  Richard Biener  <rguenther@suse.de>
7970         PR tree-optimization/69297
7971         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
7972         stmt at most once.
7973         (vect_bb_vectorization_profitable_p): Clear visited flag again.
7975 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
7977         PR middle-end/68542
7978         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
7979         of mixind vector and scalar types.
7980         (fold_relational_const): Add handling of vector
7981         comparison with boolean result.
7982         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
7983         comparison of vector operands with boolean result for EQ/NE only.
7984         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
7985         (verify_gimple_cond): Likewise.
7986         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
7987         valid type of VAL.
7989 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
7991         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
7992         !TARGET_OCTEON.
7994 2016-01-18  Richard Biener  <rguenther@suse.de>
7996         PR middle-end/69308
7997         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
7999 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8001         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
8003 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8005         * omp-low.c (set_oacc_fn_attrib): Make extern.
8006         * omp-low.h (set_oacc_fn_attrib): Declare.
8007         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
8008         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
8009         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
8010         Add and handle function parameter oacc_kernels_p.
8011         (find_reduc_addr, get_omp_data_i_param): New function.
8012         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
8013         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
8014         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
8015         Calculate dominance info.  Skip loops that are not in a kernels region
8016         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
8017         (pass_parallelize_loops::execute): Call parallelize_loops with
8018         oacc_kernels_p argument.
8019         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
8020         New member function.
8021         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
8022         * passes.def: Add argument to pass_parallelize_loops instantation.
8024 2016-01-18  Tom de Vries  <tom@codesourcery.com>
8026         * tree-parloops.c (pass_parallelize_loops::execute): Allow
8027         pass_parallelize_loops to be run outside the loop pipeline.
8029 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8031         * tree-scalar-evolution.c (follow_copies_to_constant): New.
8032         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
8034 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8036         PR target/63679
8037         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
8038         using get_ref_base_and_extent.
8039         (equal_mem_array_ref_p): New.
8040         (hashable_expr_equal_p): Add call to previous.
8042 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
8044         PR target/63679
8045         * tree-sra.c (disqualified_constants, constant_decl_p): New.
8046         (sra_initialize): Allocate disqualified_constants.
8047         (sra_deinitialize): Free disqualified_constants.
8048         (disqualify_candidate): Update disqualified_constants when appropriate.
8049         (create_access): Scan for constant-pool entries as we go along.
8050         (scalarizable_type_p): Add check against type_contains_placeholder_p.
8051         (maybe_add_sra_candidate): Allow constant-pool entries.
8052         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
8053         (initialize_constant_pool_replacements): New.
8054         (sra_modify_assign): Avoid mangling assignments created by previous,
8055         and don't generate writes into constant pool.
8056         (sra_modify_function_body): Call initialize_constant_pool_replacements.
8058 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
8060         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
8061         andnot instruction.
8062         (scalar_chain::convert_op): Likewise.
8063         * config/i386/i386.md (*andndi3_doubleword): New.
8065 2016-01-18  Richard Biener  <rguenther@suse.de>
8067         PR tree-optimization/69170
8068         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
8069         building a vector from scalar results of a pattern stmt.
8071 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
8073         * haifa-sched.c (autopref_multipass_init): Work around
8074         -Wmaybe-uninitialized warning.
8076 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8078         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
8079         against the constant 0.
8081 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8083         PR tree-optimization/68799
8084         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
8085         look up phi candidates in the statement-candidate map.
8086         (phi_add_costs): Likewise.
8087         (record_phi_increments): Likewise.
8088         (phi_incr_cost): Likewise.
8089         (ncd_with_phi): Likewise.
8090         (all_phi_incrs_profitable): Likewise.
8092 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
8094         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
8095         -Wmaybe-uninitialized warning.
8097 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
8099         * doc/invoke.texi (Invoking GCC): Add new section to menu.
8100         (Option Summary): Update to reflect new section and moved options.
8101         (C++ Dialect Options): Move -fvtable-verify and related options.
8102         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
8103         and profiling-related options.
8104         (Optimization Options): Move profile generation options and
8105         -fstack-protector and related options.
8106         (Instrumentation Options): New section incorporating moved options.
8107         (Code Generation Options): Move -finstrument-functions and
8108         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
8110 2016-01-16  Tom de Vries  <tom@codesourcery.com>
8112         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
8114 2016-01-16  Tom de Vries  <tom@codesourcery.com>
8116         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
8118 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
8120         * hash-table.h (hash_table::empty): Turn into an inline wrapper
8121         that checks whether the table is already empty.  Rename the
8122         original implementation to...
8123         (hash_table::empty_slot): ...this new private function.
8125 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
8127         PR diagnostic/68899
8128         * diagnostic-show-locus.c (layout::print_source_line): Move x
8129         offset of line until after call to
8130         get_line_width_without_trailing_whitespace.
8132 2016-01-15  Jeff Law  <law@redhat.com>
8134         PR tree-optimization/69270
8135         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
8136         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
8137         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
8138         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
8139         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
8140         ssa_name_has_boolean_range and constant_boolean_node.
8142 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
8144         PR rtl-optimization/69030
8145         * lra-spills.c (remove_pseudos): Check nrefs and make the function
8146         returning bool.
8147         (spill_pseudos): Delete debug insn for dead pseudo.
8148         (lra_spill): Initiate spill_hard_reg and slots memory separately.
8150 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
8152         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
8153         New.
8154         (TYPES_UNOPUS): Likewise.
8155         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
8156         builtin type, from UNOP to UNOPUS.
8157         (lbtruncuv4sf): Likewise.
8158         (lbtruncuv2df): Likewise.
8159         (lrounduv2sf): Likewise.
8160         (lrounduv4sf): Likewise.
8161         (lrounduv2df): Likewise.
8162         (lroundusf): Likewise.
8163         (lroundusf): Likewise.
8164         (lceiluv2sf): Likewise.
8165         (lceiluv4sf): Likewise.
8166         (lceiluv2df): Likewise.
8167         (lceilusf): Likewise.
8168         (lceiludf): Likewise.
8169         (lflooruv2sf): Likewise.
8170         (lflooruv4sf): Likewise.
8171         (lflooruv2df): Likewise.
8172         (lfloorusf): Likewise.
8173         (lfloorudf): Likewise.
8174         (lfrintnuv2sf): Likewise.
8175         (lfrintnuv4sf): Likewise.
8176         (lfrintnuv2df): Likewise.
8177         (lfrintnusf): Likewise.
8178         (lfrintnudf): Likewise.
8179         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
8180         conversion.
8181         (vcvtq_u32_f32): Likewise.
8182         (vcvtq_u64_f64): Likewise.
8183         (vcvta_u32_f32): Likewise.
8184         (vcvtaq_u32_f32): Likewise.
8185         (vcvtaq_u64_f64): Likewise.
8186         (vcvtm_u32_f32): Likewise.
8187         (vcvtmq_u32_f32): Likewise.
8188         (vcvtmq_u64_f64): Likewise.
8189         (vcvtn_u32_f32): Likwise.
8190         (vcvtnq_u32_f32): Likewise.
8191         (vcvtnq_u64_f64): Likewise.
8192         (vcvtp_u32_f32): Likewise.
8193         (vcvtpq_u32_f32): Likewise.
8194         (vcvtpq_u64_f64): Likewise.
8195         (vcvtmd_u64_f64): Likewise.
8196         (vcvtms_u32_f32): Likewise.
8197         (vcvtad_u64_f64): Likewise.
8198         (vcvtas_u32_f32): Likewise.
8199         (vcvtnd_u64_f64): Likewise.
8200         (vcvtns_u32_f32): Likewise.
8201         (vcvtpd_u64_f64): Likewise.
8202         (vcvtps_u32_f32): Likewise.
8204 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8206         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
8207         CSEL of zero_extended registers.
8209 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8211         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
8212         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
8214 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8216         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
8217         false when argument string is not found in the attributes table
8218         at all.
8220 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
8222         PR target/68609
8223         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
8224         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
8225         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
8226         precision estimate.
8228 2016-01-15  Richard Biener  <rguenther@suse.de>
8230         PR tree-optimization/66856
8231         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
8232         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
8233         (vect_create_new_slp_node): Increment stmt reference count.
8234         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
8235         an SLP tree before swapping operands.
8236         (vect_build_slp_tree): Likewise.
8237         (destroy_bb_vec_info): Free stmt info after SLP instances.
8238         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
8239         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
8240         (STMT_VINFO_NUM_SLP_USES): New macro.
8242 2016-01-15  Richard Biener  <rguenther@suse.de>
8244         PR debug/69137
8245         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
8246         (add_linkage_name): ... here.
8247         (gen_typedef_die): Use add_linkage_name_raw instead of
8248         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
8249         if necessary.
8251 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
8253         * gimplify.c (oacc_default_clause): Decode reference and pointer
8254         types for both kernels and parallel regions.
8256 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
8258         PR middle-end/69246
8259         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
8261 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
8263         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
8264         (convert_scalars_to_vector): Likewise.
8266 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
8268         * doc/extend.texi (Type Traits): Fix grammar.
8270 2016-01-15  Martin Jambor  <mjambor@suse.cz>
8272         * tree-inline.c (remap_decl): Use existing dclarations if
8273         remapping a type and prevent_decl_creation_for_types.
8274         (replace_locals_stmt): Do an initial remapping of non-VLA typed
8275         decls first.  Do real remapping with
8276         prevent_decl_creation_for_types set.
8277         * tree-inline.h (copy_body_data): New field
8278         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
8279         padding.
8281 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8283         * config/s390/s390.opt (mmvcle): More verbose help text.
8285 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8287         * config/s390/s390.opt: Add period to -mzvector option text.
8289 2016-01-15  Richard Biener  <rguenther@suse.de>
8291         PR tree-optimization/68961
8292         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
8293         of invariants in stores again.
8295 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8297         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
8299 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
8301         * config/i386/i386.c (ix86_expand_branch): Don't split
8302         DI mode xor instruction to SI mode.
8304 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
8306         PR ipa/68148
8307         * ipa-icf.c (sem_function::merge): Virtual functions may become
8308         reachable even if they address is not taken and there are no
8309         idrect calls.
8311 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
8313         * lto-streamer-out.c (subtract_estimated_size): New function.
8314         (get_symbol_initial_value): Use it.
8316 2016-01-15  Christian Bruel  <christian.bruel@st.com>
8318         PR target/65837
8319         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
8320         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
8321         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
8322         use add_builtin_function_ext_scope instead of add_builtin_function.
8323         (neon_set_p, neon_crypto_set_p): Remove.
8324         (arm_init_builtins): Always call arm_init_neon_builtins and
8325         arm_init_crypto_builtins.
8326         (arm_expand_builtin): Check that builtins are allowed for the arch.
8327         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
8328         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
8329         arm_init_neon_builtins call.
8331 2016-01-15  Richard Biener  <rguenther@suse.de>
8333         PR tree-optimization/69117
8334         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
8335         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
8336         of the leader conservatively.
8337         (free_scc_vn): Restore original SSA name infos.
8339 2016-01-14  Jeff Law  <law@redhat.com>
8341         PR tree-optimization/69270
8342         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
8343         single bit of precision, verify it's also unsigned.
8344         (record_edge_info): Use constant_boolean_node rather than fold_convert
8345         to convert boolean_true/boolean_false to the right type.
8347 2016-01-14  Richard Henderson  <rth@redhat.com>
8349         PR rtl-opt/69014
8350         * loop-doloop.c (record_reg_sets): New.
8351         (doloop_optimize): Reject the transform if the sequence
8352         clobbers registers live at the end of the loop block.
8353         (doloop_optimize_loops): Enable df_live if needed.
8355 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8357         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
8358         * gcc/config/rs6000/rs6000.c: Likewise.
8359         * gcc/config/rs6000/rs6000.h: Likewise.
8360         * gcc/config/rs6000/rs6000.md: Likewise.
8361         * gcc/doc/extend.texi: Likewsie.
8363 2016-01-14  Jeff Law  <law@redhat.com>
8365         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
8366         typo.
8368 2016-01-14  Richard Henderson  <rth@redhat.com>
8370         PR c/69272
8371         PR tree-opt/68964
8372         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
8373         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
8374         instead of builtin_decl_declared_p to test for declaration.
8376 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
8378         * doc/loop.texi (Loop Analysis and Representation): Document
8379         loop_depth function.
8381 2016-01-14  Tom de Vries  <tom@codesourcery.com>
8383         PR tree-optimization/68773
8384         * omp-low.c (expand_omp_target): Don't set force_output.
8385         * varpool.c (varpool_node::get_create): Same.
8386         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
8387         offload_funcs with force_output.
8389 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
8391         PR debug/69244
8392         * lra-eliminations.c (move_plus_up): Don't change anything if either
8393         the outer or inner subreg mode is not MODE_INT.
8394         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
8395         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
8397 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
8399         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
8400         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
8401         reduc_uplus_@var{m}): Remove.
8402         * expr.c (expand_expr_real_2): Remove expansion path for
8403         reduc_[us](min|max|plus) optabs.
8404         * optabs-tree.c (scalar_reduc_to_vector): Remove.
8405         * optabs-tree.h (scalar_reduc_to_vector): Remove.
8406         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
8407         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
8408         * tree-vect-loop.c (vectorizable_reduction): Remove test for
8409         reduc_[us](min|max|plus) optabs.
8411 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
8413         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
8414         (reduc_plus_scal_v2sf): New.
8415         (reduc_smax_v2sf): Rename to...
8416         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
8417         (reduc_smin_v2sf): Rename to...
8418         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
8420 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
8422         * alias.c (compare_base_symbol_refs): New function.
8423         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
8424         it.
8426 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
8428         PR middle-end/68146
8429         PR tree-optimization/69155
8430         * tree-complex.c: Include cfganal.h.
8431         (phis_to_revisit): New variable.
8432         (extract_component): Add phiarg_p argument.  Assert that returned
8433         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
8434         (update_phi_components): Partly rewrite to use loop over real/imag
8435         components instead of code duplication.  If extract_component returns
8436         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
8437         create_tmp_reg into the PHI node instead, and mention the phi triplet
8438         in phis_to_revisit.
8439         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
8440         in phis_to_revisit at the end.
8442 2016-01-14  Richard Biener  <rguenther@suse.de>
8444         PR tree-optimization/68060
8445         * tree-vect-loop.c (vect_is_simple_reduction): Check the
8446         outer loop reduction is only used in the inner loop before
8447         detecting a double reduction.
8449 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
8451         PR target/68269
8452         * combine.c (expand_field_assignment): Punt if compute_mode is
8453         unsupported scalar mode.
8455 2016-01-14  Richard Biener  <rguenther@suse.de>
8457         PR tree-optimization/66856
8458         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
8459         SLP node only if it built successfully.
8460         (vect_analyze_slp_instance): Adjust.
8462 2016-01-14  Jeff Law  <law@redhat.com>
8464         PR tree-optimization/69270
8465         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
8466         (record_edge_info): Use it.  Convert boolean_{true,false}_node
8467         to the type of op0.
8469 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
8471         PR ipa/66487
8472         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
8473         use block_ultimate_origin
8474         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
8476 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
8478         * doc/invoke.texi (Submodel Options): Rename section to
8479         "Machine-Dependent Options" to better reflect its content.
8480         Rewrite introductory text to remove archaic CPU names.
8481         Update references.
8483 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
8485         * doc/invoke.texi (Code Gen Options): Move section up in file,
8486         before target-specific options.  Update menu and option summary
8487         to reflect the new section ordering.
8489 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
8491         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
8492         (C++ Dialect Options): Add cross-reference to -std option.
8493         * doc/standards.texi (C++ Language): Document C++14 support.
8495 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
8497         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
8498         for pack/unpack functions for __ibm128.
8499         (PACK_IF): Likewise.
8500         (UNPACK_IF): Likewise.
8502         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
8503         support for __ibm128 pack/unpack functions.
8504         (rs6000_invalid_builtin): Likewise.
8505         (rs6000_init_builtins): Likewise.
8506         (rs6000_opt_masks): Likewise.
8508         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
8509         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
8510         functions
8511         (RS6000_BTM_COMMON): Likewise.
8513         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
8514         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
8515         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
8516         128-bit floating point.  Add support for the double values to be
8517         in Altivec registers for TF/IF packing and unpacking, but restrict
8518         TD packing sub-fields to be FPR registers.  Don't allow overlapped
8519         register support for packing.  Allow pack inputs to be memory
8520         locations.  Don't build generator functions for unpack<mode>_dm
8521         and unpack<mode>_nodm.
8522         (unpack<mode>_dm): Likewise.
8523         (unpack<mode>_nodm): Likewise.
8524         (pack<mode>): Likewise.
8526         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
8527         built-in functions to pack/unpack explicit __ibm128 values.
8528         (__builtin_unpack_ibm128): Likewise.
8530         * doc/extend.texi (PowerPC Built-in Functions): Document
8531         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
8533 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
8535         PR c/66208
8536         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
8537         Add new arg loc and pass it down as context.
8538         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
8539         to the location to use for the warning.
8540         (check_function_arguments): New arg loc.  All callers changed.  Pass
8541         it to check_function_nonnull.
8542         * c-common.h (check_function_arguments): Adjust declaration.
8544 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
8546         PR tree-optimization/69156
8547         * gimple.c (validate_type): Removed.
8548         (gimple_builtin_call_types_compatible_p): Use
8549         useless_type_conversion_p instead of validate_type.
8550         * value-prof.c (gimple_stringop_fixed_value): Fold
8551         icall_size to correct type.
8553 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
8555         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
8556         effects.
8558 2016-01-13  Richard Henderson  <rth@redhat.com>
8560         PR tree-opt/68964
8561         * target.def (builtin_tm_load, builtin_tm_store): Remove.
8562         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
8563         (ix86_builtin_tm_store): Remove.
8564         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
8565         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
8566         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
8567         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
8568         * doc/tm.texi: Rebuild.
8570         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
8571         (BUILT_IN_TM_MEMCPY_RTWN): New.
8572         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
8573         fallback from vector to integer helpers.
8574         (build_tm_load): Handle vector types directly, instead of
8575         via target hook.
8576         (build_tm_store): Likewise.
8577         (expand_assign_tm): Prepare for register types not handled by
8578         the above.  Copy them to memory and use memcpy.
8579         * tree.c (tm_define_builtin): New.
8580         (find_tm_vector_type): New.
8581         (build_tm_vector_builtins): New.
8582         (build_common_builtin_nodes): Call it.
8584 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
8586         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
8587         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
8589 2016-01-13  Tom de Vries  <tom@codesourcery.com>
8591         PR tree-optimization/69169
8592         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
8593         handled_struct_type param.
8594         (create_variable_info_for, intra_create_variable_infos): Call
8595         create_variable_info_for_1 with extra arg.
8597 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
8599         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
8600         and "armv8.1-a+crc" entries.
8602 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
8604         PR target/69228
8605         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
8606         Change first operand predicate from register_or_constm1_operand
8607         to register_operand.
8608         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
8609         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
8610         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
8611         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
8612         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
8613         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
8614         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
8615         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
8616         comparison with constm1_rtx from vec_prefetch_gen part.
8618 2016-01-13  Richard Biener  <rguenther@suse.de>
8620         PR tree-optimization/69013
8621         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
8622         Exchange assert for a test.
8624 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8626         PR target/69247
8627         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
8629 2016-01-13  Richard Biener  <rguenther@suse.de>
8631         PR tree-optimization/69242
8632         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
8633         assert with a check.
8635 2016-01-13  Richard Biener  <rguenther@suse.de>
8637         PR tree-optimization/69186
8638         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
8639         Properly guard vect_update_misalignment_for_peel call.
8641 2016-01-12  Jeff Law  <law@redhat.com>
8643         PR tree-optimization/pr67755
8644         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
8645         "need_profile_correction".
8646         (thread_block_1): Initialize new field to false by default.  If we
8647         have multiple thread paths through a common joiner to different
8648         final targets, then set new field to true.
8649         (compute_path_counts): Only do count adjustment when it's really
8650         needed.
8652 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
8654         * doc/invoke.texi (Spec Files): Move section down in file, past
8655         all command-line option descriptions.
8657 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8659         PR middle-end/54809
8660         * doc/gty.texi: Remove documentation of mark_hook.
8661         * gengtype.c (struct write_types_data): Remove code to support
8662         mark_hook attribute.
8663         (walk_type): Likewise.
8664         (write_func_for_structure): Likewise.
8666 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
8668         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
8669         Directory Options, and -specs= to Overall Options.
8670         (Overall Options): Adjust similarly.  Reorder to group related
8671         options together.  Make -specs= cross-reference the spec file details.
8672         (Directory Options): Adjust similarly.
8674 2016-01-12  Jeff Law  <law@redhat.com>
8676         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
8678 2016-01-12  Olivier Hainque  <hainque@adacore.com>
8680         * gcc.c (spec_undefvar_allowed): New global.
8681         (process_command): Set to true when running for --version or --help,
8682         alone or together.
8683         (getenv_spec_function): When the variable is not defined, use the
8684         variable name as the variable value if we're allowed not to issue
8685         a fatal error.
8687 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
8689         PR tree-optimization/68911
8690         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
8691         information computed for expression "init + nit * step".
8693 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
8695         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
8696         about name of GCC executable.  Remove deleted node from menu.
8697         (Directory Options) <-B>: Remove cross-reference to deleted node.
8698         (Target Options): Delete section.
8700 2016-01-12  Christian Bruel  <christian.bruel@st.com>
8702         PR target/69180
8703         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
8704         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
8706 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
8708         PR target/69198
8709         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
8710         aligned_mem is properly set for AVX512-VL floating point masked
8711         stores.
8713         PR target/69175
8714         * ifcvt.c (cond_exec_process_if_block): When removing the last
8715         insn from then_bb, remove also any possible barriers that follow it.
8717 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
8719         PR target/68456
8720         PR target/69226
8721         * config/i386/iamcu.h (SIZE_TYPE): New macro.
8722         (PTRDIFF_TYPE): Likewise.
8723         (WCHAR_TYPE): Likewise.
8724         (WCHAR_TYPE_SIZE): Likewise.
8725         (STDINT_LONG32): Likewise.
8727 2016-01-12  Richard Biener  <rguenther@suse.de>
8729         PR tree-optimization/69053
8730         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
8731         convert initial value for cond reductions.
8733 2016-01-12  Richard Biener  <rguenther@suse.de>
8735         PR tree-optimization/69007
8736         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
8737         widen_sum after dot_prod and sad.
8739 2016-01-12  Richard Biener  <rguenther@suse.de>
8741         PR tree-optimization/69168
8742         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
8743         pattern stmt SLP type.
8744         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
8745         end up unused so cope with that case.
8747 2016-01-12  Richard Biener  <rguenther@suse.de>
8749         PR tree-optimization/69157
8750         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
8751         stmts def type only during analyze phase.
8752         (vectorizable_call): Likewise.
8753         (vectorizable_simd_clone_call): Likewise.
8754         (vectorizable_conversion): Likewise.
8755         (vectorizable_assignment): Likewise.
8756         (vectorizable_shift): Likewise.
8757         (vectorizable_operation): Likewise.
8758         (vectorizable_store): Likewise.
8759         (vectorizable_load): Likewise.
8761 2016-01-12  Richard Biener  <rguenther@suse.de>
8763         PR tree-optimization/69174
8764         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
8765         space.
8766         (vectorizable_load): Properly compute the number of loads needed
8767         for permuted strided SLP loads and do not spuriously assign
8768         to SLP_TREE_VEC_STMTS.
8770 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
8772         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
8773         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
8774         (MD_EXEC_PREFIX): Remove.
8775         (MD_STARTFILE_PREFIX) Removee.
8776         (FILE_NAME_ABSOLUTE_P): Remove.
8777         (CPP_SPEC): Do not read macros from sys/version.h.
8778         (LINK_COMMAND_SPEC): Remove.
8779         (LOCAL_INCLUDE_DIR): Remove.
8780         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
8781         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
8782         (POST_LINK_SPEC): Define to invoke stubify after linker
8783         (LIBSTDCXX): Remove define
8784         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
8785         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
8786         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
8787         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
8788         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
8789         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
8790         (i386_djgpp_asm_named_section): Add propotype of new procedure
8792         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
8793         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
8794         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
8795         in config/i386/djgpp.h).
8796         (STANDARD_STARTFILE_PREFIX_2): Define identical to
8797         STANDARD_STARTFILE_PREFIX_1.
8798         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
8799         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
8800         installation errors.
8801         (MAX_OFILE_ALIGNMENT): Define to 128.
8802         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
8804         * config/i386/djgpp.c: New file. Add implementation of
8805         i386_djgpp_asm_named_section.
8807         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
8809         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
8810         Add rule for building djgpp.o.
8812 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8814         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
8815         (rtx_is_swappable_p): Reductions are swappable.
8816         (insn_is_swappable_p): V2DF reductions are swappable.
8818 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
8820         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
8821         reloads for other unsupported memory operands.
8823 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8824             Jim Wilson  <jim.wilson@linaro.org>
8826         PR target/69194
8827         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
8828         copy_to_mode_reg instead of force_reg.
8830 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
8832         PR target/69225
8833         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
8834         TARGET_80387 is true.
8836 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
8838         PR target/69071
8839         * lra-eliminations.c (move_plus_up): Only move plus up
8840         if subreg of the constant can be simplified into constant
8841         and use the simplified subreg of the constant instead of
8842         the original constant.
8844         * fold-const.c (fold_convertible_p): Don't return true
8845         for conversion of VECTOR_TYPE to same sized integral type.
8846         (fold_convert_loc): Fix up formatting.  Fold conversion of
8847         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
8848         instead of NOP_EXPR.
8850         PR tree-optimization/69214
8851         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
8852         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
8853         Formatting fix.
8855         PR tree-optimization/69207
8856         * tree-vect-slp.c (vect_get_constant_vectors): For
8857         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
8858         fold_convertible_p to vector_type's element type, and always
8859         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
8861 2016-01-11  Richard Biener  <rguenther@suse.de>
8863         PR tree-optimization/69173
8864         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
8865         fixup the cycle if all stmts are in a pattern.
8867 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
8869         PR middle-end/68999
8870         * alias.c (base_alias_check): Move check for addresses with
8871         alignment ANDs before the call for compare_base_decls.
8872         (memrefs_conflict_p): Return -1 for different decls
8873         that went through alignment adjustments.
8875 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8877         PR rtl-optimization/68796
8878         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
8879         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
8880         and QImode comparisons against zero with CC_NZmode.
8881         * config/aarch64/iterators.md (short_mask): New mode_attr.
8883 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
8885         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
8886         (<avx512>_store<mode>_mask): Likewise.
8888 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
8889             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8891         PR rtl-optimization/68841
8892         * ifcvt.c (struct noce_if_info): Add orig_x field.
8893         (bbs_ok_for_cmove_arith): Add to_rename parameter.
8894         Don't record conflicts on to_rename if it's present.
8895         Allow memory destinations in sets.
8896         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
8897         blocks, passing orig_x to the checks.
8898         (noce_process_if_block): Set if_info->orig_x appropriately.
8900 2016-01-11  Tom de Vries  <tom@codesourcery.com>
8902         PR tree-optimization/69069
8903         * tree-parloops.c (create_parallel_loop): Add missing phi args.
8905 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
8907         PR rtl-optimization/68920
8908         * config/i386/i386.c (ix86_option_override_internal): Restrict number
8909         of conditional moves for  RTL if-conversion to 1 for
8910         TARGET_ONE_IF_CONV_INSN.
8911         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
8912         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
8913         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
8914         parameter to restirct number of conditional moves for
8915         RTL if-conversion.
8916         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
8917         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
8918         conditionl moves.
8920 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
8922         PR bootstrap/69123
8923         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
8924         onepart vars.  Fix typo in comment.  Fix reversed condition in
8925         unshare test.
8926         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
8928         PR bootstrap/69123
8929         * var-tracking.c (dump_onepart_variable_differences): New.
8930         (dataflow_set_different): If a detailed dump is requested,
8931         delay early returns and dump differences between onepart
8932         variables present before and after, and added variables.
8934 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
8936         PR target/69010
8937         * expr.c (expand_expr_real_1): For boolean vector constants
8938         with a scalar mode use const_scalar_mask_from_tree.
8939         (const_scalar_mask_from_tree): New.
8940         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
8941         assigned to a mask type to handle constants.
8943 2016-01-11  Martin Jambor  <mjambor@suse.cz>
8945         PR ipa/69044
8946         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
8947         useless parameters if we cannot change function signature.
8949 2016-01-11  Martin Jambor  <mjambor@suse.cz>
8951         PR ipa/66616
8952         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
8953         flag.
8955 2016-01-11  Tom de Vries  <tom@codesourcery.com>
8957         PR tree-optimization/69109
8958         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
8959         latch with phi.
8961 2016-01-11  Tom de Vries  <tom@codesourcery.com>
8963         PR tree-optimization/69108
8964         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
8965         res is not used in a phi.
8967 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
8969         PR 67425
8970         * common.opt (frandom-seed): Fix parameter name.
8971         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
8973 2016-01-11  Tom de Vries  <tom@codesourcery.com>
8975         PR tree-optimization/69058
8976         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
8977         not supported.
8979 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
8981         * config/arc/arc.opt (mdiv-rem): Add period to the end.
8982         (mcode-density): Likewise.
8984 2016-01-10  Tom de Vries  <tom@codesourcery.com>
8986         PR tree-optimization/69062
8987         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
8988         (parallelize_loops): Don't paralelize loop that has phi with address
8989         arg.
8991 2016-01-10  Tom de Vries  <tom@codesourcery.com>
8993         PR tree-optimization/69039
8994         * tree-parloops.c (try_create_reduction_list): Only allow single exit
8995         phi for reduction.
8997 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
8999         PR middle-end/68743
9000         * match.pd: Require target has function_c99_misc before doing
9001         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
9003 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
9005         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
9006         use GMPINC.
9007         * configure: Regenerate.
9009 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
9011         PR middle-end/50865
9012         PR tree-optimization/69097
9013         * fold-const.h (expr_not_equal_to): New prototype.
9014         * fold-const.c: Include stringpool.h and tree-ssanames.h.
9015         (expr_not_equal_to): New function.
9016         * match.pd (X % -Y is the same as X % Y): Don't optimize
9017         unless X is known not to be equal to minimum or Y is known
9018         not to be equal to -1.
9019         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
9020         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
9021         (simplify_stmt_using_ranges): Adjust caller.
9022         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
9023         substitute_and_fold.
9025 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
9027         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
9028         w/o DECL_NAME.
9030 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
9032         PR tree-optimization/69167
9033         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
9034         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
9035         ops[0] comparison.
9036         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
9038 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
9039             Richard Biener  <rguenther@suse.de>
9041         PR tree-optimization/68707
9042         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
9043         instances that can be handled via vect_load_lanes.
9045 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
9047         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
9048         if we can't determine address equivalence.
9049         * alias.c (compare_base_decl): Update for changed return value of
9050         symtab_node::equal_address_to.
9052 2016-01-08  Jason Merrill  <jason@redhat.com>
9054         PR c++/68983
9055         PR c++/67557
9056         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
9057         * expr.c (store_field): Not here.
9058         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
9059         call with TREE_ADDRESSABLE type.
9060         * tree-cfg.c (verify_gimple_call): Adjust.
9062 2016-01-08  Olivier Hainque  <hainque@adacore.com>
9064         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
9065         libc_internal.
9067 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
9069         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
9070         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
9071         (reduc_smin_v2sf): Rename to...
9072         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
9073         (reduc_splus_v2sf): Rename to...
9074         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
9076 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
9078         PR tree-optimization/69162
9079         * gimplify.c (gimplify_va_arg_expr): Encode original type of
9080         valist argument in another argument.
9081         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
9082         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
9083         to determine the va_list type, build a MEM_REF instead of
9084         build_fold_indirect_ref.
9086         PR tree-optimization/69172
9087         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
9088         gimple_build.
9090 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9092         PR tree-optimization/67781
9093         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
9094         and cmpnop in two steps: first the ones not accessed in original
9095         gimple expression in a endian independent way and then the ones not
9096         accessed in the final result in an endian-specific way.
9098 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
9100         PR tree-optimization/69083
9101         * tree-vect-slp.c (vect_get_constant_vectors): For
9102         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
9103         element type.  If op is fold_convertible_p to vector_type's element
9104         type, use NOP_EXPR instead of VCE.
9106 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
9108         PR rtl-optimization/67778
9109         PR rtl-optimization/68634
9110         PR rtl-optimization/68909
9111         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
9112         block from the stack until done with it.  Remove a superfluous
9113         bitmap set.  Remove a superfluous bitmap test.
9115 2016-01-07  Martin Sebor  <msebor@redhat.com>
9117         PR c/68966
9118         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
9119         constraint on the type of arguments.
9121 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
9123         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
9124         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
9125         unaligned_access on the gcc_options set.
9126         * config/arm/arm.c (arm_option_override_internal): Use
9127         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
9129 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
9131         PR target/69140
9132         * config/i386/i386.c (ix86_frame_pointer_required): Enable
9133         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
9135 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
9137         Revert
9138         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
9140         PR target/69140
9141         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
9142         depending on frame_pointer_needed before remaining integer and SSE
9143         registers are saved.
9145 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
9147         PR 1078
9148         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
9150 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
9152         PR target/69171
9153         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
9154         Use the "xBm" constraint.
9155         (float<sseintvecmodelower><mode>2<mask_name><round_name):
9156         Likewise.
9157         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
9158         (sse_cvtsi2ssq<round_name>): Likewise.
9159         (sse_cvtss2si<round_name>): Likewise.
9160         (sse_cvtss2siq<round_name>): Likewise.
9161         (sse2_cvtsi2sdq<round_name>): Likewise.
9162         (sse2_cvtsd2si<round_name>): Likewise.
9163         (sse2_cvtsd2siq<round_name>): Likewise.
9164         * config/i386/subst.md (round_nimm_scalar_predicate): New
9165         predicate.
9167 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
9169         PR middle-end/67639
9170         * varasm.c (make_decl_rtl): Mark invalid register vars as
9171         DECL_EXTERNAL.
9173         PR rtl-optimization/66206
9174         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
9175         All callers changed.
9177 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
9179         PR tree-optimization/69141
9180         * tree-ssa-pre.c: Include langhooks.h.
9181         (eliminate_dom_walker::before_dom_children): Use
9182         lang_hooks.decl_printable_name instead of
9183         cgraph_node::get ()->name ().
9185         PR middle-end/68960
9186         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
9187         it and DECL_ALIGN too.
9189 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
9191         * config/mips/mips-ftypes.def: Sort to lexicographical order.
9193 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
9195         PR target/69140
9196         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
9197         depending on frame_pointer_needed before remaining integer and SSE
9198         registers are saved.
9200 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9202         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
9203         mode iterator with VSX_M2.
9204         (*p9_vecstore_<mode>): Likewise.
9205         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
9206         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
9207         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
9208         (define_split for VSX_LE128 stores): Likewise.
9209         (define_peephole2 for TImode LE swaps): Likewise.
9210         (define_split for VSX_LE128 post-reload stores): Likewise.
9212 2016-01-06  Marek Polacek  <polacek@redhat.com>
9214         PR sanitizer/69099
9215         * convert.c (convert_to_integer_1): Adjust call to
9216         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
9217         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
9218         EXPR instead of ARG.
9219         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
9221 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
9223         PR 1078
9224         * doc/extend.texi (RL78 Variable Attributes): New section.
9226 2016-01-05  Marek Polacek  <polacek@redhat.com>
9228         PR c/69104
9229         * builtins.c (get_memmodel): Use expansion point location rather than
9230         the input location.  Call warning_at rather than warning.
9231         (expand_builtin_atomic_compare_exchange): Likewise.
9232         (expand_builtin_atomic_load): Likewise.
9233         (expand_builtin_atomic_store): Likewise.
9234         (expand_builtin_atomic_clear): Likewise.
9236 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
9238         PR target/68991
9239         * config/i386/i386.c (ix86_expand_vector_logical_operator):
9240         Replace nonimmediate_operand with vector_operand.
9241         * config/i386/predicates.md (vector_operand): New predicate.
9242         (general_vector_operand): Replace nonimmediate_operand with
9243         vector_operand.
9244         * config/i386/sse.md: Replace nonimmediate_operand with
9245         vector_operand and m constraint with Bm constraint on SSE
9246         patterns with 16-byte memory operand.
9247         * config/i386/subst.md (round_nimm_predicate): Replace
9248         nonimmediate_operand with vector_operand.
9249         (round_saeonly_nimm_predicate): Likewise.
9250         (round_saeonly_nimm_scalar_predicate): New.
9252 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
9254         PR target/68991
9255         * config/i386/constraints.md (Bm): New constraint.
9256         * config/i386/predicates.md (vector_memory_operand): New
9257         predicate.
9258         * config/i386/sse.md: Replace xm with xBm in plusminus and
9259         any_logic patterns.
9261 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
9263         PR 1078
9264         * doc/extend.texi (V850 Function Attributes): New section.
9265         (V850 Variable Attributes): New section.
9267 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
9269         PR 1078
9270         * doc/extend.texi (MicroBlaze Function Attributes): Document
9271         interrupt_handler and fast_interrupt attributes.
9273 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
9275         PR other/60465
9276         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
9277         for local symbolic operands.
9278         * config/ia64/predicates.md (local_symbolic_operand64): New
9279         predicate.
9281 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9283         PR rtl-optimization/68651
9284         * combine.c (combine_simplify_rtx): Canonicalize x + x into
9285         x << 1.
9287 2016-01-05  Nathan Sidwell  <nathan@acm.org>
9289         * alias.c (compare_base_decls): Use symtab_node::get.
9291 2016-01-05  Nick Clifton  <nickc@redhat.com>
9293         PR target/68770
9294         * ira-costs.c (copy_cost): Initialise the t_icode field of the
9295         secondary_reload_info structure.
9297         PR target/66655
9298         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
9299         decls if weak support is available.
9301 2016-01-04  Martin Sebor  <msebor@redhat.com>
9303         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
9305 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
9307         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
9308         OPTION_MASK_P9_DFORM.
9310         * config/rs6000/constraints.md (wo constraint): New constraint for
9311         ISA 3.0 (power9).
9313         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
9314         for wo constraint.
9315         (rs6000_init_hard_regno_mode_ok): Likewise.
9317         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
9318         wo constraint.
9320         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
9321         expanders not to have constraints.  Add support for ISA 3.0 xxperm
9322         instruction.  Add support for fusing xxlor with xxperm.
9323         (altivec_vperm_<mode>_internal): Likewise.
9324         (altivec_vperm_v8hiv16qi): Likewise.
9325         (altivec_vperm_<mode>v16q): Likewise.
9326         (altivec_vperm_<mode>_uns): Likewise.
9327         (vperm_v8hiv4si): Likewise.
9328         (vperm_v16qiv8hi): Likewise.
9330         * doc/md.texi (RS/6000 constraints): Document wo constraint.
9332 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
9334         Update copyright years.
9336         * gcc.c (process_command): Update copyright notice dates.
9337         * gcov-dump.c (print_version): Ditto.
9338         * gcov.c (print_version): Ditto.
9339         * gcov-tool.c (print_version): Ditto.
9340         * gengtype.c (create_file): Ditto.
9341         * doc/cpp.texi: Bump @copying's copyright year.
9342         * doc/cppinternals.texi: Ditto.
9343         * doc/gcc.texi: Ditto.
9344         * doc/gccint.texi: Ditto.
9345         * doc/gcov.texi: Ditto.
9346         * doc/install.texi: Ditto.
9347         * doc/invoke.texi: Ditto.
9349 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9351         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
9352         modes larger than TImode as TImode if NEON is not enabled.
9354 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9356         PR target/69100
9357         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
9358         mode for %f0-%f31 only if TARGET_FPU.
9360 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
9362         PR target/69072
9363         * config/sparc/sparc.c (scan_record_type): Take into account subfields
9364         to compute the PACKED_P predicate.
9365         (function_arg_record_value): Minor tweaks.
9367 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9369         * doc/install.texi (--with-multilib-list): Describe the meaning of the
9370         option for arm*-*-* targets.
9372 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
9374         * doc/extend.texi (Common Function Attributes): Move docs for
9375         MSP430-specific attributes to....
9376         (MSP430 Function Attributes): ...here.  Delete the redundant
9377         entries and copy-edit the remaining text.
9378         (MSP430 Variable Attributes): Use uniform format for index
9379         entries and add a cross-reference to the corresponding function
9380         attribute docs.
9382 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
9384         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
9385         -finite-math typo.
9386         (x86 Options): Likewise.
9388 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
9390         PR 1078
9392         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
9393         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
9394         to corresponding attribute.
9396 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
9398         * doc/extend.texi (Common Function Attributes) <noplt>: Move
9399         to correct alphabetization of table.  Copy-edit and correct
9400         markup.
9401         <stack_protect>: Likewise.
9402         <target_clones>: Likewise.
9403         <simd>: Likewise.
9404         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
9405         Correct punctuation.
9406         (Code Gen Options) <-fno-plt>: Copy-edit.
9408 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9410         PR target/68917
9411         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
9412         SI values.  Explicitly convert SI to DI and vice-versa.
9414 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
9416         PR tree-optimization/69070
9417         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
9418         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
9420         PR sanitizer/69055
9421         * ubsan.c (ubsan_instrument_float_cast): Call
9422         initialize_sanitizer_builtins.
9424         PR target/69015
9425         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
9427 Copyright (C) 2016 Free Software Foundation, Inc.
9429 Copying and distribution of this file, with or without modification,
9430 are permitted in any medium without royalty provided the copyright
9431 notice and this notice are preserved.