Update ChangeLog and version files for release
[official-gcc.git] / gcc / ChangeLog
blob758a832a113ea5624b689f41100988eefb742042
1 2018-01-25  Release Manager
3         * GCC 7.3.0 released.
5 2018-01-23  Eric Botcazou  <ebotcazou@adacore.com>
7         PR rtl-optimization/81443
8         * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
9         from inner REGs to paradoxical SUBREGs.
11 2018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13         Backport from mainline
14         2018-01-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15                     David Edelsohn  <dje.gcc@gmail.com>
17         PR target/83946
18         * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
19         Change "crset eq" to "crset 2".
20         (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
21         (*call_indirect_aix<mode>_nospec): Likewise.
22         (*call_value_indirect_aix<mode>_nospec): Likewise.
23         (*call_indirect_elfv2<mode>_nospec): Likewise.
24         (*call_value_indirect_elfv2<mode>_nospec): Likewise.
25         (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
26         change assembly output from . to $.
27         (*sibcall_value_nonlocal_sysv<mode>): Likewise.
28         (indirect_jump<mode>_nospec): Change assembly output from . to $.
29         (*tablejump<mode>_internal1_nospec): Likewise.
31 2018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
33         Backport from mainline
34         2018-01-21  Oleg Endo  <olegendo@gcc.gnu.org>
36         PR target/80870
37         * config/sh/sh_optimize_sett_clrt.cc:
38         Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
40 2018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
42         Backport from mainline
43         2018-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
45         * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
46         -mspeculate-indirect-jumps.
47         * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
48         for -mno-speculate-indirect-jumps.
49         (*call_indirect_elfv2<mode>_nospec): New define_insn.
50         (*call_value_indirect_elfv2<mode>): Disable for
51         -mno-speculate-indirect-jumps.
52         (*call_value_indirect_elfv2<mode>_nospec): New define_insn.
53         (indirect_jump): Emit different RTL for
54         -mno-speculate-indirect-jumps.
55         (*indirect_jump<mode>): Disable for
56         -mno-speculate-indirect-jumps.
57         (*indirect_jump<mode>_nospec): New define_insn.
58         (tablejump): Emit different RTL for
59         -mno-speculate-indirect-jumps.
60         (tablejumpsi): Disable for -mno-speculate-indirect-jumps.
61         (tablejumpsi_nospec): New define_expand.
62         (tablejumpdi): Disable for -mno-speculate-indirect-jumps.
63         (tablejumpdi_nospec): New define_expand.
64         (*tablejump<mode>_internal1): Disable for
65         -mno-speculate-indirect-jumps.
66         (*tablejump<mode>_internal1_nospec): New define_insn.
67         * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
68         option.
70         Backport from mainline
71         2018-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
73         * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
74         Generate different code for -mno-speculate-indirect-jumps.
75         (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
76         (*call_indirect_aix<mode>): Disable for
77         -mno-speculate-indirect-jumps.
78         (*call_indirect_aix<mode>_nospec): New define_insn.
79         (*call_value_indirect_aix<mode>): Disable for
80         -mno-speculate-indirect-jumps.
81         (*call_value_indirect_aix<mode>_nospec): New define_insn.
82         (*sibcall_nonlocal_sysv<mode>): Generate different code for
83         -mno-speculate-indirect-jumps.
84         (*sibcall_value_nonlocal_sysv<mode>): Likewise.
86 2018-01-17  Richard Biener  <rguenther@suse.de>
88         Backport from mainline
89         2017-12-18  Richard Biener  <rguenther@suse.de>
91         PR tree-optimization/81877
92         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
93         (outermost_indep_loop): Adjust.
94         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
95         (can_sm_ref_p): Adjust.
97         2017-12-08  Richard Biener  <rguenther@suse.de>
99         PR middle-end/81782
100         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
101         handle accesses outside of zero-sized vars.
103 2018-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
105         Backport from mailine
106         2018-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
108         PR target/83687
109         * config/arm/iterators.md (VF): New mode iterator.
110         * config/arm/neon.md (neon_vabd<mode>_2): Use the above.
111         Remove integer-related logic from pattern.
112         (neon_vabd<mode>_3): Likewise.
114 2018-01-17  Martin Liska  <mliska@suse.cz>
116         Backport from mainline
117         2018-01-04  Martin Liska  <mliska@suse.cz>
119         PR ipa/82352
120         * ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
122 2018-01-17  Martin Liska  <mliska@suse.cz>
124         Backport from mainline
125         2018-01-03  Martin Liska  <mliska@suse.cz>
127         PR ipa/83549
128         * cif-code.def (VARIADIC_THUNK): New enum value.
129         * ipa-inline-analysis.c (compute_inline_parameters):
130         Do not inline variadic thunks.
132 2018-01-17  Martin Liska  <mliska@suse.cz>
134         Backport from mainline
135         2017-12-27  Martin Liska  <mliska@suse.cz>
137         PR tree-optimization/83552
138         * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
139         of get_string_lenth to a SSA_NAME if not a GIMPLE value.
141 2018-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
143         Backport from mainline
144         2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
146         PR rtl-optimization/83424
147         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
149 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
151         * config/i386/i386.c (ix86_expand_prologue): Don't use reference
152         of struct ix86_frame.
153         (ix86_expand_epilogue): Likewise.
155 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
157         Backport from mainline
158         2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
160         * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
161         -mcmodel=large with -mindirect-branch=thunk,
162         -mindirect-branch=thunk-extern, -mfunction-return=thunk and
163         -mfunction-return=thunk-extern.
164         * doc/invoke.texi: Document -mcmodel=large is incompatible with
165         -mindirect-branch=thunk, -mindirect-branch=thunk-extern,
166         -mfunction-return=thunk and -mfunction-return=thunk-extern.
168 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
170         Backport from mainline
171         2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
173         * config/i386/i386.c (print_reg): Print the name of the full
174         integer register without '%'.
175         (ix86_print_operand): Handle 'V'.
176          * doc/extend.texi: Document 'V' modifier.
178 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
180         Backport from mainline
181         2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
183         * config/i386/predicates.md (indirect_branch_operand): Rewrite
184         ix86_indirect_branch_register logic.
186         Backport from mainline
187         2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
189         * config/i386/constraints.md (Bs): Update
190         ix86_indirect_branch_register check.  Don't check
191         ix86_indirect_branch_register with GOT_memory_operand.
192         (Bw): Likewise.
193         * config/i386/predicates.md (GOT_memory_operand): Don't check
194         ix86_indirect_branch_register here.
195         (GOT32_symbol_operand): Likewise.
197         Backport from mainline
198         2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
200         * config/i386/predicates.md (constant_call_address_operand):
201         Rewrite ix86_indirect_branch_register logic.
202         (sibcall_insn_operand): Likewise.
204         Backport from mainline
205         2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
207         * config/i386/constraints.md (Bs): Replace
208         ix86_indirect_branch_thunk_register with
209         ix86_indirect_branch_register.
210         (Bw): Likewise.
211         * config/i386/i386.md (indirect_jump): Likewise.
212         (tablejump): Likewise.
213         (*sibcall_memory): Likewise.
214         (*sibcall_value_memory): Likewise.
215         Peepholes of indirect call and jump via memory: Likewise.
216         * config/i386/i386.opt: Likewise.
217         * config/i386/predicates.md (indirect_branch_operand): Likewise.
218         (GOT_memory_operand): Likewise.
219         (call_insn_operand): Likewise.
220         (sibcall_insn_operand): Likewise.
221         (GOT32_symbol_operand): Likewise.
223         Backport from mainline
224         2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
226         * config/i386/constraints.md (Bs): Disallow memory operand for
227         -mindirect-branch-register.
228         (Bw): Likewise.
229         * config/i386/predicates.md (indirect_branch_operand): Likewise.
230         (GOT_memory_operand): Likewise.
231         (call_insn_operand): Likewise.
232         (sibcall_insn_operand): Likewise.
233         (GOT32_symbol_operand): Likewise.
234         * config/i386/i386.md (indirect_jump): Call convert_memory_address
235         for -mindirect-branch-register.
236         (tablejump): Likewise.
237         (*sibcall_memory): Likewise.
238         (*sibcall_value_memory): Likewise.
239         Disallow peepholes of indirect call and jump via memory for
240         -mindirect-branch-register.
241         (*call_pop): Replace m with Bw.
242         (*call_value_pop): Likewise.
243         (*sibcall_pop_memory): Replace m with Bs.
244         * config/i386/i386.opt (mindirect-branch-register): New option.
245         * doc/invoke.texi: Document -mindirect-branch-register option.
247 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
249         Backport from mainline
250         2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
252         PR target/83839
253         * config/i386/i386.c (output_indirect_thunk_function): Use
254         ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
255         for  __x86.return_thunk.
257         Backport from mainline
258         2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
260         * config/i386/i386-protos.h (ix86_output_function_return): New.
261         * config/i386/i386.c (ix86_set_indirect_branch_type): Also
262         set function_return_type.
263         (indirect_thunk_name): Add ret_p to indicate thunk for function
264         return.
265         (output_indirect_thunk_function): Pass false to
266         indirect_thunk_name.
267         (ix86_output_indirect_branch_via_reg): Likewise.
268         (ix86_output_indirect_branch_via_push): Likewise.
269         (output_indirect_thunk_function): Create alias for function
270         return thunk if regno < 0.
271         (ix86_output_function_return): New function.
272         (ix86_handle_fndecl_attribute): Handle function_return.
273         (ix86_attribute_table): Add function_return.
274         * config/i386/i386.h (machine_function): Add
275         function_return_type.
276         * config/i386/i386.md (simple_return_internal): Use
277         ix86_output_function_return.
278         (simple_return_internal_long): Likewise.
279         * config/i386/i386.opt (mfunction-return=): New option.
280         (indirect_branch): Mention -mfunction-return=.
281         * doc/extend.texi: Document function_return function attribute.
282         * doc/invoke.texi: Document -mfunction-return= option.
284 2018-01-16  H.J. Lu  <hongjiu.lu@intel.com>
286         Backport from mainline
287         2018-01-14  H.J. Lu  <hongjiu.lu@intel.com>
289         * config/i386/i386-opts.h (indirect_branch): New.
290         * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
291         * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
292         with local indirect jump when converting indirect call and jump.
293         (ix86_set_indirect_branch_type): New.
294         (ix86_set_current_function): Call ix86_set_indirect_branch_type.
295         (indirectlabelno): New.
296         (indirect_thunk_needed): Likewise.
297         (indirect_thunk_bnd_needed): Likewise.
298         (indirect_thunks_used): Likewise.
299         (indirect_thunks_bnd_used): Likewise.
300         (INDIRECT_LABEL): Likewise.
301         (indirect_thunk_name): Likewise.
302         (output_indirect_thunk): Likewise.
303         (output_indirect_thunk_function): Likewise.
304         (ix86_output_indirect_branch_via_reg): Likewise.
305         (ix86_output_indirect_branch_via_push): Likewise.
306         (ix86_output_indirect_branch): Likewise.
307         (ix86_output_indirect_jmp): Likewise.
308         (ix86_code_end): Call output_indirect_thunk_function if needed.
309         (ix86_output_call_insn): Call ix86_output_indirect_branch if
310         needed.
311         (ix86_handle_fndecl_attribute): Handle indirect_branch.
312         (ix86_attribute_table): Add indirect_branch.
313         * config/i386/i386.h (machine_function): Add indirect_branch_type
314         and has_local_indirect_jump.
315         * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
316         to true.
317         (tablejump): Likewise.
318         (*indirect_jump): Use ix86_output_indirect_jmp.
319         (*tablejump_1): Likewise.
320         (simple_return_indirect_internal): Likewise.
321         * config/i386/i386.opt (mindirect-branch=): New option.
322         (indirect_branch): New.
323         (keep): Likewise.
324         (thunk): Likewise.
325         (thunk-inline): Likewise.
326         (thunk-extern): Likewise.
327         * doc/extend.texi: Document indirect_branch function attribute.
328         * doc/invoke.texi: Document -mindirect-branch= option.
330 2018-01-16  Richard Biener  <rguenther@suse.de>
332         Backport from mainline
333         2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
335         PR target/81481
336         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
337         with a symbol for LRA.
339 2018-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
341         Backport from mainline
342         2018-01-10  Segher Boessenkool  <segher@kernel.crashing.org>
344         PR target/83629
345         * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
346         load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
348 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
350         Backport from mainline
351         PR target/83330
352         * config/i386/i386.c (ix86_function_arg_advance): Set
353         outgoing_args_on_stack to true if there are outgoing arguments
354         on stack.
355         (ix86_function_arg): Likewise.
356         (ix86_compute_frame_layout): Align stack frame if argument is
357         passed on stack.
358         * config/i386/i386.h (machine_function): Add
359         outgoing_args_on_stack.
361 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
363         Backport from mainline
364         * config/i386/i386.c (ix86_expand_prologue): Use reference of
365         struct ix86_frame.
366         (ix86_expand_epilogue): Likewise.
368 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
370         Backport from mainline
371         2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
373         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
374         of struct ix86_frame.
375         (ix86_initial_elimination_offset): Likewise.
376         (ix86_expand_split_stack_prologue): Likewise.
378 2018-01-15  H.J. Lu  <hongjiu.lu@intel.com>
380         Backport from mainline
381         2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
383         * config/i386/i386.c (ix86_frame): Moved to ...
384         * config/i386/i386.h (ix86_frame): Here.
385         (machine_function): Add frame.
386         * config/i386/i386.c (ix86_compute_frame_layout): Repace the
387         frame argument with &cfun->machine->frame.
388         (ix86_can_use_return_insn_p): Don't pass &frame to
389         ix86_compute_frame_layout.  Copy frame from cfun->machine->frame.
390         (ix86_can_eliminate): Likewise.
391         (ix86_expand_prologue): Likewise.
392         (ix86_expand_epilogue): Likewise.
393         (ix86_expand_split_stack_prologue): Likewise.
395 2018-01-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
397         Backport from mainline
398         2018-01-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
400         PR target/83677
401         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
402         Reverse order of second and third operands in first alternative.
403         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
404         of first and second elements in UNSPEC_VPERMR vector.
405         (altivec_expand_vec_perm_le): Likewise.
407 2018-01-14  Uros Bizjak  <ubizjak@gmail.com>
409         Backport from mainline
410         2018-01-12  Uros Bizjak  <ubizjak@gmail.com>
412         PR target/83628
413         * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
414         (*saddl_se_1): Ditto.
415         (*ssubsi_1): Ditto.
416         (*ssubl_se_1): Ditto.
418         Backport from mainline
419         2018-01-09  Uros Bizjak  <ubizjak@gmail.com>
421         PR target/83628
422         * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
423         op_mode in the force_to_mode call.
425 2018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
427         Backport from mainline
428         2018-01-12  Oleg Endo  <olegendo@gcc.gnu.org>
430         PR target/81819
431         * config/rx/rx.c (rx_is_restricted_memory_address):
432         Handle SUBREG case.
434 2018-01-12  Eric Botcazou  <ebotcazou@adacore.com>
436         PR rtl-optimization/83565
437         * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
438         not extend the result to a larger mode for rotate operations.
439         (num_sign_bit_copies1): Likewise.
441 2018-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
443         Backport from mainline
444         2018-01-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
446         PR bootstrap/81926
447         * cgraphunit.c (symbol_table::compile): Switch to text_section
448         before calling assembly_start debug hook.
450 2018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
452         Backport from mainline
453         2018-01-11  Oleg Endo  <olegendo@gcc.gnu.org>
455         PR target/81821
456         * config/rx/rx.md (BW): New mode attribute.
457         (sync_lock_test_and_setsi): Add mode suffix to insn output.
459 2018-01-09  Richard Biener  <rguenther@suse.de>
461         Backport from mainline
462         2018-01-08  Richard Biener  <rguenther@suse.de>
464         PR middle-end/83713
465         * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
467 2018-01-08  Jim Wilson  <jimw@sifive.com>
469         Backport from mainline
470         2018-01-08  Monk Chiang  <sh.chiang04@gmail.com>
471                     Kito Cheng  <kito.cheng@gmail.com>
473         * config/riscv/riscv.c (machine_function::is_leaf): Remove field.
474         (riscv_leaf_function_p): Delete.
475         (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
477 2018-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
479         Backport from mainline
480         2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
482         PR target/82975
483         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
485 2018-01-08  Sebastian Huber  <sebastian.huber@embedded-brains.de>
487         Backported from mainline
488         2018-01-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>
490         * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
491         * config/epiphany/rtems.h: New file.
493 2018-01-04  Uros Bizjak  <ubizjak@gmail.com>
495         PR target/83628
496         * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
497         instead of MULT rtx.  Update all corresponding splitters.
498         (*saddl_se): Ditto.
499         (*ssub<modesuffix>): Ditto.
500         (*ssubl_se): Ditto.
501         (*cmp_sadd_di): Update split patterns.
502         (*cmp_sadd_si): Ditto.
503         (*cmp_sadd_sidi): Ditto.
504         (*cmp_ssub_di): Ditto.
505         (*cmp_ssub_si): Ditto.
506         (*cmp_ssub_sidi): Ditto.
507         * config/alpha/predicates.md (const23_operand): New predicate.
508         * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
509         Look for ASHIFT, not MULT inner operand.
510         (alpha_split_conditional_move): Update for *sadd<modesuffix> change.
512 2018-01-02  Andrew Waterman  <andrew@sifive.com>
514         * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
515         * config/riscv/riscv.md (clear_cache): Use it.
517 2018-01-01  Jakub Jelinek  <jakub@redhat.com>
519         PR middle-end/83608
520         * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
521         convert_modes if target mode has the right side, but different mode
522         class.
524         PR middle-end/83609
525         * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
526         last argument when extracting from CONCAT.  If either from_real or
527         from_imag is NULL, use expansion through memory.  If result is not
528         a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
529         the parts directly to inner mode, if even that fails, use expansion
530         through memory.
532         PR middle-end/83623
533         * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
534         check for bswap in mode rather than HImode and use that in expand_unop
535         too.
537 2017-12-23  Jakub Jelinek  <jakub@redhat.com>
539         PR c++/83553
540         * fold-const.c (struct contains_label_data): New type.
541         (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
542         inside of a SWITCH_BODY seen during the walk.
543         (contains_label_p): Use walk_tree instead of
544         walk_tree_without_duplicates, prepare data for contains_label_1 and
545         provide own pset.
547 2017-12-22  Martin Jambor  <mjambor@suse.cz>
549         PR lto/82027
550         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
551         clones.
553 2017-12-22  Jakub Jelinek  <jakub@redhat.com>
555         Backported from mainline
556         2017-12-21  Jakub Jelinek  <jakub@redhat.com>
558         PR c/83448
559         * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
560         if navail is >= dir.len.
562         PR rtl-optimization/80747
563         PR rtl-optimization/83512
564         * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
565         succ edge from ENTRY, copy partition from e->dest to the newly
566         created bb.
567         * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
568         ENTRY, use BB_PARTITION of its successor block as current_partition.
569         Don't copy partition when splitting succ edge from ENTRY.
571         PR tree-optimization/83523
572         * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
573         for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
574         (convert_mult_to_fma): Likewise.
576         PR tree-optimization/83521
577         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
578         gimple_build_assign without code on result of
579         fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
580         a VIEW_CONVERT_EXPR.
582         2017-12-19  Jakub Jelinek  <jakub@redhat.com>
584         PR ipa/82801
585         PR ipa/83346
586         * ipa-inline.c (flatten_remove_node_hook): New function.
587         (ipa_inline): Keep only nodes with flatten attribute at the end of
588         the array in the order from ipa_reverse_postorder, only walk that
589         portion of array for flattening, if there is more than one such
590         node, temporarily register a removal hook and ignore removed nodes.
592 2017-12-21  Uros Bizjak  <ubizjak@gmail.com>
594         PR target/83467
595         * config/i386/i386.md (*ashl<mode>3_mask): Add operand
596         constraints to operand 2.
597         (*<shift_insn><mode>3_mask): Ditto.
598         (*<rotate_insn><mode>3_mask): Ditto.
600 2017-12-19  Bin Cheng  <bin.cheng@arm.com>
602         Backport from mainline
603         2017-11-15  Bin Cheng  <bin.cheng@arm.com>
605         PR tree-optimization/82726
606         PR tree-optimization/70754
607         * tree-predcom.c (order_drefs_by_pos): New function.
608         (combine_chains): Move code setting has_max_use_after to...
609         (try_combine_chains): ...here.  New parameter.  Sort combined chains
610         according to position information.
611         (tree_predictive_commoning_loop): Update call to above function.
612         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
614         2017-11-15  Bin Cheng  <bin.cheng@arm.com>
616         PR tree-optimization/82726
617         Revert
618         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
620         PR tree-optimization/70754
621         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
622         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
623         combined stmt before it if not NULL.
624         (combine_chains): Process refs reversely and compute dominance point
625         for root ref.
627         Revert
628         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
630         PR tree-optimization/79663
631         * tree-predcom.c (combine_chains): Process refs in reverse order
632         only for ZERO length chains, and add explaining comment.
634 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
636         Backport from mainline
637         2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
639         PR target/83387
640         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
641         multilib.
643 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
645         Backport from mainline
646         2017-12-19  Daniel Cederman  <cederman@gaisler.com>
648         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
649         the jump is to a label.
651 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
653         Backport from mainline
654         2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
656         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
657         require base operand is a REG_POINTER prior to reload on targets
658         with non-equivalent space registers.
660 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
662         PR tree-optimization/83269
663         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
664         subtraction in arg0's type if type is signed and arg0 is unsigned.
665         Formatting fix.
667         Backported from mainline
668         2017-12-14  Jakub Jelinek  <jakub@redhat.com>
670         PR tree-optimization/83198
671         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
672         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
673         value if arg is a REAL_CST with incompatible type.
675         2017-12-12  Jakub Jelinek  <jakub@redhat.com>
677         PR tree-optimization/80631
678         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
679         (vect_create_epilog_for_reduction): Add INDUC_VAL argument, for
680         INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
681         hardcoding zero as the value if COND_EXPR is never true.  For
682         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
683         INDUC_VAL is equal to INITIAL_DEF.
684         (vectorizable_reduction): Compute INDUC_VAL for
685         vect_create_epilog_for_reduction, if no value is suitable, don't
686         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
688         2017-12-08  Joseph Myers  <joseph@codesourcery.com>
689                     Alexander Monakov  <amonakov@ispras.ru>
690                     Jakub Jelinek  <jakub@redhat.com>
692         PR target/81906
693         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
695         2017-12-02  Jakub Jelinek  <jakub@redhat.com>
697         PR c++/81212
698         * tree-cfg.c (pass_warn_function_return::execute): Handle
699         __builtin_ubsan_handle_missing_return like __builtin_unreachable
700         with BUILTINS_LOCATION.
702         PR target/78643
703         PR target/80583
704         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
705         is BLKmode for vector field with vector raw mode, use TYPE_MODE
706         instead of DECL_MODE.
708         2017-11-29  Jakub Jelinek  <jakub@redhat.com>
710         PR target/80819
711         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
712         alternative.
714         2017-11-25  Jakub Jelinek  <jakub@redhat.com>
716         PR rtl-optimization/81553
717         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
718         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
719         is a shift where C1 has different mode than the whole shift, use C1's
720         mode for MULT rather than the shift's mode.
722         2017-11-24  Jakub Jelinek  <jakub@redhat.com>
724         PR sanitizer/83014
725         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
726         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
727         tree_to_uhwi twice.
729         * tree-object-size.c (pass_through_call): Do not handle
730         BUILT_IN_STPNCPY_CHK which is not a pass through call.
732         2017-11-23  Jakub Jelinek  <jakub@redhat.com>
734         PR middle-end/82253
735         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
736         bitpos/bitsize covering the whole destination, use store_expr only if
737         the complex mode is the same.  Otherwise, use expand_normal and if
738         it returns CONCAT, subreg each part separately instead of trying to
739         subreg the whole result.
741         2017-11-22  Jakub Jelinek  <jakub@redhat.com>
743         PR debug/83084
744         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
745         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
746         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
747         asm.
749         2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
750                     Jakub Jelinek  <jakub@redhat.com>
752         PR target/82880
753         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
754         Remove static keyword from f variable.
756 2017-12-15  Richard Biener  <rguenther@suse.de>
758         PR bootstrap/83439
759         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
760         Adjust remaining gimple_set_modified to use the modified
761         variable instead.
763 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
765         PR target/66488
766         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
767         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
768         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
770 2017-12-15  Richard Biener  <rguenther@suse.de>
772         Backport from mainline
773         PR tree-optimization/82060
774         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
775         Move devirtualization after stmt folding and before EH/AB/noreturn
776         cleanup to get the stmt refs canonicalized.  Use a bool instead
777         of gimple_modified_p since that doesn't work for NOPs.  Schedule
778         NOPs generated by folding for removal.
780 2017-12-15  Richard Biener  <rguenther@suse.de>
782         Backport from mainline
783         2017-09-05  Richard Biener  <rguenther@suse.de>
785         PR tree-optimization/82102
786         * tree-ssa-pre.c (eliminate): Check if lhs is NULL.
788         2017-09-13  Richard Biener  <rguenther@suse.de>
790         PR middle-end/82128
791         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
792         default-def to avoid breaking iterator update with the weird
793         interaction with cgraph_update_edges_for_call_stmt_node.
795 2017-12-15  Richard Biener  <rguenther@suse.de>
797         Backport from mainline
798         2017-11-24  Richard Biener  <rguenther@suse.de>
800         PR tree-optimization/82402
801         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
802         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
804         2017-10-24  Richard Biener  <rguenther@suse.de>
806         PR tree-optimization/82697
807         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
808         zero for conditional load and unconditional store.
810         2017-11-02  Richard Biener  <rguenther@suse.de>
812         PR middle-end/82765
813         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
814         Truncate ARRAY_REF index and element size.
816         2017-11-09  Richard Biener  <rguenther@suse.de>
818         PR tree-optimization/82902
819         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
821 2017-12-14  Peter Bergner  <bergner@vnet.ibm.com>
823         Backport from mainline
824         2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
826         PR target/80210
827         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
828         function to not use the have_cpu variable.  Do not set cpu_index,
829         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
830         or the default cpu.
831         (rs6000_valid_attribute_p): Remove duplicate initializations of
832         old_optimize and func_optimize.
833         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
834         (rs6000_activate_target_options): Make global.
835         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
836         prototype.
838 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
840         Backport from mainline
841         2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
843         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
844         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
846 2017-12-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
848         Back port from trunk
849         2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
851         PR target/81959
852         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
853         whether we can allocate pseudos before trying to fix an address.
854         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
855         memory address is indexed or indirect.
856         (floatuns_<mode>si2_hw2): Likewise.
858 2017-12-11  Sudakshina Das  <sudi.das@arm.com>
860         Backported from trunk
861         2017-12-01  Sudakshina Das  <sudi.das@arm.com>
863         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
865 2017-12-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
867         Backport from trunk
868         2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
870         PR target/80101
871         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
872         rs6000_store_data_bypass_p in seven define_bypass directives and
873         in several comments.
874         * config/rs6000/rs6000-protos.h: Add prototype for
875         rs6000_store_data_bypass_p function.
876         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
877         function implements slightly different (rs6000-specific) semantics
878         than store_data_bypass_p, returning false rather than aborting
879         with assertion error when arguments do not satisfy the
880         requirements of store data bypass.
881         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
882         rs6000_store_data_bypass_p.
884 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
886         Revert
887         2017-11-29  Martin Aberg  <maberg@gaisler.com>
889         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
890         to prevent b2bst errata sequence.
891         (sqrtdf2_fix): Likewise.
893 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
895         Backport from mainline
896         2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
897         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
898         function.
899         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
900         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
901         ASAN is enabled.
903 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
905         Backport from mainline
906         2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
907         * config/xtensa/xtensa-protos.h
908         (xtensa_initial_elimination_offset): New declaration.
909         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
910         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
911         macro definition, add case for FRAME_POINTER_REGNUM when
912         FRAME_GROWS_DOWNWARD.
913         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro
914         definition.
915         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
916         xtensa_initial_elimination_offset.
918 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
920         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
921         instead of MEM_P in a couple more places.  Fix formatting issues.
923 2017-12-04  Sebastian Peryt  <sebastian.peryt@intel.com>
924         H.J. Lu  <hongjiu.lu@intel.com>
926         Bakcported from trunk
927         PR target/82941
928         PR target/82942
929         PR target/82990
930         * config/i386/i386.c (pass_insert_vzeroupper): Remove
931         TARGET_AVX512F check from gate condition.
932         (ix86_check_avx256_register): Changed to ...
933         (ix86_check_avx_upper_register): ... this. Add extra check for
934         VALID_AVX512F_REG_OR_XI_MODE.
935         (ix86_avx_u128_mode_needed): Changed
936         ix86_check_avx256_register to ix86_check_avx_upper_register.
937         (ix86_check_avx256_stores): Changed to ...
938         (ix86_check_avx_upper_stores): ... this. Changed
939         ix86_check_avx256_register to ix86_check_avx_upper_register.
940         (ix86_avx_u128_mode_after): Changed
941         avx_reg256_found to avx_upper_reg_found. Changed
942         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
943         (ix86_avx_u128_mode_entry): Changed
944         ix86_check_avx256_register to ix86_check_avx_upper_register.
945         (ix86_avx_u128_mode_exit): Ditto.
946         (ix86_option_override_internal): Set MASK_VZEROUPPER if
947         neither -mzeroupper nor -mno-zeroupper is used and
948         TARGET_EMIT_VZEROUPPER is set.
949         * config/i386/i386.h: (host_detect_local_cpu): New define.
950         (TARGET_EMIT_VZEROUPPER): New.
951         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER
953 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
955         Backport from mainline
956         2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
958         PR 81288/target
959         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
960         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
962 2017-11-30  Jim Wilson  <jimw@sifive.com>
964         Backport from mainline
965         2017-11-30  Jim Wilson  <jimw@sifive.com>
966         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
967         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
968         -mstrict-align, add info on default value.  Delete redundant lines for
969         -mabi.  Add missing -mexplicit-relocs docs.
971         Backport from mainline
972         2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
973         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
974         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
975         and medany code models, and describe what they do.
977         2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
978         PR target/82717
979         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
981 2017-11-29  Martin Jambor  <mjambor@suse.cz>
983         PR ipa/82808
984         * tree.c (expr_type_first_operand_type_p): New function.
985         * tree.h (expr_type_first_operand_type_p): Declare it.
986         * ipa-cp.c (ipa_get_jf_pass_through_result): Use it.
988 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
990         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
991         movsi_pic_gotdata_op instruction as a load for the UT699 errata
992         workaround.
994 2017-11-29  Martin Aberg  <maberg@gaisler.com>
996         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
997         to prevent b2bst errata sequence.
998         (sqrtdf2_fix): Likewise.
1000 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
1002         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
1003         (div_sqrt_insn_p): New function.
1004         (sparc_do_work_around_errata): Insert NOP instructions to
1005         prevent sequences that could trigger the TN-0013 errata for
1006         certain LEON3 processors.
1007         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
1008         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
1009         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
1010         (in_branch_delay): Prevent div and sqrt in delay slot if
1011         fix_lost_divsqrt.
1012         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
1014 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
1016         * config/sparc/sparc.c (atomic_insn_p): New function.
1017         (sparc_do_work_around_errata): Insert NOP instructions to
1018         prevent sequences that could trigger the TN-0010 errata for
1019         UT700.
1020         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
1021         instruction referable in atomic_insns_p.
1023 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
1025         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
1026         (atomic_compare_and_swap_leon3_1): Likewise.
1027         (ldstub): Likewise.
1029 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
1031         * config/sparc/sparc.c (fpop_insn_p): New function.
1032         (sparc_do_work_around_errata): Insert NOP instructions to
1033         prevent sequences that could trigger the TN-0012 errata for
1034         GR712RC.
1035         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
1036         * config/sparc/sparc.md (fix_gr712rc): New attribute.
1037         (in_branch_annul_delay): Prevent floating-point instructions
1038         in delay slot of annulled integer branch.
1040 2017-11-28  Jim Wilson  <jimw@sifive.com>
1042         Backport from mainline
1043         2017-11-04  Andrew Waterman  <andrew@sifive.com>
1045         * config/riscv/riscv.c (riscv_option_override): Conditionally set
1046         TARGET_STRICT_ALIGN based upon -mtune argument.
1048         Backport from mainline
1049         2017-05-04  Andrew Waterman  <andrew@sifive.com>
1051         * config/riscv/riscv.opt (mstrict-align): New option.
1052         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
1053         (SLOW_UNALIGNED_ACCESS): Define.
1054         (riscv_slow_unaligned_access): Declare.
1055         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
1056         field.
1057         (riscv_slow_unaligned_access): New variable.
1058         (rocket_tune_info): Set slow_unaligned_access to true.
1059         (optimize_size_tune_info): Set slow_unaligned_access to false.
1060         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
1061         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
1062         (riscv_option_override): Set riscv_slow_unaligned_access.
1063         * doc/invoke.texi: Add -mstrict-align to RISC-V.
1065         Backport from mainline
1066         2017-11-07  Michael Clark  <michaeljclark@mac.com>
1068         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
1069         (MUSL_DYNAMIC_LINKER): Likewise.
1071 2017-11-27  Jim Wilson  <jimw@sifive.com>
1073         Backport from mainline
1074         2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
1076         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
1077         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
1078         mark as a sign-extending load.
1079         (local_pic_load_u): Define.
1081         Backport from mainline
1082         2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
1084         * config/riscv/riscv.c (riscv_legitimize_move): Handle
1085         non-legitimate address.
1087 2017-11-24  Segher Boessenkool  <segher@kernel.crashing.org>
1089         Backport from mainline
1090         2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
1092         PR rtl-optimization/82621
1093         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
1094         dest of one of those SETs is unused.
1096 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
1098         Backport from mainline
1099         2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
1101         PR target/83111
1102         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
1103         sibcall_value_pcrel_fdpic): Use local variable instead of
1104         operands[3].
1105         (calli_tbr_rel): Add missing operand 2.
1106         (call_valuei_tbr_rel): Add missing operand 3.
1108 2017-11-22  Richard Biener  <rguenther@suse.de>
1110         Revert
1111         2017-11-21  Martin Liska  <mliska@suse.cz>
1113         Backport from mainline
1114         2017-11-21  Martin Liska  <mliska@suse.cz>
1116         PR rtl-optimization/82044
1117         PR tree-optimization/82042
1118         * dse.c (check_mem_read_rtx): Check for overflow.
1120 2017-11-21  Martin Liska  <mliska@suse.cz>
1122         Backport from mainline
1123         2017-10-27  Martin Liska  <mliska@suse.cz>
1125         PR gcov-profile/82457
1126         * doc/invoke.texi: Document that one needs a non-strict ISO mode
1127         for fork-like functions to be properly instrumented.
1129 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
1131         Backport from mainline
1132         2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
1134         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
1136 2017-11-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1138         Backport from mainline
1139         2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1141         * config/arm/arm.c (output_return_instruction): Add comments to
1142         indicate requirement for cmse_nonsecure_entry return to account
1143         for the size of clearing instruction output here.
1144         (thumb_exit): Likewise.
1145         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
1146         return in hardfloat mode.
1148 2017-11-21  Martin Liska  <mliska@suse.cz>
1150         Backport from mainline
1151         2017-11-21  Martin Liska  <mliska@suse.cz>
1153         PR rtl-optimization/82044
1154         PR tree-optimization/82042
1155         * dse.c (check_mem_read_rtx): Check for overflow.
1157 2017-11-21  Martin Liska  <mliska@suse.cz>
1159         Backport from mainline
1160         2017-11-08  Martin Liska  <mliska@suse.cz>
1162         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
1163         of gimple_call_internal_p.
1165 2017-11-21  Martin Liska  <mliska@suse.cz>
1167         Backport from mainline
1168         2017-11-08  Martin Liska  <mliska@suse.cz>
1170         PR sanitizer/82792
1171         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
1173 2017-11-21  Martin Liska  <mliska@suse.cz>
1175         Backport from mainline
1176         2017-10-31  Martin Liska  <mliska@suse.cz>
1178         PR gcov-profile/82633
1179         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
1180         their interaction with GCOV infrastructure.
1182 2017-11-21  Martin Liska  <mliska@suse.cz>
1184         Backport from mainline
1185         2017-10-19  Martin Liska  <mliska@suse.cz>
1187         PR driver/81829
1188         * file-find.c (remove_prefix): Remove.
1189         * file-find.h (remove_prefix): Likewise.
1190         * gcc-ar.c: Remove smartness of lookup.
1192 2017-11-21  Martin Liska  <mliska@suse.cz>
1194         Backport from mainline
1195         2017-10-18  Martin Liska  <mliska@suse.cz>
1197         PR sanitizer/82545
1198         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
1199         on an abnormal edge.
1201 2017-11-21  Martin Liska  <mliska@suse.cz>
1203         Backport from mainline
1204         2017-10-11  Martin Liska  <mliska@suse.cz>
1206         * print-rtl.c (print_insn): Move declaration of idbuf
1207         to same scope as name.
1209 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
1211         Backport from mainline
1212         2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
1214         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
1215         upstreaming review comments.
1217 2017-11-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1219         Backport from mainline
1220         2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1222         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
1223         Solaris 11.  Update comment.
1224         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
1225         renaming.
1226         * config/sol2.h (STARTFILE_SPEC): Likewise.
1227         * configure: Regenerate.
1229 2017-11-20  Segher Boessenkool  <segher@kernel.crashing.org>
1231         Backport from mainline
1232         2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
1234         PR target/77687
1235         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
1236         address instead of to r1 and r11.
1238 2017-11-17  Vineet Gupta <vgupta@synopsys.com>
1240         * config.gcc: Remove uclibc from arc target spec.
1242 2017-11-16  Uros Bizjak  <ubizjak@gmail.com>
1244         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
1245         explicitly as a stream of bytes.
1247 2017-11-15  Richard Biener  <rguenther@suse.de>
1249         PR tree-optimization/82985
1250         Backport from mainline
1251         2017-08-15  Richard Biener  <rguenther@suse.de>
1253         PR tree-optimization/81790
1254         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
1255         CONSTRUCTORs from simplifying and VN.
1257 2017-11-15  Pierre-Marie de Rodat  <derodat@adacore.com>
1259         Backport from mainline
1260         2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
1262         PR debug/82155
1263         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
1264         on the FUNCTION_DECL function context if it has a DIE that is a
1265         declaration.
1267 2017-11-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1269         Backport from mainline
1270         2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1272         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
1273         supports -xbrace_comment option.
1274         * configure: Regenerate.
1275         * config.in: Regenerate.
1276         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
1277         (ASM_CPU_SPEC): Use it.
1279 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
1281         Backport from mainline
1282         2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
1284         PR rtl-optimization/64682
1285         PR rtl-optimization/69567
1286         PR rtl-optimization/69737
1287         PR rtl-optimization/82683
1288         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
1289         register mentioned in the note, drop the note, unless it came from I3,
1290         in which case it should go to I3 again.
1292 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
1294         Backport from mainline
1295         2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
1296                     Eric Botcazou  <ebotcazou@adacore.com>
1298         PR rtl-optimization/81803
1299         * lra-constraints.c (curr_insn_transform): Also reload the whole
1300         register for a strict subreg no wider than a word if this is for
1301         a WORD_REGISTER_OPERATIONS target.
1303 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
1305         PR middle-end/60580
1306         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
1307         Check special value of flag_omit_frame_pointer.
1308         (aarch64_can_eliminate): Likewise.
1309         (aarch64_override_options_after_change_1): Simplify handling of
1310         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
1312 2017-11-01  Martin Jambor  <mjambor@suse.cz>
1314         PR c++/81702
1315         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
1317 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
1319         PR target/82772
1320         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
1322 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
1324         Backported from mainline
1325         2017-10-12  Jakub Jelinek  <jakub@redhat.com>
1327         PR c++/82159
1328         * expr.c (store_field): Don't optimize away bitsize == 0 store
1329         from CALL_EXPR with addressable return type.
1331         2017-09-21  Jakub Jelinek  <jakub@redhat.com>
1333         PR sanitizer/81715
1334         * tree-inline.c (expand_call_inline): Emit clobber stmts for
1335         VAR_DECLs to which addressable non-volatile parameters are mapped
1336         and for id->retvar after the return value assignment, though
1337         for -fsanitize=kernel-address only.  Clear id->retval and id->retbnd
1338         after inlining.
1340         2017-09-18  Jakub Jelinek  <jakub@redhat.com>
1342         PR c/82234
1343         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
1345         2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1347         PR rtl-optimization/82192
1348         * combine.c (make_extraction): Don't look through non-paradoxical
1349         SUBREGs or TRUNCATE if pos + len is or might be bigger than
1350         inner's mode.
1352 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
1354         PR target/82703
1355         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
1356         * config/i386/i386.c (maybe_get_pool_constant): Removed.
1357         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
1358         maybe_get_pool_constant.
1359         * config/i386/predicates.md (zero_extended_scalar_load_operand):
1360         Likewise.
1362 2017-10-24  Qing Zhao <qing.zhao@oracle.com>
1363             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1365         * builtins.c (expand_builtin_update_setjmp_buf): Add a
1366         converstion to Pmode from the buf_addr.
1368 2017-10-20  Richard Biener  <rguenther@suse.de>
1370         PR tree-optimization/82603
1371         * tree-if-conv.c (predicate_mem_writes): Make sure to only
1372         remove false predicated stores.
1374 2017-10-20  Richard Biener  <rguenther@suse.de>
1376         Backport from mainline
1377         2017-10-06  Richard Biener  <rguenther@suse.de>
1379         PR tree-optimization/82436
1380         * tree-vect-slp.c (vect_supported_load_permutation_p): More
1381         conservatively choose the vectorization factor when checking
1382         whether we can perform the required load permutation.
1383         (vect_transform_slp_perm_load): Assert when we may not fail.
1385 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
1387         PR target/82445
1388         * config/arm/arm.c (align_ok_ldrd_strd): New function.
1389         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
1390         the mem into it.
1391         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
1393 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
1395         PR rtl-optimization/82602
1396         * ira.c (rtx_moveable_p): Return false for volatile asm.
1398 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
1400         PR middle-end/82556
1401         * lra-constraints.c (curr_insn_transform): Use non-input operand
1402         instead of output one for matched reload.
1404 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
1406         PR tree-optimization/82549
1407         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
1408         Formatting fixes.  Instead of calling make_bit_field_ref with negative
1409         bitpos return 0.
1411 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
1413         PR target/82274
1414         * internal-fn.c (expand_mul_overflow): If both operands have
1415         the same highpart of -1 or 0 and the topmost bit of lowpart
1416         is different, overflow is if res <= 0 rather than res < 0.
1418         PR target/82524
1419         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1420         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1421         =Q constraints to +Q and into insn condition add check
1422         that operands[0] and operands[1] are equal.
1423         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1424         =Q constraints to +Q and into insn condition add check
1425         that operands[0] is equal to either operands[1] or operands[2].
1427 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
1429         Backported from mainline r253602
1430         2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
1432         * config.gcc: (armv7*-*-freebsd*): New target.
1433         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
1435 2017-10-06  Christophe Lyon  <christophe.lyon@linaro.org>
1437         Backport from mainline r253242.
1438         2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
1440         PR target/71727
1441         * config/aarch64/aarch64.c
1442         (aarch64_builtin_support_vector_misalignment): Always return false
1443         when misalignment is unknown.
1445 2017-10-04  Jason Merrill  <jason@redhat.com>
1447         PR c++/82406 - C++ error with noexcept function type
1448         PR c++/70029 - ICE with ref-qualifier and -flto
1449         * langhooks.h (struct lang_hooks_for_types): Add
1450         copy_lang_qualifiers.
1451         * attribs.c (build_type_attribute_qual_variant): Use it.
1452         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
1453         NULL.
1454         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
1455         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
1457 2017-10-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1459         Backport from mainline
1460         2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1462         PR tree-optimization/82337
1463         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
1464         phi definition if the PHI result appears in an abnormal PHI.
1465         (find_basis_for_base_expr): Don't record a basis if the LHS of the
1466         basis appears in an abnormal PHI.
1468 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
1470         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
1471         always SImode for DIV and MOD in REG_EQUAL notes.
1473         Backported from mainline
1474         2017-09-27  Jakub Jelinek  <jakub@redhat.com>
1476         PR c++/82159
1477         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
1478         lhs from calls if the lhs has addressable type.
1480 2017-09-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
1482         Backport from mainline
1483         2017-06-29  Maya Rashish  <coypu@sdf.org>
1485         PR target/77480
1486         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
1487         objects.
1489 2017-09-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
1491         Backport from mainline
1492         2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
1494         PR target/39570
1495         * gcc/config/netbsd-protos.h: New file.
1496         * gcc/config/netbsd.c: New file.
1497         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
1498         * gcc/config/t-netbsd: New file.
1499         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
1500         (tmake_file) Add t-netbsd.
1501         (extra_objs) Add netbsd.o.
1503 2017-09-28  Krister Walfridsson  <krister.walfridsson@gmail.com>
1505         Backport from mainline
1506         2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
1508         PR target/80600
1509         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
1511 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
1513         Backport from trunk r249639.
1514         2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
1516         * doc/sourcebuild.texi (ARM-specific attributes): Document new
1517         arm_neon_ok_no_float_abi effective target.
1519 2017-09-26  Richard Biener  <rguenther@suse.de>
1521         Backport from mainline
1522         2017-09-19  Richard Biener  <rguenther@suse.de>
1524         PR tree-optimization/82244
1525         * tree-vrp.c (remove_range_assertions): Do not propagate
1526         a constant to abnormals but replace the assert with a copy.
1528         2017-09-21  Richard Biener  <rguenther@suse.de>
1530         PR tree-optimization/82276
1531         PR tree-optimization/82244
1532         * tree-vrp.c (build_assert_expr_for): Set
1533         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
1534         has it set.
1535         (remove_range_assertions): Revert earlier change.
1537         2017-09-20  Richard Biener  <rguenther@suse.de>
1539         PR tree-optimization/82264
1540         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
1541         for GIMPLE_CONDs.
1542         (vn_phi_lookup): Likewise.
1543         (vn_phi_insert): Likewise.
1544         * is-a.h (safe_dyn_cast): New.
1546         2017-09-25  Richard Biener  <rguenther@suse.de>
1548         PR tree-optimization/82285
1549         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
1550         enumeral types.
1552         2017-09-22  Richard Biener  <rguenther@suse.de>
1554         PR tree-optimization/82291
1555         * tree-if-conv.c (predicate_mem_writes): Make sure to
1556         remove writes in blocks predicated with false.
1558 2017-09-21  Alan Modra  <amodra@gmail.com>
1560         PR target/81996
1561         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
1562         stack_pointer_rtx for count 0.  Update comments.  Break up
1563         large rtl expression.
1565 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
1567         PR target/71951
1568         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
1570 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
1572         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
1573         to processor_model and "amdfam17h" to arch_names_table.
1574         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
1576 2017-09-19  Martin Liska  <mliska@suse.cz>
1578         PR c++/81355
1579         * config/i386/i386.c (sorted_attr_string): Skip empty strings.
1581 2017-09-19  Martin Liska  <mliska@suse.cz>
1583         Revert backport:
1584         2017-08-10  Martin Liska  <mliska@suse.cz>
1586         PR c++/81355
1587         * c-attribs.c (handle_target_attribute):
1588         Report warning for an empty string argument of target attribute.
1590 2017-09-18  Richard Biener  <rguenther@suse.de>
1592         Backport from mainline
1593         2017-09-04  Richard Biener  <rguenther@suse.de>
1595         PR tree-optimization/82084
1596         * fold-const.h (can_native_encode_string_p): Declare.
1597         * fold-const.c (can_native_encode_string_p): Factor out from ...
1598         (native_encode_string): ... here.
1599         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
1600         vectorizing stores from constants we later cannot handle.
1602         2017-09-06  Richard Biener  <rguenther@suse.de>
1604         PR tree-optimization/82108
1605         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
1606         for gap in the non-permutation SLP case.
1608 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
1610         Backported from mainline
1611         2017-09-14  Jakub Jelinek  <jakub@redhat.com>
1613         PR target/81325
1614         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
1615         if and where to split a bb, except for splitting before debug insn
1616         sequences followed by non-label real insn.  Delete debug insns
1617         in between basic blocks.
1619         2017-09-12  Jakub Jelinek  <jakub@redhat.com>
1621         PR target/82112
1622         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
1623         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
1624         on it early, rather than manual conversion late.  For
1625         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
1626         instead of performing manual conversion.
1628 2017-09-15  Martin Liska  <mliska@suse.cz>
1630         Backport from mainline
1631         2017-09-14  Martin Liska  <mliska@suse.cz>
1633         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
1634         Add proper printf format.
1636 2017-09-15  Martin Liska  <mliska@suse.cz>
1638         Backport from mainline
1639         2017-08-30  Martin Liska  <mliska@suse.cz>
1641         PR inline-asm/82001
1642         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
1643         Rename to ...
1644         (func_checker::compare_asm_inputs_outputs): ... this function.
1645         (func_checker::compare_gimple_asm): Use the function to compare
1646         also ASM constrains.
1647         * ipa-icf-gimple.h: Rename the function.
1649 2017-09-15  Martin Liska  <mliska@suse.cz>
1651         Backport from mainline
1652         2017-08-29  Martin Liska  <mliska@suse.cz>
1654         PR other/39851
1655         * gcc.c (driver_handle_option): Add new argument.
1656         * opts-common.c (handle_option): Pass
1657         target_option_override_hook.
1658         * opts-global.c (lang_handle_option): Add new option.
1659         (set_default_handlers):  Add new argument.
1660         (decode_options): Likewise.
1661         * opts.c (target_handle_option): Likewise.
1662         (common_handle_option): Call target_option_override_hook.
1663         * opts.h (struct cl_option_handler_func): Add hook for
1664         target option override.
1665         (struct cl_option_handlers): Likewise.
1666         (set_default_handlers): Add new argument.
1667         (decode_options): Likewise.
1668         (common_handle_option): Likewise.
1669         (target_handle_option): Likewise.
1670         * toplev.c (toplev::main): Pass targetm.target_option.override
1671         hook.
1673 2017-09-15  Martin Liska  <mliska@suse.cz>
1675         Backport from mainline
1676         2017-08-10  Martin Liska  <mliska@suse.cz>
1678         PR c++/81355
1679         * c-attribs.c (handle_target_attribute):
1680         Report warning for an empty string argument of target attribute.
1682 2017-09-15  Martin Liska  <mliska@suse.cz>
1684         Backport from mainline
1685         2017-08-08  Martin Liska  <mliska@suse.cz>
1687         PR tree-opt/81696
1688         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
1689         LABEL_DECLs that can be from a different function.
1691 2017-09-15  Martin Liska  <mliska@suse.cz>
1693         Backport from mainline
1694         2017-06-28  Martin Liska  <mliska@suse.cz>
1696         PR ipa/81128
1697         * ipa-visibility.c (non_local_p): Handle visibility.
1699 2017-09-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1701         Backport from mainline
1702         2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1704         PR target/81833
1705         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
1706         define_insn to a define_expand.
1707         (altivec_vsum2sws_direct): New define_insn.
1708         (altivec_vsumsws): Convert from a define_insn to a define_expand.
1710 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
1712         Backport from mainline
1713         PR target/82181
1714         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
1715         words of DImode object are reachable by xtensa_uimm8x4 access.
1717 2017-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1719         Backport from mainline
1720         2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1722         PR target/80695
1723         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1724         Account for direct move costs for vec_construct of integer
1725         vectors.
1727         Backport from mainline
1728         2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1730         PR target/80695
1731         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1732         Reduce cost estimate for direct moves.
1734 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1736         PR target/81988
1737         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
1738         (*mulsi3_sp64): New instruction.
1739         (mulsi3): New expander.
1741 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
1743         Backported from mainline
1744         2017-09-05  Jakub Jelinek  <jakub@redhat.com>
1746         PR middle-end/81768
1747         * omp-low.c (lower_omp_for): Recompute tree invariant if
1748         gimple_omp_for_initial/final is ADDR_EXPR.
1750         PR middle-end/81768
1751         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
1752         into gimple val before gimplification fo the COND_EXPR.
1754         2017-09-04  Jakub Jelinek  <jakub@redhat.com>
1756         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
1758         2017-09-01  Jakub Jelinek  <jakub@redhat.com>
1760         PR sanitizer/81923
1761         * asan.c (create_odr_indicator): Strip name encoding from assembler
1762         name before appending it after __odr_asan_.
1764         2017-08-09  Jakub Jelinek  <jakub@redhat.com>
1766         PR c/81687
1767         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
1768         LABEL_DECLs.
1769         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
1770         or DECL_NONLOCAL labels.
1771         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
1772         or DECL_NONLOCAL labels here.
1774         2017-08-03  Jakub Jelinek  <jakub@redhat.com>
1776         PR target/81621
1777         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
1778         after setting changeable df flags.
1780         PR driver/81650
1781         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
1782         instead of 10??LU, perform unit multiplication in wide_int,
1783         don't change alloc_object_size_limit if the limit is larger
1784         than SSIZE_MAX.
1786         PR middle-end/81052
1787         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
1788         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
1790 2017-09-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1792         Backport from mainline:
1793         2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1795         PR tree-optimization/81987
1796         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
1797         insert an initializer in a location not dominated by the stride
1798         definition.
1800 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1802         Backport from mainline
1803         2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1804                     Jakub Jelinek  <jakub@redhat.com>
1805                     Richard Biener  <rguenther@suse.de>
1807         PR tree-optimization/81503
1808         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
1809         folded constant fits in the target type; reorder tests for clarity.
1811 2017-09-05  Pierre-Marie de Rodat  <derodat@adacore.com>
1813         Backport from trunk
1814         PR ada/79542
1815         * dwarf2out.c (modified_type_die): For C typedef types that have
1816         an ultimate origin, process the ultimate origin instead of the
1817         input type.
1818         (gen_typedef_die): Assert that input DECLs have no ultimate
1819         origin.
1820         (gen_type_die_with_usage): For typedef variants that have an
1821         ultimate origin, just call gen_decl_die on the original DECL.
1822         (process_scope_var): Avoid creating DIEs for local typedefs and
1823         concrete static variables.
1825 2017-08-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1827         Backport from mainline
1828         2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1830         PR target/81504
1831         * config/rs6000/rs6000.c (find_alignment_op): Add reference
1832         parameter and_insn and return it.
1833         (recombine_lvx_pattern): Insert a copy to ensure availability of
1834         the base register of the copied masking operation at the point of
1835         the instruction replacement.
1836         (recombine_stvx_pattern): Likewise.
1838 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1840         Back port from trunk
1841         2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1843         PR target/81593
1844         * config/rs6000/vsx.md (vsx_concat_<mode>_1): New combiner insns
1845         to recognize inserting into a vector from a double word element
1846         that was extracted from another vector, and eliminate extra
1847         XXPERMDI instructions.
1848         (vsx_concat_<mode>_2): Likewise.
1849         (vsx_concat_<mode>_3): Likewise.
1850         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
1851         concat to allow optimizing inserts from previous extracts.
1853 2017-08-29  Alan Modra  <amodra@gmail.com>
1855         Apply from mainline
1856         2017-08-12  Alan Modra  <amodra@gmail.com>
1857         PR target/81170
1858         PR target/81295
1859         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
1860         match gnu-user.h startfile.
1861         (ENDFILE_LINUX_SPEC): Similarly.
1863         2017-08-08  Alan Modra  <amodra@gmail.com>
1864                     H.J. Lu  <hongjiu.lu@intel.com>
1865         PR target/81170
1866         PR target/81295
1867         PR driver/81523
1868         * gcc.c (NO_PIE_SPEC): Delete.
1869         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
1870         exclusion..
1871         (LINK_PIE_SPEC): ..to here.
1872         (LINK_COMMAND_SPEC): Support -no-pie.
1873         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
1874         chain of crtbegin*.o selection, update for PIE_SPEC changes and
1875         format.
1876         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
1877         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
1878         (ENDFILE_CRTEND_SPEC): Similarly.
1880 2017-08-29  Richard Biener  <rguenther@suse.de>
1882         Backport from mainline
1883         2017-08-28  Richard Biener  <rguenther@suse.de>
1885         PR tree-optimization/81977
1886         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
1887         memcpy.
1889         2017-08-28  Richard Biener  <rguenther@suse.de>
1891         PR debug/81993
1892         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
1893         Do nothing for removed DIEs.
1895 2017-08-28  Richard Biener  <rguenther@suse.de>
1897         Backport from mainline
1898         2017-06-14  Richard Biener  <rguenther@suse.de>
1900         PR middle-end/81088
1901         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
1902         literal constants.
1903         (fold_binary_loc): When associating do not treat pre-existing
1904         TREE_OVERFLOW on literal constants as a reason to allow
1905         TREE_OVERFLOW on associated literal constants.
1907         2017-06-13  Richard Biener  <rguenther@suse.de>
1909         PR middle-end/81065
1910         * fold-const.c (extract_muldiv_1): Remove bogus distribution
1911         case of C * (x * C2 + C3).
1912         (fold_addr_of_array_ref_difference): Properly fold index difference.
1914         2017-06-07  Marek Polacek  <polacek@redhat.com>
1916         PR sanitizer/80932
1917         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
1918         TYPE_OVERFLOW_WRAPS check.
1920 2017-08-28  Richard Biener  <rguenther@suse.de>
1922         Backport from mainline
1923         2017-08-21  Richard Biener  <rguenther@suse.de>
1925         PR middle-end/81884
1926         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
1927         at struct end conservatively when comparing common bases.
1929         2017-05-04  Richard Biener  <rguenther@suse.de>
1931         * tree.c (array_at_struct_end_p): Handle arrays at struct
1932         end with flexarrays more conservatively.  Refactor and treat
1933         arrays of arrays or aggregates more strict.  Fix
1934         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
1935         * tree.h (array_at_struct_end_p): Adjust prototype.
1936         * gimple-fold.c (get_range_strlen): Likewise.
1937         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
1939 2017-08-28  Richard Biener  <rguenther@suse.de>
1941         Backport from mainline
1942         2017-08-01  Richard Biener  <rguenther@suse.de>
1944         PR tree-optimization/81181
1945         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
1946         (compute_antic): ... end of iteration here.
1948         2017-08-08  Richard Biener  <rguenther@suse.de>
1950         PR tree-optimization/81723
1951         * tree-vect-slp.c (struct bst_traits): New hash traits.
1952         (bst_fail): New global.
1953         (vect_build_slp_tree_2): New worker, split out from ...
1954         (vect_build_slp_tree): ... this now wrapping it with using
1955         bst_fail set to cache SLP tree build fails.  Properly handle
1956         max_tree_size.
1957         (vect_analyze_slp_instance): Allocate and free bst_fail.
1959         2017-08-24  Richard Biener  <rguenther@suse.de>
1961         PR target/81921
1962         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
1963         and ipa-inline.h.
1964         (ix86_can_inline_p): When ix86_fpmath flags do not match
1965         check whether the callee uses FP math at all.
1967 2017-08-23  Peter Bergner  <bergner@vnet.ibm.com>
1969         Backport from mainline
1970         2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
1972         PR target/72804
1973         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
1974         operands residing in integer registers.
1975         (*vsx_le_perm_load_<mode>): Likewise.
1976         (*vsx_le_perm_store_<mode>): Likewise.
1977         (define_peephole2): Add peepholes to optimize the above.
1979 2017-08-22  Peter Bergner  <bergner@vnet.ibm.com>
1981         Backport from mainline
1982         2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
1984         PR target/80210
1985         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
1986         (rs6000_set_current_function): Rewrite function to use it.
1988 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1990         Backport from mainline
1991         2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1993         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
1994         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
1995         (DOT_SYMBOLS): Likewise.
1996         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1997         (RELOCATABLE_NEEDS_FIXUP): Likewise.
1998         (RS6000_ABI_NAME): Likewise.
1999         (TARGET_CMODEL): Likewise.
2000         (TOC_SECTION_ASM_OP): Likewise.
2001         (SET_CMODEL): New macro.
2002         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
2004 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
2006         Backport from 2017-08-22 trunk r251256.
2008         PR target/81910
2009         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
2010         not VAR_P. Filter attribute warnings with OPT_Wattributes.
2011         (avr_attribute_table) <io, io_low, address>: Initialize
2012         .decl_required with true.
2014 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
2016         PR target/79883
2017         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
2019 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
2021         PR target/81894
2022         * doc/extend.texi (x86 Built-in Functions): Correct the name of
2023         __builtin_ia32_lzcnt_u16.
2025 2017-08-17  Uros Bizjak  <ubizjak@gmail.com>
2027         Backport from mainline
2028         2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
2030         PR target/81861
2031         * config/i386/i386.c (ix86_option_override_internal): Save target
2032         specific options after ix86_stack_protector_guard_reg was changed.
2034 2017-08-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2036         Backport from mainline
2037         2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2039         PR tree-optimization/81354
2040         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
2041         Insert on edges rather than explicitly creating landing pads.
2042         (analyze_candidates_and_replace): Commit edge inserts.
2044 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
2046         PR target/78460
2047         PR target/67712
2048         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
2049         constant count if that count is less than 32.
2051 2017-08-14  Richard Biener  <rguenther@suse.de>
2053         * BASE-VER: Set to 7.2.1.
2055 2017-08-14  Release Manager
2057         * GCC 7.2.0 released.
2059 2017-08-08  Richard Biener  <rguenther@suse.de>
2061         PR middle-end/81766
2062         * function.c (thread_prologue_and_epilogue_insns): Restore
2063         behavior of always calling find_many_sub_basic_blocks on
2064         the inserted prologue.
2066 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
2068         PR middle-end/79499
2069         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
2070         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
2071         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
2072         prologue_seq sequences - if any.
2074 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
2076         PR target/81641
2077         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
2078         print "ds:" only for immediates in generic address space.
2080 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
2082         PR target/81622
2083         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
2084         __builtin_vec_cmpne verify both arguments are compatible vectors
2085         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
2086         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
2087         move computation of aligned to after checking the argument types.
2088         Formatting fixes.
2090 2017-08-01  Martin Liska  <mliska@suse.cz>
2092         Backport from mainline
2093         2017-07-26  Martin Liska  <mliska@suse.cz>
2095         PR gcov-profile/81561
2096         * gcov.c (unblock): Make unblocking safe as we need to preserve
2097         index correspondence of blocks and block_lists.
2099 2017-08-01  Richard Biener  <rguenther@suse.de>
2101         PR tree-optimization/71752
2102         PR tree-optimization/81633
2103         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands
2104         in the original suggested way.
2106 2017-08-01  Richard Sandiford  <richard.sandiford@linaro.org>
2108         PR tree-optimization/80769
2109         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
2110         for malloc and calloc.  Document the new invariant that all related
2111         strinfos have delayed lengths or none do.
2112         (get_next_strinfo): New function.
2113         (verify_related_strinfos): Move earlier in file.
2114         (set_endptr_and_length): New function, split out from...
2115         (get_string_length): ...here.  Also set the lengths of related
2116         strinfos.
2118 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
2120         PR tree-optimization/81588
2121         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
2122         ranges[i].in_p, invert comparison code ccode.  For >/>=,
2123         swap rhs1 and rhs2 and comparison code unconditionally,
2124         for </<= don't do that.  Don't swap rhs1/rhs2 again if
2125         ranges[i].in_p, instead invert comparison code ccode if
2126         opcode or oe->rank is BIT_IOR_EXPR.
2128 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2130         Backport from mainline
2131         2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2133         * config.gcc: Add z14.
2134         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
2135         CPU model numbers for z13s and z14.
2136         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
2137         arch12 with z14.
2138         * config/s390/s390-opts.h (enum processor_type): Rename
2139         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2140         * config/s390/s390.c (processor_table): Add field for CPU name to
2141         be passed to Binutils.
2142         (s390_asm_output_machine_for_arch): Use the new field in
2143         processor_table for Binutils.
2144         (s390_expand_builtin): Replace arch12 with z14.
2145         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2146         (s390_get_sched_attrmask): Likewise.
2147         (s390_get_unit_mask): Likewise.
2148         * config/s390/s390.opt: Add z14 to processor_type enum.
2150 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
2152         PR sanitizer/81604
2153         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
2154         change type to the element type, instead add eltype variable and
2155         use it where we are interested in the element type.
2157 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
2159         Backport from mainline
2160         2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
2162         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
2163         (PPC_FEATURE2_SCV): Likewise.
2164         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
2166 2017-07-28  David Edelsohn  <dje.gcc@gmail.com>
2168         Backport from mainline
2169         2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
2171         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
2172         character for AIX.
2173         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
2174         to dl_section_ref.  On AIX, append an expression to subtract
2175         the size of the section length to dl_section_ref.
2177 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
2179         Backport from mainline r250496
2180         2017-07-25  Bin Cheng  <bin.cheng@arm.com>
2182         PR target/81414
2183         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
2184         instructions if no du chain is found.
2186 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2188         Backport from mainline
2189         2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2191         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
2192         rs6000/biarch64.h.
2193         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
2194         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2195         (CRT_CALL_STATIC_FUNCTION): Likewise.
2196         (ASM_DEFAULT_SPEC): New define.
2197         (ASM_SPEC32): Likewise.
2198         (ASM_SPEC64): Likewise.
2199         (ASM_SPEC_COMMON): Likewise.
2200         (ASM_SPEC): Likewise.
2201         (INVALID_64BIT): Likewise.
2202         (LINK_OS_DEFAULT_SPEC): Likewise.
2203         (LINK_OS_SPEC32): Likewise.
2204         (LINK_OS_SPEC64): Likewise.
2205         (POWERPC_LINUX): Likewise.
2206         (PTRDIFF_TYPE): Likewise.
2207         (RESTORE_FP_PREFIX): Likewise.
2208         (RESTORE_FP_SUFFIX): Likewise.
2209         (SAVE_FP_PREFIX): Likewise.
2210         (SAVE_FP_SUFFIX): Likewise.
2211         (SIZE_TYPE): Likewise.
2212         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
2213         (TARGET_64BIT): Likewise.
2214         (TARGET_64BIT): Likewise.
2215         (TARGET_AIX): Likewise.
2216         (WCHAR_TYPE_SIZE): Likewise.
2217         (WCHAR_TYPE): Undefine.
2218         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
2219         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
2220         (CPP_OS_RTEMS_SPEC): Delete.
2221         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
2222         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
2223         link_os_spec64.
2224         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
2226 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2228         Backport from mainline
2229         2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2231         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
2232         * config/riscv/rtems.h: New file.
2234 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
2236         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
2237         earlier and only if MASK_FPU is set.  Adjust formatting.
2239 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2241         Backport from mainline
2242         2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2244         PR target/81534
2245         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
2246         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
2247         Change s_operand to memory_operand.
2249 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
2251         PR tree-optimization/81555
2252         PR tree-optimization/81556
2253         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
2254         if true, force CHANGED for the recursive invocation.
2255         (reassociate_bb): Remember original length of ops array, pass
2256         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
2258 2017-07-27  Martin Liska  <mliska@suse.cz>
2260         Backport from mainline
2261         2017-07-17  Martin Liska  <mliska@suse.cz>
2263         PR sanitizer/81302
2264         * opts.c (finish_options): Do not allow -fgnu-tm
2265         w/ -fsanitize={kernel-,}address.  Say sorry.
2267 2017-07-27  Martin Liska  <mliska@suse.cz>
2269         Backport from mainline
2270         2017-07-26  Martin Liska  <mliska@suse.cz>
2272         PR sanitize/81186
2273         * function.c (expand_function_start): Make expansion of
2274         nonlocal_goto_save_area after parm_birth_insn.
2276 2017-07-27  Martin Liska  <mliska@suse.cz>
2278         Backport from mainline
2279         2017-06-30  Martin Liska  <mliska@suse.cz>
2281         PR sanitizer/81021
2282         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
2283         before BUILT_IN_UNWIND_RESUME when ASAN is used.
2285 2017-07-27  Martin Liska  <mliska@suse.cz>
2287         Backport from mainline
2288         2017-06-28  Martin Liska  <mliska@suse.cz>
2290         PR sanitizer/81224
2291         * asan.c (instrument_derefs): Bail out inner references
2292         that are hard register variables.
2294 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2296         Backport from mainline
2297         2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2299         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
2300         (sparc_option_override): Honour MASK_FSMULD.
2301         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
2302         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
2303         * config/sparc/sparc.opt (mfsmuld): New option.
2304         * doc/invoke.texi (mfsmuld): Document option.
2306 2017-07-26  Georg-Johann Lay  <avr@gjlay.de>
2308         Backport from 2017-07-25 trunk r250499.
2310         PR 81487
2311         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
2312         * gimple-pretty-print.c (dump_probability): Same.
2313         * tree-ssa-structalias.c (alias_get_name): Same.
2315 2017-07-26  Richard Biener  <rguenther@suse.de>
2317         Backport from mainline
2318         2017-06-18  Richard Biener  <rguenther@suse.de>
2320         PR tree-optimization/81410
2321         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
2322         the gap in the ! slp_perm SLP case after each group.
2324         2017-07-25  Richard Biener  <rguenther@suse.de>
2326         PR tree-optimization/81455
2327         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
2328         not walk in cycles when looking for guards.
2330         2017-07-25  Richard Biener  <rguenther@suse.de>
2332         PR middle-end/81505
2333         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
2334         sticky.
2336         2017-06-28  Jakub Jelinek  <jakub@redhat.com>
2338         PR target/81175
2339         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
2340         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
2342         2017-06-26  Richard Biener  <rguenther@suse.de>
2344         PR target/81175
2345         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
2346         Use def_builtin_pure for all gather builtins.
2348         2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
2350         * config/i386/i386.c (struct builtin_isa): New field pure_p.
2351         Reorder for compactness.
2352         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
2353         (def_builtin_pure, def_builtin_pure2): New functions.
2354         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
2356 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2358         Backport from mainline
2359         2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2361         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
2362         from all CPU target flags enable members.
2364 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2366         Backport from mainline
2367         2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2369         PR libgcc/61152
2370         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
2371         Format changes.
2372         * config/arm/rtems.h: Likewise.
2373         * config/bfin/rtems.h: Likewise.
2374         * config/i386/rtemself.h: Likewise.
2375         * config/lm32/rtems.h: Likewise.
2376         * config/m32c/rtems.h: Likewise.
2377         * config/m68k/rtemself.h: Likewise.
2378         * config/microblaze/rtems.h: Likewise.
2379         * config/mips/rtems.h: Likewise.
2380         * config/moxie/rtems.h: Likewise.
2381         * config/nios2/rtems.h: Likewise.
2382         * config/rs6000/rtems.h: Likewise.
2383         * config/rtems.h: Likewise.
2384         * config/sh/rtems.h: Likewise.
2385         * config/sh/rtemself.h: Likewise.
2386         * config/sparc/rtemself.h: Likewise.
2388 2017-07-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2390         Backport from mainline
2391         2017-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2393         PR tree-optimization/81162
2394         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
2395         replace a negate with an add.
2397 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
2399         Backport from 2017-07-12 trunk r250151.
2401         PR target/81407
2402         * config/avr/avr.c (avr_encode_section_info)
2403         [progmem && !TREE_READONLY]: Error if progmem object needs
2404         constructing.
2406 2017-07-25  Wilco Dijkstra  <wdijkstr@arm.com>
2408         PR target/79041
2409         * config/aarch64/aarch64.c (aarch64_classify_symbol):
2410         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
2412 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
2414         Backport from trunk r247719.
2416         2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
2418         PR rtl-optimization/75964
2419         * simplify-rtx.c (simplify_const_relational_operation): Remove
2420         invalid handling of comparisons of integer ABS.
2422 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
2424         Backport from 2017-07-20 trunk r250384.
2426         PR tree-optimization/81388
2427         Revert r238585:
2428         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
2430         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
2431         by removing computation of may_be_zero.
2433 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
2435         PR target/80569
2436         * config/i386/i386.c (ix86_option_override_internal): Disable
2437         BMI, BMI2 and TBM instructions for -m16.
2439 2017-07-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
2441         Back port from trunk
2442         2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2444         PR target/81193
2445         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
2446         provides the hardware capability bits, define the macro
2447         __BUILTIN_CPU_SUPPORTS__.
2448         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
2449         if GLIBC does not provide the hardware capability bits.  Add a
2450         gcc_unreachable call if the built-in cpu function is neither
2451         __builtin_cpu_is nor __builtin_cpu_supports.
2452         * doc/extend.texi (PowerPC built-in functions): Document that
2453         GLIBC 2.23 or newer is needed by __builtin_cpu_is and
2454         __builtin_cpu_supports.  Document the macros defined by GCC if the
2455         newer GLIBC is available.
2457 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
2459         PR target/81471
2460         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
2461         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
2462         operand 2 predicate.
2463         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
2464         operand 2 predicate.
2465         (ror,rol -> rorx splitters): Use const_int_operand as
2466         operand 2 predicate.
2468 2017-07-18  Tom de Vries  <tom@codesourcery.com>
2470         backport from mainline:
2471         PR target/81069
2472         2017-07-17  Tom de Vries  <tom@codesourcery.com>
2474         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
2475         as possible.
2477 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
2479         Backport from 2017-07-18 trunk r250301.
2481         PR target/81473
2482         * config/avr/avr.c (avr_optimize_casesi): Don't use
2483         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
2485 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
2487         PR tree-optimization/81428
2488         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
2489         can't be built for those types.
2491         PR tree-optimization/81365
2492         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
2493         aggregate moves onto bb predecessor edges, make sure there are no
2494         loads that could alias the lhs in between the start of bb and the
2495         loads from *phi.
2497         Backported from mainline
2498         2017-06-30  Jakub Jelinek  <jakub@redhat.com>
2500         PR target/81225
2501         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For
2502         V8FI, V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
2503         of nonimmediate_operand and <store_mask_constraint> instead of m for
2504         the input operand.  For V8FI iterator, always split if input is a MEM.
2505         For V16FI and V8SF_256 iterators, don't test if both operands are MEM
2506         if <mask_applied>.  For VI4F_256 iterator, use <store_mask_predicate>
2507         instead of register_operand and <store_mask_constraint> instead of v for
2508         the input operand.  Make sure both operands aren't MEMs for if not
2509         <mask_applied>.
2511 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
2513         Backport from 2017-07-17 trunk r250258.
2515         PR 80929
2516         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
2517         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
2518         [LSHIFTRT, outer_code = TRUNCATE]: Same.
2520 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2522         Backport from mainline
2523         2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2525         *  gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
2526         conditional builtin define __FIX_LEON3FT_B2BST.
2528 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
2530         Backport from mainline
2531         2017-07-17  Daniel Cederman  <cederman@gaisler.com>
2533         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
2534         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
2535         with -mfix-ut700.
2537 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
2539         PR rtl-optimization/81424
2540         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
2541         to remove potential trapping from operands if -fnon-call-exceptions.
2543 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
2545         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
2546         to back store errata sensitive sequence from being generated.
2547         (sqrtdf2_fix): Likewise.
2549 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
2551         Backport from 2017-07-12 trunk r250156.
2553         PR target/79883
2554         * config/avr/avr.c (avr_set_current_function): In diagnostic
2555         messages: Quote keywords and (parts of) identifiers.
2556         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
2557         "INTERRUPT".
2559 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
2561         * config/sparc/sparc.opt (mfix-ut700): New option.
2562         (mfix-gr712rc): Likewise.
2563         (sparc_fix_b2bst): New variable.
2564         * doc/invoke.texi (SPARC options): Document them.
2565         (ARM options): Fix warnings.
2566         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
2567         instructions to prevent sequences that can trigger the store-store
2568         errata for certain LEON3FT processors.
2569         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
2570         (sparc_option_override): Set sparc_fix_b2bst appropriately.
2571         * config/sparc/sparc.md (fix_b2bst): New attribute.
2572         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
2574 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
2576         PR target/81375
2577         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
2578         (rcpps): Ditto.
2579         (*rsqrtsf2_sse): Ditto.
2580         (rsqrtsf2): Ditto.
2581         (div<mode>3): Macroize insn from divdf3 and divsf3
2582         using MODEF mode iterator.
2584 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
2586         Backport from mainline
2587         2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
2589         PR target/81348
2590         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
2591         correct operand in doing the split.
2593 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2595         * config/sparc/m8.md: New file.
2596         * config/sparc/sparc.md: Include m8.md.
2598 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2600         * config/sparc/sparc.opt: New option -mvis4b.
2601         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
2602         (sparc_option_override): Handle VIS4B.
2603         (enum sparc_builtins): Define
2604         SPARC_BUILTIN_DICTUNPACK{8,16,32},
2605         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
2606         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
2607         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
2608         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
2609         (check_constant_argument): New function.
2610         (sparc_vis_init_builtins): Define builtins
2611         __builtin_vis_dictunpack{8,16,32},
2612         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
2613         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
2614         __builtin_vis_fpcmpde{8,16,32}shl and
2615         __builtin_vis_fpcmpur{8,16,32}shl.
2616         (sparc_expand_builtin): Check that the constant operands to
2617         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
2618         constant and in range.
2619         * config/sparc/sparc-c.c (sparc_target_macros): Handle
2620         TARGET_VIS4B.
2621         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
2622         (SPARC_IMM5_P): Likewise.
2623         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
2624         (enabled): Handle vis4b.
2625         (UNSPEC_DICTUNPACK): New unspec.
2626         (UNSPEC_FPCMPSHL): Likewise.
2627         (UNSPEC_FPUCMPSHL): Likewise.
2628         (UNSPEC_FPCMPDESHL): Likewise.
2629         (UNSPEC_FPCMPURSHL): Likewise.
2630         (cpu_feature): New CPU feature `vis4b'.
2631         (dictunpack{8,16,32}): New insns.
2632         (FPCSMODE): New mode iterator.
2633         (fpcscond): New code iterator.
2634         (fpcsucond): Likewise.
2635         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
2636         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
2637         (fpcmpde{8,16,32}{si,di}shl): Likewise.
2638         (fpcmpur{8,16,32}{si,di}shl): Likewise.
2639         * config/sparc/constraints.md: Define constraints `q' for unsigned
2640         2-bit integer constants and `t' for unsigned 5-bit integer
2641         constants.
2642         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
2643         predicate.
2644         (imm5_operand_dictunpack16): Likewise.
2645         (imm5_operand_dictunpack32): Likewise.
2646         (imm2_operand): Likewise.
2647         * doc/invoke.texi (SPARC Options): Document -mvis4b.
2648         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2649         ditunpack* and fpcmp*shl builtins.
2651 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2653         * config.gcc: Handle m8 in --with-{cpu,tune} options.
2654         * config.in: Add HAVE_AS_SPARC6 define.
2655         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
2656         M8.
2657         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
2658         TARGET_CPU_m8.
2659         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
2660         (CPP_CPU_SPEC): Handle m8.
2661         (ASM_CPU_SPEC): Likewise.
2662         * config/sparc/sparc-opts.h (enum processor_type): Add
2663         PROCESSOR_M8.
2664         * config/sparc/sparc.c (m8_costs): New struct.
2665         (sparc_option_override): Handle TARGET_CPU_m8.
2666         (sparc32_initialize_trampoline): Likewise.
2667         (sparc64_initialize_trampoline): Likewise.
2668         (sparc_issue_rate): Likewise.
2669         (sparc_register_move_cost): Likewise.
2670         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
2671         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
2672         (ASM_CPU64_DEFAULT_SPEC): Likewise.
2673         (CPP_CPU_SPEC): Handle M8.
2674         (ASM_CPU_SPEC): Likewise.
2675         (AS_M8_FLAG): Define.
2676         * config/sparc/sparc.md: Add m8 to the cpu attribute.
2677         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
2678         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
2679         M8 instructions.
2680         * configure: Regenerate.
2681         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
2682         -mtune=m8.
2684 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2686         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
2687         subtypes.
2688         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
2689         ("*movdi_insn_sp32"): Do not set v3pipe.
2690         ("*movsi_insn"): Likewise.
2691         ("*movdi_insn_sp64"): Likewise.
2692         ("*movsf_insn"): Likewise.
2693         ("*movdf_insn_sp32"): Likewise.
2694         ("*movdf_insn_sp64"): Likewise.
2695         ("*zero_extendsidi2_insn_sp64"): Likewise.
2696         ("*sign_extendsidi2_insn"): Likewise.
2697         ("*mov<VM32:mode>_insn"): Likewise.
2698         ("*mov<VM64:mode>_insn_sp64"): Likewise.
2699         ("*mov<VM64:mode>_insn_sp32"): Likewise.
2700         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2701         ("<vlop:code><VL:mode>3"): Likewise.
2702         ("*not_<vlop:code><VL:mode>3"): Likewise.
2703         ("*nand<VL:mode>_vis"): Likewise.
2704         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
2705         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
2706         ("one_cmpl<VL:mode>2"): Likewise.
2707         ("faligndata<VM64:mode>_vis"): Likewise.
2708         ("alignaddrsi_vis"): Likewise.
2709         ("alignaddrdi_vis"): Likweise.
2710         ("alignaddrlsi_vis"): Likewise.
2711         ("alignaddrldi_vis"): Likewise.
2712         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2713         ("bmaskdi_vis"): Likewise.
2714         ("bmasksi_vis"): Likewise.
2715         ("bshuffle<VM64:mode>_vis"): Likewise.
2716         ("cmask8<P:mode>_vis"): Likewise.
2717         ("cmask16<P:mode>_vis"): Likewise.
2718         ("cmask32<P:mode>_vis"): Likewise.
2719         ("pdistn<P:mode>_vis"): Likewise.
2720         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2722 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2724         * config/sparc/sparc.md ("subtype"): New insn attribute.
2725         ("*wrgsr_sp64"): Set insn subtype.
2726         ("*rdgsr_sp64"): Likewise.
2727         ("alignaddrsi_vis"): Likewise.
2728         ("alignaddrdi_vis"): Likewise.
2729         ("alignaddrlsi_vis"): Likewise.
2730         ("alignaddrldi_vis"): Likewise.
2731         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2732         ("fexpand_vis"): Likewise.
2733         ("fpmerge_vis"): Likewise.
2734         ("faligndata<VM64:mode>_vis"): Likewise.
2735         ("bshuffle<VM64:mode>_vis"): Likewise.
2736         ("cmask8<P:mode>_vis"): Likewise.
2737         ("cmask16<P:mode>_vis"): Likewise.
2738         ("cmask32<P:mode>_vis"): Likewise.
2739         ("fchksm16_vis"): Likewise.
2740         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
2741         ("fmean16_vis"): Likewise.
2742         ("fp<plusminus_insn>64_vis"): Likewise.
2743         ("<plusminus_insn>v8qi3"): Likewise.
2744         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2745         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
2746         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
2747         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
2748         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
2749         ("*movqi_insn"): Likewise.
2750         ("*movhi_insn"): Likewise.
2751         ("*movsi_insn"): Likewise.
2752         ("movsi_pic_gotdata_op"): Likewise.
2753         ("*movdi_insn_sp32"): Likewise.
2754         ("*movdi_insn_sp64"): Likewise.
2755         ("movdi_pic_gotdata_op"): Likewise.
2756         ("*movsf_insn"): Likewise.
2757         ("*movdf_insn_sp32"): Likewise.
2758         ("*movdf_insn_sp64"): Likewise.
2759         ("*zero_extendhisi2_insn"): Likewise.
2760         ("*zero_extendqihi2_insn"): Likewise.
2761         ("*zero_extendqisi2_insn"): Likewise.
2762         ("*zero_extendqidi2_insn"): Likewise.
2763         ("*zero_extendhidi2_insn"): Likewise.
2764         ("*zero_extendsidi2_insn_sp64"): Likewise.
2765         ("ldfsr"): Likewise.
2766         ("prefetch_64"): Likewise.
2767         ("prefetch_32"): Likewise.
2768         ("tie_ld32"): Likewise.
2769         ("tie_ld64"): Likewise.
2770         ("*tldo_ldub_sp32"): Likewise.
2771         ("*tldo_ldub1_sp32"): Likewise.
2772         ("*tldo_ldub2_sp32"): Likewise.
2773         ("*tldo_ldub_sp64"): Likewise.
2774         ("*tldo_ldub1_sp64"): Likewise.
2775         ("*tldo_ldub2_sp64"): Likewise.
2776         ("*tldo_ldub3_sp64"): Likewise.
2777         ("*tldo_lduh_sp32"): Likewise.
2778         ("*tldo_lduh1_sp32"): Likewise.
2779         ("*tldo_lduh_sp64"): Likewise.
2780         ("*tldo_lduh1_sp64"): Likewise.
2781         ("*tldo_lduh2_sp64"): Likewise.
2782         ("*tldo_lduw_sp32"): Likewise.
2783         ("*tldo_lduw_sp64"): Likewise.
2784         ("*tldo_lduw1_sp64"): Likewise.
2785         ("*tldo_ldx_sp64"): Likewise.
2786         ("*mov<VM32:mode>_insn"): Likewise.
2787         ("*mov<VM64:mode>_insn_sp64"): Likewise.
2788         ("*mov<VM64:mode>_insn_sp32"): Likewise.
2790 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2792         * config/sparc/sparc.md ("type"): New insn type viscmp.
2793         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
2794         viscmp.
2795         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
2796         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
2797         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2798         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
2799         viscmp.
2800         ("n7_vis_logical_11cycle"): Likewise.
2801         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
2802         * config/sparc/niagara2.md ("niag3_vis": Likewise.
2803         * config/sparc/niagara.md ("niag_vis"): Likewise.
2804         * config/sparc/ultra3.md ("us3_fga"): Likewise.
2805         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
2807 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
2809         * config/sparc/sparc.md: New instruction type `bmask'.
2810         (bmaskdi_vis): Use the `bmask' type.
2811         (bmasksi_vis): Likewise.
2812         * config/sparc/ultra3.md (us3_array): Likewise.
2813         * config/sparc/niagara7.md (n7_array): Likewise.
2814         * config/sparc/niagara4.md (n4_array): Likewise.
2815         * config/sparc/niagara2.md (niag2_vis): Likewise.
2816         (niag3_vis): Likewise.
2817         * config/sparc/niagara.md (niag_vis): Likewise.
2819 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
2821         Backport from 2017-07-05 trunk r249995.
2823         PR target/81305
2824         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
2825         Don't depend on "optimize > 0".
2826         (out_movhi_r_mr, out_movqi_mr_r): Same.
2827         (out_movhi_mr_r, out_movqi_r_mr): Same.
2828         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
2829         io_address_operand on "optimize > 0".
2831 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
2833         PR target/81300
2834         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
2835         Require dead FLAGS_REG at the beginning of a peephole.
2837 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
2839         PR target/81294
2840         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
2841         arguments in the call to __builtin_ia32_sbb_u32.
2842         (_subborrow_u64): Swap _X and _Y arguments in the call to
2843         __builtin_ia32_sbb_u64.
2845 2017-07-03  Segher Boessenkool  <segher@kernel.crashing.org>
2847         Backport from trunk:
2849         2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
2851         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
2852         of REGNO.
2854 2017-07-03  Tom de Vries  <tom@codesourcery.com>
2856         backport from mainline:
2857         PR tree-optimization/81192
2858         2017-07-03  Tom de Vries  <tom@codesourcery.com>
2860         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
2861         BB_SAME_SUCC (bb) == NULL.
2863 2017-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
2865         Backport from mainline
2866         2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
2868         PR target/80510
2869         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
2870         32-bit, since indexed is not valid for DImode.
2871         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
2872         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
2873         (define_peephole2 for Altivec d-form load): Add 32-bit support.
2874         (define_peephole2 for Altivec d-form store): Likewise.
2876         Backport from mainline
2877         2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
2879         PR target/79799
2880         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
2881         for doing vector set of SFmode on ISA 3.0.
2882         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
2883         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
2884         element.
2885         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
2886         SFmode value into a V4SF variable that was extracted from another
2887         V4SF variable without converting the element to double precision
2888         and back to single precision vector format.
2889         (vsx_insert_extract_v4sf_p9_2): Likewise.
2891 2017-06-29  Richard Biener  <rguenther@suse.de>
2893         Backport from mainline
2894         2017-06-19  Richard Biener  <rguenther@suse.de>
2896         PR ipa/81112
2897         * ipa-prop.c (find_constructor_constant_at_offset): Handle
2898         RANGE_EXPR conservatively.
2900 2017-06-28  Richard Biener  <rguenther@suse.de>
2902         Backport from mainline
2903         2017-06-09  Richard Biener  <rguenther@suse.de>
2905         PR middle-end/81007
2906         * ipa-polymorphic-call.c
2907         (ipa_polymorphic_call_context::restrict_to_inner_class):
2908         Skip FIELD_DECLs with error_mark_node type.
2909         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
2910         last again.
2912         2017-06-14  Richard Biener  <rguenther@suse.de>
2914         PR tree-optimization/81083
2915         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
2916         as values.
2918 2017-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
2920         Backports from trunk:
2922         2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
2923         PR middle-end/80692
2924         * real.c (do_compare): Give decimal_do_compare preference over
2925         comparing just the signs.
2927         2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
2928         PR target/80618
2929         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
2930         splitter result in the canonical way.
2932         2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
2933         PR target/80966
2934         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
2935         gen_add3_insn did not fail.
2936         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
2937         r0, construct that number in a temporary reg and add that reg to r0.
2938         If asked to put the result in r0 as well, fail.
2940         2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
2941         PR middle-end/80902
2942         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
2943         a call, force the call to not be a tail call.
2945 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
2947         PR sanitizer/81209
2948         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
2950         PR middle-end/81207
2951         * gimple-fold.c (replace_call_with_call_and_fold): Handle
2952         gimple_vuse copying separately from gimple_vdef copying.
2954 2017-06-24  Jim Wilson  <jim.wilson@linaro.org>
2956         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
2957         here.
2958         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
2959         * config/arm/arm-cpu-cdata.h: Regenerate.
2960         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
2961         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
2962         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
2963         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
2964         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
2965         support.
2966         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
2967         support.
2968         * config/arm/t-rmprofile: Likewise.
2969         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
2971 2017-06-24  Marek Polacek  <polacek@redhat.com>
2973         Backport from mainline
2974         2017-05-04  Marek Polacek  <polacek@redhat.com>
2976         PR tree-optimization/80612
2977         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
2979 2017-06-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2981         Backport from mainline
2982         2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
2984         * config/arm/arm-builtins.c (arm_init_builtins): Rename
2985         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
2986         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
2988 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
2990         PR c++/81187
2991         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
2992         -Wnoexcept.
2994 2017-06-22  Martin Liska  <mliska@suse.cz>
2996         Backport from mainline
2997         2017-06-19  Martin Liska  <mliska@suse.cz>
2999         PR sanitizer/80879
3000         * gimplify.c (gimplify_switch_expr):
3001         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
3003 2017-06-22  Martin Liska  <mliska@suse.cz>
3005         Backport from mainline
3006         2017-05-31  Martin Liska  <mliska@suse.cz>
3008         PR target/79155
3009         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
3011 2017-06-22  Martin Liska  <mliska@suse.cz>
3013         Backport from mainline
3014         2017-05-30  Martin Liska  <mliska@suse.cz>
3016         PR other/80909
3017         * auto-profile.c (get_function_decl_from_block): Fix
3018         parenthesis.
3020 2017-06-22  Martin Liska  <mliska@suse.cz>
3022         Backport from mainline
3023         2017-05-26  Martin Liska  <mliska@suse.cz>
3025         PR ipa/80663
3026         * params.def: Bound partial-inlining-entry-probability param.
3028 2017-06-22  Martin Liska  <mliska@suse.cz>
3030         Backport from mainline
3031         2017-05-16  Martin Liska  <mliska@suse.cz>
3033         PR ipa/79849.
3034         PR ipa/79850.
3035         * ipa-devirt.c (warn_types_mismatch): Fix typo.
3036         (odr_types_equivalent_p): Likewise.
3038 2017-06-22  Martin Liska  <mliska@suse.cz>
3040         Backport from mainline
3041         2017-05-15  Martin Liska  <mliska@suse.cz>
3043         PR driver/31468
3044         * gcc.c (process_command): Do not allow empty argument of -o option.
3046 2017-06-22  Martin Liska  <mliska@suse.cz>
3048         Backport from mainline
3049         2017-05-02  Martin Liska  <mliska@suse.cz>
3051         * doc/gcov.texi: Add missing preposition.
3052         * gcov.c (function_info::function_info): Properly fill up
3053         all member variables.
3055 2017-06-22  Martin Liska  <mliska@suse.cz>
3057         Backport from mainline
3058         2017-05-02  Martin Liska  <mliska@suse.cz>
3060         PR other/80589
3061         * common.opt: Fix typo.
3062         * doc/invoke.texi: Likewise.
3064 2017-06-22  Martin Liska  <mliska@suse.cz>
3066         Backport from mainline
3067         2017-04-28  Martin Liska  <mliska@suse.cz>
3069         * doc/gcov.texi: Enhance documentation of gcov.
3071 2017-06-22  Martin Liska  <mliska@suse.cz>
3073         Backport from mainline
3074         2017-04-28  Martin Liska  <mliska@suse.cz>
3076         * doc/gcov.texi: Sort options in alphabetic order.
3077         * doc/gcov-dump.texi: Likewise.
3078         * doc/gcov-tool.texi: Likewise.
3079         * gcov.c (print_usage): Likewise.
3080         * gcov-dump.c (print_usage): Likewise.
3081         * gcov-tool.c (print_merge_usage_message): Likewise.
3082         (print_rewrite_usage_message): Likewise.
3083         (print_overlap_usage_message): Likewise.
3085 2017-06-22  Martin Liska  <mliska@suse.cz>
3087         Backport from mainline
3088         2017-04-28  Martin Liska  <mliska@suse.cz>
3090         PR gcov-profile/53915
3091         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
3093 2017-06-22  Martin Liska  <mliska@suse.cz>
3095         Backport from mainline
3096         2017-04-28  Martin Liska  <mliska@suse.cz>
3098         PR driver/56469
3099         * coverage.c (coverage_remove_note_file): New function.
3100         * coverage.h: Declare the function.
3101         * toplev.c (finalize): Clean if an error has been seen.
3103 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
3105         PR target/81151
3106         * config/i386/sse.md (round<mode>2): Renumber match_dup and
3107         operands indexes to avoid gap between operands and match_dups.
3109         PR c++/81130
3110         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
3111         with ctors/dtors if GOVD_SHARED is set.
3113         Backported from mainline
3114         2017-06-20  Jakub Jelinek  <jakub@redhat.com>
3116         PR target/81121
3117         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
3118         splitter): Require TARGET_SSE2 in the condition.
3120         PR sanitizer/81125
3121         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
3122         by removing enum keyword.
3123         (ubsan_type_descriptor): Likewise.  Formatting fix.
3125         2017-06-19  Jakub Jelinek  <jakub@redhat.com>
3127         PR sanitizer/81125
3128         * ubsan.h (enum ubsan_encode_value_phase): New.
3129         (ubsan_encode_value): Change second argument to
3130         enum ubsan_encode_value_phase with default value of
3131         UBSAN_ENCODE_VALUE_GENERIC.
3132         * ubsan.c (ubsan_encode_value): Change second argument to
3133         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
3134         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
3135         create_tmp_var_raw instead of create_tmp_var and use a
3136         TARGET_EXPR.
3137         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
3138         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
3139         ubsan_encode_value callers.
3141         PR sanitizer/81111
3142         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
3143         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
3144         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
3146 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
3148         Backport from Mainline
3149         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
3150         feature string.
3152 2017-06-20  Andreas Schwab  <schwab@suse.de>
3154         PR target/80970
3155         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
3156         instead of "+d".
3158 2017-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
3160         Backport from mainline
3161         2017-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
3163         PR target/71778
3164         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
3165         if given a non-constant argument for an intrinsic which requires a
3166         constant.
3168 2017-06-19  Alexander Monakov  <amonakov@ispras.ru>
3170         * doc/invoke.texi (mcx16): Rewrite.
3172 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
3174         PR rtl-optimization/80474
3175         * reorg.c (update_block): Do not ignore instructions in a delay slot.
3177 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
3179         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
3180         (MASK_FEATURES): New macro.
3181         * config/sparc/sparc.c (sparc_option_override): Remove the special
3182         handling of -mfpu and generalize it to all MASK_FEATURES switches.
3184 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
3186         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
3188 2017-06-12  David S. Miller  <davem@davemloft.net>
3190         PR target/80968
3191         * config/sparc/sparc.md (return expander): Emit frame blockage if
3192         function uses alloca.
3194 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
3196         PR target/81015
3197         Revert:
3198         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
3200         PR target/59874
3201         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
3202         (*clzhi2): Ditto.
3204 2017-06-08  David Edelsohn  <dje.gcc@gmail.com>
3206         Backport from mainline
3207         2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
3209         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
3210         (dl_section_ref): New.
3211         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
3212         On AIX, append an expression to subtract the size of the
3213         section length to dl_section_ref.
3215 2017-06-07  Richard Biener  <rguenther@suse.de>
3217         Backport from mainline
3218         2017-05-02  Richard Biener  <rguenther@suse.de>
3220         PR tree-optimization/80549
3221         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
3222         (cleanup_tree_cfg_noloop): Create forwarders to known loop
3223         headers if they do not have a preheader.
3225         2017-05-26  Richard Biener  <rguenther@suse.de>
3227         PR tree-optimization/80842
3228         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
3229         value.
3231         2017-05-31  Richard Biener  <rguenther@suse.de>
3233         PR tree-optimization/80906
3234         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
3235         and pass through iv_map.
3236         (copy_bb_and_scalar_dependences): Adjust.
3237         (translate_pending_phi_nodes): Likewise.
3238         (copy_loop_close_phi_args): Handle code-generating IVs instead
3239         of ICEing.
3241         2017-05-11  Richard Biener  <rguenther@suse.de>
3243         PR tree-optimization/80705
3244         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
3245         bases are not vectorizable.
3247 2017-06-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
3249         Back port from mainline
3250         2017-05-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
3252         PR target/80718
3253         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Prefer
3254         VSX registers over GPRs, particularly on ISA 2.07 which does not
3255         have the MTVSRDD instruction.
3257 2017-06-06  David S. Miller  <davem@davemloft.net>
3259         PR target/80968
3260         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
3261         blockage if function uses alloca.
3263 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
3265         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
3267 2017-06-02  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3269         Backport from mainline
3270         2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3271                     Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
3273         PR target/71607
3274         * config/arm/arm.md (use_literal_pool): Remove.
3275         (64-bit immediate split): No longer takes cost into consideration
3276         if arm_disable_literal_pool is enabled.
3277         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
3278         used when arm_disable_literal_pool is enabled.
3279         (arm_max_const_double_inline_cost): Remove use of
3280         arm_disable_literal_pool.
3281         (push_minipool_fix): Add assert.
3282         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
3283         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
3284         (no_literal_pool_sf_immediate): New.
3286 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
3288         PR rtl-optimization/80903
3289         * loop-doloop.c (add_test): Unshare sequence.
3291 2017-05-31  Martin Jambor  <mjambor@suse.cz>
3293         Backport from mainline
3294         2017-04-24  Martin Jambor  <mjambor@suse.cz>
3296         PR tree-optimization/80293
3297         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
3298         char arrays not totally scalarizable if it is false.
3299         (analyze_all_variable_accesses): Pass correct value in the new
3300         parameter.  Add a statistics counter.
3302 2017-05-30  Max Filippov  <jcmvbkbc@gmail.com>
3304         Backport from mainline
3305         2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
3307         * config/xtensa/xtensa.c (xtensa_emit_call): Use
3308         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
3309         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
3310         format string.
3312 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
3314         * doc/install.texi (Options specification): Restore entry of
3315         --enable-sjlj-exceptions.
3317 2017-05-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3319         Backport from mainline
3320         2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3322         PR target/80725
3323         * config/s390/s390.c (s390_check_qrst_address): Check incoming
3324         address against address_operand predicate.
3325         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
3327 2017-05-28  Uros Bizjak  <ubizjak@gmail.com>
3329         Backport from mainline
3330         2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
3332         * config/i386/i386.md (*movdi_internal): Remove SSE4
3333         alternative 18 (?r, *v).  Update insn attributes.
3334         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
3335         Update insn attributes.
3336         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
3337         Update insn attributes.
3338         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
3339         alternative 1 (r, v). Remove isa attribute.
3340         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
3341         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
3342         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
3344         2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
3346         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
3347         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
3348         and (?*y,m).  Update insn attributes.
3350 2017-05-26  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
3352         Backported from mainline
3353         2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
3355         * config/sparc/sparc.md (length): Return the correct value for -mflat
3356         sibcalls to match output_sibcall.
3358 2017-05-26  Marek Polacek  <polacek@redhat.com>
3360         Backported from mainline
3361         2017-05-26  Marek Polacek  <polacek@redhat.com>
3363         PR sanitizer/80875
3364         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
3365         can be negated.
3367 2017-05-26  Jakub Jelinek  <jakub@redhat.com>
3369         Backported from mainline
3370         2017-05-22  Jakub Jelinek  <jakub@redhat.com>
3372         PR middle-end/80809
3373         * omp-low.c (finish_taskreg_remap): New function.
3374         (finish_taskreg_scan): If unit size of ctx->record_type
3375         is non-constant, unshare the size expression and replace
3376         decls in it with possible outer var refs.
3378         PR middle-end/80809
3379         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
3380         GOVD_SHARED rather than GOVD_PRIVATE with it.
3381         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
3382         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
3384         PR middle-end/80853
3385         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
3386         as last argument to build_outer_var_ref for pointer bases of array
3387         section reductions.
3389 2017-05-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3391         Backport from trunk
3392         2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3394         PR target/80510
3395         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
3396         New predicate.
3398         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
3399         (define_peephole2 for Altivec d-form load): Add peepholes to catch
3400         cases where the register allocator uses a move and an offsettable
3401         memory operation to/from a FPR register on ISA 2.06/2.07.
3402         (define_peephole2 for Altivec d-form store): Likewise.
3404         Backport from trunk
3405         2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3407         PR target/68163
3408         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
3409         are now unused after splitting mov{sf,sd}_hardfloat.
3410         (f32_lr2): Likewise.
3411         (f32_lm): Likewise.
3412         (f32_lm2): Likewise.
3413         (f32_li): Likewise.
3414         (f32_li2): Likewise.
3415         (f32_lv): Likewise.
3416         (f32_sr): Likewise.
3417         (f32_sr2): Likewise.
3418         (f32_sm): Likewise.
3419         (f32_sm2): Likewise.
3420         (f32_si): Likewise.
3421         (f32_si2): Likewise.
3422         (f32_sv): Likewise.
3423         (f32_dm): Likewise.
3424         (f32_vsx): Likewise.
3425         (f32_av): Likewise.
3426         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
3427         For movsf, order stores so the VSX stores occur before the GPR
3428         store which encourages the register allocator to use a traditional
3429         FPR instead of a GPR.  For movsd, order the stores so that the GPR
3430         store comes before the VSX stores to allow the power6 to work.
3431         This is due to the power6 not having a 32-bit integer store
3432         instruction from a FPR.
3433         (movsf_hardfloat): Likewise.
3434         (movsd_hardfloat): Likewise.
3436 2017-05-25  Wilco Dijkstra  <wdijkstr@arm.com>
3438         Backport from mainlin
3439         PR rtl-optimization/80754
3440         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
3442 2017-05-25  Wilco Dijkstra  <wdijkstr@arm.com>
3444         Backport from mainline
3445         PR target/80671
3446         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
3447         Move member access before delete.
3449 2017-05-23  Sheldon Lobo  <sheldon.lobo@oracle.com>
3451         Backport from mainline
3452         2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
3454         * config/sparc/sparc.c (sparc_option_override): Set function
3455         alignment for -mcpu=niagara7 to 64 to match the I$ line.
3456         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
3457         latency to 1.
3458         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
3459         latency to 2.
3460         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
3462 2017-05-19  Uros Bizjak  <ubizjak@gmail.com>
3464         Backport from mainline
3465         2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
3467         PR target/80799
3468         * config/i386/mmx.md (*mov<mode>_internal): Enable
3469         alternatives 11, 12, 13 and 14 also for 32bit targets.
3470         Remove alternatives 15, 16, 17 and 18.
3471         * config/i386/sse.md (vec_concatv2di): Change
3472         alternative (!x, *y) to (x, ?!*Yn).
3474 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
3476         Backport from mainline
3477         2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
3479         PR target/80706
3480         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
3481         (UNSPEC_STX_ATOMIC): Ditto.
3482         (loaddi_via_sse): New insn.
3483         (storedi_via_sse): Ditto.
3484         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
3485         Update corresponding peephole2 patterns.
3486         (atomic_storedi_fpu): Ditto.
3488 2017-05-13  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3490         Backport from mainline
3491         2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3493         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
3494         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
3495         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
3496         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
3497         VF=2 that require versioning.
3499 2017-05-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3501         Backport from mainline
3502         2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3504         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
3505         built-ins for vec_xl and vec_xst with short and char pointer
3506         arguments.
3508 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
3510         PR target/80090
3511         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
3512         handle calling assemble_external ourself.
3514         PR target/79027
3515         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
3516         modes with zero size.  Enhance comment.
3518 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
3520         Back port from mainline
3521         2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
3523         PR target/79038
3524         PR target/79202
3525         PR target/79203
3526         * config/rs6000/rs6000.md (u code attribute): Add FIX and
3527         UNSIGNED_FIX.
3528         (extendsi<mode>2): Add support for doing sign extension via
3529         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
3530         don't have ISA 3.0 instructions.
3531         (extendsi<mode>2 splitter): Likewise.
3532         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
3533         generate the normal insns since SImode can now go in vector
3534         registers.  Disallow the special UNSPECs needed for previous
3535         machines to hide SImode being used.  Add new insns
3536         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
3537         (fix_trunc<mode>si2_stfiwx): Likewise.
3538         (fix_trunc<mode>si2_internal): Likewise.
3539         (fixuns_trunc<mode>si2): Likewise.
3540         (fixuns_trunc<mode>si2_stfiwx): Likewise.
3541         (fctiw<u>z_<mode>_smallint): Likewise.
3542         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
3543         of floating point to 32-bit integer from doing a direct move to
3544         the GPR registers to do a store.
3545         (fctiwz_<mode>): Break long line.
3547 2017-05-08  Tamar Christina  <tamar.christina@arm.com>
3549         PR middle-end/79665
3550         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
3551         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
3553 2017-05-03  Jan Beulich  <jbeulich@suse.com>
3555         Backport from mainline
3556         2017-05-01  Jan Beulich  <jbeulich@suse.com>
3558         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
3559         swapping, add (x,x,m,x,n) alternative.
3561 2017-05-03  Richard Biener  <rguenther@suse.de>
3563         Backport from mainline
3564         2017-04-20  Richard Biener  <rguenther@suse.de>
3566         PR tree-optimization/80453
3567         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
3568         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
3569         from the conditions.
3570         (vn_phi_eq): Pass them down.
3571         (vn_phi_lookup): Record them.
3572         (vn_phi_insert): Likewise.
3574         2017-04-25  Richard Biener  <rguenther@suse.de>
3576         PR tree-optimization/80492
3577         * alias.c (compare_base_decls): Handle registers with asm
3578         specification conservatively.
3580         2017-04-27  Richard Biener  <rguenther@suse.de>
3582         PR middle-end/80539
3583         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
3584         being in loop-closed SSA form conservatively.
3585         (chrec_fold_multiply_poly_poly): Likewise.
3587 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
3589         Backport from mainline
3590         2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
3592         PR target/68491
3593         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
3594         __get_cpuid_max returns 0.
3595         (__get_cpuid_count): Ditto.
3597 2017-05-02  Jakub Jelinek <jakub@redhat.com>
3599         Backported from mainline
3600         2017-04-25 Jakub Jelinek <jakub@redhat.com>
3602         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
3603         environment.
3605 2017-05-02  Jakub Jelinek  <jakub@redhat.com>
3607         * BASE-VER: Set to 7.1.1.
3609 2017-05-02  Release Manager
3611         * GCC 7.1.0 released.
3613 2017-05-02  Richard Biener  <rguenther@suse.de>
3615         PR tree-optimization/80591
3616         Revert
3617         2017-04-10  Richard Biener  <rguenther@suse.de>
3619         * tree-ssa-structalias.c (find_func_aliases): Properly handle
3620         asm inputs.
3622 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
3624         PR bootstrap/80531
3625         * cgraph.h (symtab_node::debug_symtab): No longer inline.
3626         * symtab.c (symtab_node::debug_symtab): Move definition here.
3628 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
3630         PR target/80530
3631         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
3632         that the logic for permitting reciprocal estimates matches that
3633         in use_rsqrt_p.
3635 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
3637         PR c++/80534
3638         * tree.c (type_cache_hasher::equal): Only compare
3639         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
3640         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
3641         non-aggregate element types.
3642         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
3643         about the flag on ARRAY_TYPEs in the comment, formatting fix.
3645         PR target/79430
3646         * reg-stack.c (emit_swap_insn): If i1src mentions the stack pointer,
3647         punt if tmp contains autoinc of stack pointer.
3649         PR target/77728
3650         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
3651         (aarch64_function_arg_alignment): Return unsigned int again, but still
3652         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
3653         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3654         Don't emit -Wpsabi note.
3655         (aarch64_function_arg_boundary): Likewise.
3656         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3657         caller.
3659 2017-04-25  Martin Sebor  <msebor@redhat.com>
3661         PR tree-optimization/80497
3662         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
3663         constants are representable in HOST_WIDE_INT.
3664         (parse_directive): Ditto.
3666 2017-04-25  Marek Polacek  <polacek@redhat.com>
3668         2017-04-25  Marek Polacek  <polacek@redhat.com>
3669         Backport from mainline
3671         PR sanitizer/80349
3672         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
3673         first argument to type.
3675 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3676             Jakub Jelinek  <jakub@redhat.com>
3678         PR target/77728
3679         * config/arm/arm.c: Include gimple.h.
3680         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3681         returns negative, increment ncrn only if it returned positive.
3682         (arm_needs_doubleword_align): Return int instead of bool,
3683         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
3684         members, but if there is any such non-FIELD_DECL
3685         > PARM_BOUNDARY aligned decl, return -1 instead of false.
3686         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3687         returns negative, increment nregs only if it returned positive.
3688         (arm_setup_incoming_varargs): Likewise.
3689         (arm_function_arg_boundary): Emit -Wpsabi note if
3690         arm_needs_doubleword_align returns negative, return
3691         DOUBLEWORD_ALIGNMENT only if it returned positive.
3693 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3695         Backport from mainline
3696         PR target/80482
3697         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
3698         type checks to test for compatibility instead of equality.
3700 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3701             Jakub Jelinek  <jakub@redhat.com>
3703         PR target/77728
3704         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
3705         type.
3706         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
3707         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
3708         the alignment computation, but return their maximum in warn_alignment.
3709         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3710         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
3711         is smaller.
3712         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
3713         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3714         caller.
3716 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3718         Backport from mainline
3719         2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3721         PR target/80464
3722         * config/s390/vector.md: Split MEM->GPR vector moves for
3723         non-s_operand addresses.
3725 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3727         Backport from mainline
3728         2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3730         PR target/79895
3731         * config/s390/predicates.md (reload_const_wide_int_operand): New
3732         predicate.
3733         * config/s390/s390.md ("movti"): Remove d/P alternative.
3734         ("movti_bigconst"): New pattern definition.
3736 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3738         Backport from maineline
3739         2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3741         PR target/80080
3742         * s390-protos.h (s390_expand_cs_hqi): Removed.
3743         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
3744         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
3745         modes as well as CCZ1mode and CCZmode.
3746         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
3747         signature of s390_emit_compare_and_swap.
3748         (s390_expand_cs_hqi): Likewise, make static.
3749         (s390_expand_cs_tdsi): Generate an explicit compare before trying
3750         compare-and-swap, in some cases.
3751         (s390_expand_cs): Wrapper function.
3752         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
3753         atomic_exchange.
3754         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
3755         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
3756         patterns for small and large integers.  Forbid symref memory operands.
3757         Move expander to s390.c.  Require cc register.
3758         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
3759         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
3760         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
3761         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
3762         symref memory operands.  Remove CC mode and call s390_match_ccmode
3763         instead.
3764         ("atomic_exchange<mode>"): Allow and implement all integer modes.
3766 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3768         Backport from mainline
3769         2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3771         * config/s390/s390.md (define_peephole2): New peephole to help
3772         combining the load-and-test pattern with volatile memory.
3775 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3777         Backport from mainline
3778         2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3780         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
3781         with CCZmode for TARGET_Z196.
3783 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
3785         PR rtl-optimization/80501
3786         * combine.c (make_compound_operation_int): Set subreg_code to SET
3787         even for AND with mask of the sign bit of mode.
3789         PR rtl-optimization/80500
3790         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
3791         sum's initial value.
3793 2017-04-24  Martin Liska  <mliska@suse.cz>
3795         Backport from mainline
3796         2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
3798         PR middle-end/79931
3799         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
3801 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
3803         Backport from mainline
3804         2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
3806         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear
3807         and lastprivate clauses in SIMT case.
3809 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3811         Backport from mainline
3812         2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
3814         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
3815         uninitialized variable warning to avoid buffer overrun.
3817 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
3819         * DEV-PHASE: Set to prerelease.
3821 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3823         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
3824         priority .init_array and .fini_array section with SECTION_NOTYPE
3825         flag.
3827 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
3829         PR middle-end/80423
3830         * tree.h (build_array_type): Add typeless_storage default argument.
3831         * tree.c (type_cache_hasher::equal): Also compare
3832         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
3833         (build_array_type): Add typeless_storage argument, set
3834         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
3835         recursive call.
3836         (build_nonshared_array_type): Adjust build_array_type_1 caller.
3837         (build_array_type): Likewise.  Add typeless_storage argument.
3839 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3840             Jakub Jelinek  <jakub@redhat.com>
3842         PR tree-optimization/80426
3843         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
3844         operation on symbolic operands, also compute the overflow for the
3845         invariant part when the operation degenerates into a negation.
3847 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
3849         PR debug/80461
3850         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
3851         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
3853         PR debug/80436
3854         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
3856 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
3858         PR target/80462
3859         * config/avr/avr.c (tree.h): Include it.
3860         (cgraph.h): Include it.
3861         (avr_encode_section_info): Don't warn for uninitialized progmem
3862         variable if it's just an alias.
3864 2017-04-19  Richard Biener  <rguenther@suse.de>
3866         PR ipa/65972
3867         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
3868         when needed by AutoPGO.
3870 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
3872         PR lto/50345
3873         * doc/lto.texi: Remove an extra 'that'.
3875 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
3877         PR rtl-optimization/80429
3878         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
3879         are only used in debug insns.
3881 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
3882             Vladimir Makarov  <vmakarov@redhat.com>
3884         * config/sparc/predicates.md (input_operand): Add comment.  Return
3885         true for any memory operand when LRA is in progress.
3886         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
3888 2017-04-18  Jeff Law  <law@redhat.com>
3890         PR target/74563
3891         * mips.md ({return,simple_return}_internal): Do not overwrite
3892         operands[0].
3894 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
3896         PR tree-optimization/80443
3897         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
3898         instead of adding 1, subtract -1 and similarly instead of subtracting
3899         1 add -1.
3901 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
3903         PR rtl-optimization/80357
3904         * haifa-sched.c (tmp_bitmap): New variable.
3905         (model_recompute): Handle duplicate use records.
3906         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
3907         (free_global_sched_pressure_data): Free it.
3909 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3911         Revert:
3912         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3913         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
3914         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
3915         instead of SYSTEM_HEADER_DIR.
3917 2017-04-18  Jeff Law  <law@redhat.com>
3919         PR middle-end/80422
3920         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
3921         predecessors after walking up the insn chain.
3923 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
3925         PR debug/80263
3926         * dwarf2out.c (modified_type_die): Try harder not to emit internal
3927         sizetype type into debug info.
3929 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3931         PR target/80099
3932         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
3933         unneeded test for TARGET_UPPER_REGS_SF.
3934         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
3936 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
3938         PR sanitizer/80444
3939         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
3940         instead of gsi_after_labels.
3942 2017-04-18  Jeff Law  <law@redhat.com>
3944         * regcprop.c (maybe_mode_change): Avoid creating copies of the
3945         stack pointer.
3947         Revert:
3948         2017-04-13  Jeff Law  <law@redhat.com>
3949         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
3950         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
3952 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
3954         PR target/79453
3955         * config/avr/avr.c (intl.h): Include it.
3956         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
3958 2017-04-18  Martin Liska  <mliska@suse.cz>
3960         PR gcov-profile/78783
3961         * gcov-tool.c (gcov_output_files): Validate that destination
3962         file is either removed by the tool or by a user.
3964 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
3965             Guy Benyei  <guybe@mellanox.com>
3967         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
3968         block, and do not negate it, the stored id is already negative.
3970 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
3972         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
3974 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
3976         PR target/80098
3977         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
3978         masks of options that should be turned off if the VSX vector
3979         options are turned off.
3980         (OTHER_P8_VECTOR_MASKS): Likewise.
3981         (OTHER_VSX_VECTOR_MASKS): Likewise.
3982         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
3983         rs6000_disable_incompatible_switches to validate no type switches
3984         like -mvsx.
3985         (rs6000_incompatible_switch): New function to disallow turning on
3986         other vector options if -mno-vsx, -mno-power8-vector, or
3987         -mno-power9-vector are specified.
3989 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
3991         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
3993 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
3995         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
3996         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
3997         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
3998         (ARG_POINTER_CFA_OFFSET): Likewise.
4000 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
4002         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
4003         conditions to take advantage of various optimizations.
4005 2017-04-13  Jeff Law  <law@redhat.com>
4007         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4008         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4009         (zero_extendsidi2_dext): Likewise.
4011 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4013         PR sanitizer/80403
4014         * fold-const.c (fold_ternary_loc): Revert
4015         use op0 instead of fold_convert_loc (loc, type, arg0) part of
4016         2017-04-12 change.
4018 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
4020         PR rtl-optimization/80343
4021         * lra-remat.c (update_scratch_ops): Assign original hard reg to
4022         new scratch pseudo.
4024 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
4026         PR sanitizer/80414
4027         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
4028         to ubsan_encode_value.
4030 2017-04-13  Jeff Law  <law@redhat.com>
4032         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
4033         appearing in DEBUG_INSNs.
4035 2017-04-13  Martin Liska  <mliska@suse.cz>
4037         PR gcov-profile/80413
4038         * gcov-io.c (gcov_write_string): Copy to buffer just when
4039         allocated size is greater than zero.
4041 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
4043         PR debug/80321
4044         * dwarf2out.c (decls_for_scope): Ignore declarations of
4045         current_function_decl in BLOCK_NONLOCALIZED_VARS.
4047 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
4049         PR lto/69953 
4050         * ipa-visibility.c (non_local_p): Fix typos.
4051         (localize_node): When localizing symbol in same comdat group,
4052         dissolve the group only when we know external symbols are going
4053         to be privatized.
4054         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
4056 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4058         PR tree-optimization/79390
4059         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
4060         order does not result in usable sequence, retry with reversed operand
4061         order.
4063         PR sanitizer/80403
4064         PR sanitizer/80404
4065         PR sanitizer/80405
4066         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
4067         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
4068         op0 instead of fold_convert_loc (loc, type, arg0).
4070 2017-04-12  Jeff Law  <law@redhat.com>
4072         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
4073         has a delay slot in the generated code.
4075         * config/cris/cris.md (cris_preferred_reload_class): Return
4076         GENNONACR_REGS rather than GENERAL_REGS.
4078 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4080         PR c/80163
4081         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
4082         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
4083         signedness of the result type.
4085 2017-04-12  Richard Biener  <rguenther@suse.de>
4086             Jeff Law  <law@redhat.com>
4088         PR tree-optimization/80359
4089         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
4090         trim stores to TARGET_MEM_REFs.
4092 2017-04-12  Richard Biener  <rguenther@suse.de>
4094         PR tree-optimization/79390
4095         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
4096         threading case even more.
4098 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
4100         PR target/80382
4101         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
4102         for quad_address_p for TImode, instead of just not indexed_address.
4104 2017-04-12  Richard Biener  <rguenther@suse.de>
4105             Bernd Edlinger  <bernd.edlinger@hotmail.de>
4107         PR middle-end/79671
4108         * alias.c (component_uses_parent_alias_set_from): Handle
4109         TYPE_TYPELESS_STORAGE.
4110         (get_alias_set): Likewise.
4111         * tree-core.h (tree_type_common): Add typeless_storage flag.
4112         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
4113         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
4114         for types containing members with TYPE_TYPELESS_STORAGE.
4115         (place_field): Likewise.
4116         (layout_type): Likewise for ARRAY_TYPE.
4117         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
4118         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
4119         TYPE_TYPELESS_STORAGE.
4120         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4122 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
4124         PR sanitizer/80349
4125         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4126         first argument to type.
4128 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4130         PR target/80376
4131         PR target/80315
4132         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
4133         CONST0_RTX (mode) rather than const0_rtx where appropriate.
4134         (rs6000_expand_binop_builtin): Likewise.
4135         (rs6000_expand_ternop_builtin): Likewise; also add missing
4136         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
4137         vshasigma built-ins.
4138         * doc/extend.texi: Document that vec_xxpermdi's third argument
4139         must be a constant.
4141 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
4143         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
4144         Use shift_const cost parameter when calculating gain of STV shifts.
4146 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
4148         PR rtl-optimization/70478
4149         * lra-constraints.c (process_alt_operands): Check memory for
4150         disfavoring memory insn operand.
4152 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4154         PR middle-end/80100
4155         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
4156         left shift in unsigned HOST_WIDE_INT type.
4158         PR rtl-optimization/80385
4159         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
4160         (not (neg X)) into (plus X -1) for complex or non-integral modes.
4162         PR libgomp/80394
4163         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
4164         if they have any depend clauses.
4166 2017-04-11  Martin Liska  <mliska@suse.cz>
4168         PR ipa/80212
4169         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
4170         * ipa-split.c (split_function): Create a local comdat symbol
4171         if caller is in a comdat group.
4173 2017-04-11  Martin Liska  <mliska@suse.cz>
4175         PR ipa/80212
4176         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
4177         flags.
4179 2017-04-11  Martin Sebor  <msebor@redhat.com>
4181         PR middle-end/80364
4182         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
4183         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
4184         for INTEGER_TYPE.
4185         (directive::set_width, directive::set_precision, format_character):
4186         Adjust.
4187         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
4188         INTEGER_TYPE.
4190 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
4192         PR target/80389
4193         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
4194         conflict, set target->arch_name instead of target->cpu_name.
4196 2017-04-11  Richard Biener  <rguenther@suse.de>
4198         PR tree-optimization/80374
4199         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
4200         build_zero_cst, remove fold_convertible_p check again.
4202 2017-04-11  Martin Liska  <mliska@suse.cz>
4204         PR sanitizer/70878
4205         * ubsan.c (instrument_object_size): Do not instrument register
4206         variables.
4208 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
4210         PR target/80381
4211         * config/i386/i386-builtin-types.def
4212         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
4213         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
4214         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
4215         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
4216         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
4217         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
4218         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
4219         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
4220         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
4221         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
4222         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
4223         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
4224         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
4225         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
4226         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
4227         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
4228         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
4229         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
4230         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
4231         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
4232         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
4233         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
4234         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
4235         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
4236         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
4237         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
4238         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
4239         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
4240         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
4241         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
4242         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
4243         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
4244         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
4245         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
4246         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
4247         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
4248         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
4249         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
4250         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
4251         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
4252         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
4253         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
4254         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
4255         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
4256         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
4257         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
4258         aliases.
4259         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
4260         flag to second_arg_count, handle 4 argument function type _COUNT
4261         aliases, handle second_arg_count on second argument rather than last.
4263 2017-04-10  Jeff Law  <law@redhat.com>
4265         PR tree-optimization/80374
4266         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
4267         record anything if we can not convert integer_zero_node to the
4268         desired type.
4270 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4272         PR target/80108
4273         * config/rs6000/rs6000.c (rs6000_option_override_internal):
4274         Enhance special handling given to the TARGET_P9_MINMAX option in
4275         relation to certain other options.
4277 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
4279         PR tree-optimization/80153
4280         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
4281         remove POINTER_PLUS_EXPR's base part directly, rather than through
4282         aff_tree.
4284 2017-04-10  Richard Biener  <rguenther@suse.de>
4285             Bin Cheng  <bin.cheng@arm.com>
4287         PR tree-optimization/80153
4288         * tree-affine.c (aff_combination_to_tree): Get base pointer from
4289         the first element of pointer type aff_tree.  Build result expr in
4290         aff_tree's type.
4291         (add_elt_to_tree): Convert to type unconditionally.  Remove other
4292         fold_convert calls.
4293         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
4294         (rewrite_use_nonlinear_expr): Check invariant using iv information.
4296 2017-04-10  Richard Biener  <rguenther@suse.de>
4298         * tree-ssa-structalias.c (find_func_aliases): Properly handle
4299         asm inputs.
4301 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
4303         PR rtl-optimization/70478
4304         * lra-constraints.c (curr_small_class_check): New.
4305         (update_and_check_small_class_inputs): New.
4306         (process_alt_operands): Update curr_small_class_check.  Disfavor
4307         alternative insn memory operands.  Check available regs for small
4308         class operands.
4310 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
4312         PR target/80057
4313         * config/mips/mips.opt (-mvirt): Update description.
4314         * doc/invoke.texi (-mvirt): Likewise.
4316 2017-04-10  Richard Biener  <rguenther@suse.de>
4318         PR middle-end/80362
4319         * fold-const.c (fold_binary_loc): Look at unstripped ops when
4320         looking for NEGATE_EXPR in -A / -B to A / B folding.
4322 2017-04-10  Martin Liska  <mliska@suse.cz>
4324         PR gcov-profile/80224
4325         * gcov.c (print_usage): Fix usage string.
4326         (get_gcov_intermediate_filename): Remove.
4327         (output_gcov_file): Use both for normal and intermediate format.
4328         (generate_results): Do not initialize special file for
4329         intermediate format.
4331 2017-04-10  Richard Biener  <rguenther@suse.de>
4333         PR tree-optimization/80304
4334         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
4335         for safelen.
4337 2017-04-10  Nathan Sidwell  <nathan@acm.org>
4339         PR target/79905
4340         * config/rs6000/rs6000.c (rs6000_vector_type): New.
4341         (rs6000_init_builtins): Use it.
4343 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4345         * config/arm/arm.md (<mrc>): Add mode to SET source.
4346         (<mrrc>): Likewise.
4348 2017-04-10  Richard Biener  <rguenther@suse.de>
4350         PR middle-end/80344
4351         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
4353 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
4355         PR target/80324
4356         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
4357         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
4358         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
4359         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
4360         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
4361         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
4362         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
4363         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
4364         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
4365         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
4366         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
4367         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
4368         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
4369         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
4370         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
4371         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
4372         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
4373         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
4374         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
4375         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
4376         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
4377         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
4378         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
4380 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
4382         PR rtl-optimization/70478
4383         * lra-constraints.c: Reverse the last patch.
4385 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
4387         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
4388         Add comment for WCHAR_T.
4390 2017-04-08  Martin Liska  <mliska@suse.cz>
4392         Revert:
4393         2017-04-07  Martin Liska  <mliska@suse.cz>
4395         PR ipa/80212
4396         * ipa-split.c (split_function): Add function part to a same comdat
4397         group.
4399 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
4401         PR target/80358
4402         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
4404 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
4406         * rs6000/rs6000.c (vec_load_pendulum): Rename...
4407         (vec_pairing): ...to this.
4408         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
4409         (rs6000_sched_init): Adjust for name change.
4410         (struct rs6000_sched_context): Likewise.
4411         (rs6000_init_sched_context): Likewise.
4412         (rs6000_set_sched_context): Likewise.
4414 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
4416         PR target/80322
4417         PR target/80323
4418         PR target/80325
4419         PR target/80326
4420         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
4421         intrinsics.
4422         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
4423         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
4424         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
4426 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
4428         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
4430 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
4432         PR rtl-optimization/70703
4433         * ira-color.c (update_conflict_hard_regno_costs): Use
4434         int64_t instead of HOST_WIDE_INT.
4436 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
4438         PR rtl-optimization/70478
4439         * lra-constraints.c (process_alt_operands): Disfavor alternative
4440         insn memory operands.
4442 2017-04-07  Jeff Law  <law@redhat.com>
4444         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
4445         CALL and NOTE_INSN_CALL_ARG_LOCATION.
4447 2017-04-07  Martin Liska  <mliska@suse.cz>
4449         PR target/79889
4450         * config/aarch64/aarch64.c (aarch64_process_target_attr):
4451         Show error message instead of an ICE.
4453 2017-04-07  Martin Liska  <mliska@suse.cz>
4455         PR ipa/80212
4456         * ipa-split.c (split_function): Add function part to a same comdat
4457         group.
4459 2017-04-07  Richard Biener  <rguenther@suse.de>
4461         PR middle-end/80341
4462         * tree.c (get_unwidened): Also handle ! for_type case for
4463         INTEGER_CSTs.
4464         * convert.c (do_narrow): Split out from ...
4465         (convert_to_integer_1): ... here.  Do not pass final truncation
4466         type to get_unwidened for TRUNC_DIV_EXPR.
4468 2017-04-07  Richard Biener  <rguenther@suse.de>
4470         * tree-affine.c (wide_int_ext_for_comb): Take type rather
4471         than aff_tree.
4472         (aff_combination_const): Adjust.
4473         (aff_combination_scale): Likewise.
4474         (aff_combination_add_elt): Likewise.
4475         (aff_combination_add_cst): Likewise.
4476         (aff_combination_convert): Likewise.
4477         (add_elt_to_tree): Likewise.  Remove unused argument.
4478         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
4480 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
4482         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
4483         definition.
4484         * config/arm/arm.c (arm_default_short_enums): Use
4485         ARM_DEFAULT_SHORT_ENUMS.
4486         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
4488 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
4490         PR debug/80234
4491         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
4492         members with redundant out-of-class redeclaration.
4494 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
4496         PR target/80286
4497         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
4498         * config/i386/i386.md (*zero_extendsidi2):
4499         Add (?*x,*x) and (?*v,*v) alternatives.
4501 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
4503         PR target/79733
4504         * config/i386/i386.c (ix86_expand_builtin)
4505         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
4506         mode from insn data. Convert operands to insn operand mode.
4507         Copy operands that don't satisfy insn predicate to a register.
4509 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
4511         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
4512         Update comments.
4514 2017-04-06  Richard Biener  <rguenther@suse.de>
4516         PR tree-optimization/80334
4517         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
4518         preserve alignment of accesses.
4520 2017-04-06  Richard Biener  <rguenther@suse.de>
4522         PR tree-optimization/80262
4523         * tree-sra.c (build_ref_for_offset): Preserve address-space
4524         information.
4525         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4526         Drop useless address-space information on MEM_REF offsets.
4528 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
4530         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
4532 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
4534         PR rtl-optimization/70703
4535         * ira-color.c (update_conflict_hard_regno_costs): Use
4536         HOST_WIDE_INT instead of long.
4538 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
4540         PR target/80298
4541         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
4542         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
4543         is not defined.
4544         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
4545         for x86_64 target.  Handle -m3dnowa option.
4547 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
4549         PR rtl-optimization/70703
4550         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
4551         (update_conflict_hard_regno_costs): Use long instead of unsigned
4552         arithmetic for cost calculation.
4554 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
4555             Bernd Edlinger  <bernd.edlinger@hotmail.de>
4557         PR sanitizer/80308
4558         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
4559         for big endian.
4561 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
4563         PR target/78002
4564         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
4565         ptr_mode with Pmode throughout.
4566         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
4567         into probe_stack_range and use DImode.
4569 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4571         PR target/79890
4572         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
4573         call_eh_return is true.
4575 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4577         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
4578         Initialize last_match_fntype_index.
4580 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
4582         PR target/80310
4583         * tree-nvr.c: Include internal-fn.h.
4584         (pass_return_slot::execute): Ignore internal calls without
4585         direct optab.
4587 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
4588             Richard Biener  <rguenther@suse.de>
4590         PR c++/80297
4591         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
4592         captures used multiple times, except for the last use.
4593         * generic-match-head.c: Include gimplify.h.
4595 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
4597         PR tree-optimization/79390
4598         * target.h (struct noce_if_info): Declare.
4599         * targhooks.h (default_noce_conversion_profitable_p): Declare.
4600         * target.def (noce_conversion_profitable_p): New target hook.
4601         * ifcvt.h (struct noce_if_info): New type, moved from ...
4602         * ifcvt.c (struct noce_if_info): ... here.
4603         (noce_conversion_profitable_p): Renamed to ...
4604         (default_noce_conversion_profitable_p): ... this.  No longer
4605         static nor inline.
4606         (noce_try_store_flag_constants, noce_try_addcc,
4607         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
4608         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
4609         instead of noce_conversion_profitable_p.
4610         * config/i386/i386.c: Include ifcvt.h.
4611         (ix86_option_override_internal): Don't override
4612         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
4613         (ix86_noce_conversion_profitable_p): New function.
4614         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
4615         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
4616         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
4617         * doc/tm.texi: Regenerated.
4619 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4621         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
4622         correction.
4624 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4626         PR target/80307
4627         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
4628         instructions for small multiply cores.
4630 2017-04-04  Jeff Law  <law@redhat.com>
4632         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
4633         added member.
4634         (mips_expand_vec_perm_const): Initialize elements in orig_perm
4635         that are not set by the loop over the elements.
4637 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
4639         PR target/80286
4640         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
4641         int mode, convert_modes it to mode as unsigned, otherwise use
4642         lowpart_subreg to mode rather than SImode.
4643         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
4644         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
4645         Use DImode instead of SImode for the shift count operand.
4646         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
4647         Likewise.
4649 2017-04-04  Richard Biener  <rguenther@suse.de>
4651         PR middle-end/80281
4652         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
4653         arithmetic done for the negate or the plus.  Simplify.
4654         (A - (-B) -> A + B): Likewise.
4655         * fold-const.c (split_tree): Make sure to not negate pointers.
4657 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
4659         PR rtl-optimization/60818
4660         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
4661         a compare of comparisons with the thing compared if this results
4662         in a different machine mode.
4664 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
4666         * alias.c (base_alias_check): Fix typo in comment.
4667         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
4668         * cgraphunit.c (symbol_table::compile): Likewise.
4669         * collect2.c (maybe_run_lto_and_relink): Likewise.
4670         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
4671         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
4672         * config/avr/avr.c (avr_map_op_t): Likewise.
4673         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
4674         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
4675         * config/epiphany/epiphany.md (movcc): Likewise.
4676         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
4677         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
4678         Likewise.
4679         * config/mips/mips.c (mips_save_restore_reg): Likewise.
4680         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
4681         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
4682         * config/sh/sh.c (sh_rtx_costs): Likewise.
4683         * fold-const.c (fold_truth_andor): Likewise.
4684         * genautomata.c (collapse_flag): Likewise.
4685         * gengtype.h (struct type::u::s): Likewise.
4686         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
4687         * input.c (FORMAT_AMOUNT): Likewise.
4688         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
4689         (known_aggs_to_agg_replacement_list): Likewise.
4690         * ipa-inline-analysis.c: Likewise.
4691         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
4692         * ipa-polymorphic-call.c
4693         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
4694         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
4695         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
4696         Likewise.
4697         * modulo-sched.c (apply_reg_moves): Likewise.
4698         * omp-expand.c (build_omp_regions_1): Likewise.
4699         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
4700         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
4701         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
4702         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4703         * value-prof.c: Likewise.
4704         * var-tracking.c (val_reset): Likewise.
4706 2017-04-03  Richard Biener  <rguenther@suse.de>
4708         PR tree-optimization/80275
4709         * fold-const.c (split_address_to_core_and_offset): Handle
4710         POINTER_PLUS_EXPR.
4712 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
4714         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
4715         descriptors is at least equal to that of functions.
4717 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
4719         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
4721 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
4723         PR target/80250
4724         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
4725         (mov<IMOD4:mode>): New expander.
4726         (*mov<IMOD4:mode>_internal): New insn and split pattern.
4728 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
4730         PR rtl-optimization/79405
4731         * fwprop.c (propagations_left): New variable.
4732         (forward_propagate_into): Decrement it.
4733         (fwprop_init): Initialize it.
4734         (fw_prop): If the variable has reached zero, stop propagating.
4735         (fwprop_addr): Ditto.
4737 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
4739         PR debug/79255
4740         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
4741         a FUNCTION_DECL, pass it as decl instead of origin to
4742         process_scope_var.
4744 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
4746         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
4747         string.
4749 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
4751         PR target/80107
4752         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
4753         TARGET_VSX_SMALL_INTEGER.
4755 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4757         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
4758         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
4760 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
4762         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
4763         extraction from odd-numbered MSA register.
4765 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
4767         PR middle-end/80173
4768         * expmed.c (store_bit_field_1): Don't attempt to create
4769         a word subreg out of hard registers wider than word if they
4770         have HARD_REGNO_NREGS of 1 for their mode.
4772         PR middle-end/80163
4773         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
4774         conversions to integer types wider than word and pointer.
4776         PR debug/80025
4777         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
4778         (rtx_equal_for_cselib_p): Pass 0 to it.
4779         * cselib.c (cselib_hasher::equal): Likewise.
4780         (rtx_equal_for_cselib_1): Add depth argument.  If depth
4781         is 128, don't look up VALUE locs and punt.  Increment
4782         depth in recursive calls when walking VALUE locs.
4784 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4786         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
4787         (make_gcov_file_name): Use the canonical path name for generating
4788         the MD5 value.
4789         (read_line): Fix handling of files with ascii null bytes.
4791 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
4793         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
4794         to initialise a vector register instead
4795         of using a const_int.
4797 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
4799         PR translation/80189
4800         * gimplify.c (omp_default_clause): Use %qs instead of %s in
4801         diagnostic messages.
4803 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
4805         PR target/80246
4806         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
4807         (dfp_diex_<mode>): Update mode of operand 1.
4808         * doc/extend.texi (dxex, dxexq): Document change to return type.
4809         (diex, diexq): Document change to argument type.
4811 2017-03-30  Martin Jambor  <mjambor@suse.cz>
4813         PR ipa/77333
4814         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
4815         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
4816         it reflects the signature changes performed at the callee side.
4817         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
4818         to cgraph_build_function_type_skip_args.
4819         (build_function_decl_skip_args): Adjust call to the above function.
4821 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
4823         PR target/80206
4824         * config/i386/sse.md
4825         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
4826         register as dest whenever it is a MEM not rtx_equal_p to the
4827         corresponding dup operand, and when forcing into reg move the
4828         reg into the memory afterwards.
4829         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
4830         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
4831         for the force_reg mode.
4832         (avx512vl_vextractf128<mode>): Use register as dest either
4833         always when a MEM, or when it is a MEM not rtx_equal_p to the
4834         corresponding dup operand, or even not when it is a CONST_VECTOR
4835         depending on the mode and lo vs. hi.
4836         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
4837         parens.
4838         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
4839         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
4840         Likewise.  Require that operands[2] is even.
4841         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
4842         Remove extraneous parens.  Require that operands[2] is a multiple
4843         of 4.
4844         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
4845         operands[0] is a MEM if <mask_applied>, the predicates/constraints
4846         disallow memory then.
4848 2017-03-30  Richard Biener  <rguenther@suse.de>
4850         PR tree-optimization/77498
4851         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
4852         to non-constants over backedges.
4854 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
4856         PR rtl-optimization/80233
4857         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
4858         as last_combined_insn.  Do not test for BARRIER_P separately.
4860 2017-03-29  Andreas Schwab  <schwab@suse.de>
4862         PR ada/80146
4863         * calls.c (prepare_call_address): Convert funexp to Pmode before
4864         copying to temp reg.
4866 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4868         PR tree-optimization/80158
4869         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
4870         Handle possible future case of more than one alternate
4871         interpretation.
4872         (replace_rhs_if_not_dup): Likewise.
4873         (replace_one_candidate): Likewise.
4875 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
4877         PR rtl-optimization/80193
4878         * ira.c (ira): Do not check allocation for LRA.
4880 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
4882         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
4883         (nvptx_output_simt_exit): Declare.
4884         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
4885         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
4886         (init_softstack_frame): Move initialization of crtl->is_leaf to...
4887         (nvptx_declare_function_name): ...here.  Emit declaration of local
4888         memory space buffer for omp_simt_enter insn.
4889         (nvptx_output_unisimt_switch): New.
4890         (nvptx_output_softstack_switch): New.
4891         (nvptx_output_simt_enter): New.
4892         (nvptx_output_simt_exit): New.
4893         * config/nvptx/nvptx.h (struct machine_function): New fields
4894         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
4895         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
4896         (UNSPECV_SIMT_EXIT): Ditto.
4897         (omp_simt_enter_insn): New insn.
4898         (omp_simt_enter): New expansion.
4899         (omp_simt_exit): New insn.
4900         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
4902         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
4903         (expand_GOMP_SIMT_ENTER_ALLOC): New.
4904         (expand_GOMP_SIMT_EXIT): New.
4905         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
4906         (GOMP_SIMT_ENTER_ALLOC): Ditto.
4907         (GOMP_SIMT_EXIT): Ditto.
4908         * target-insns.def (omp_simt_enter): New insn.
4909         (omp_simt_exit): Ditto.
4910         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
4911         simt_dlist.
4912         (lower_rec_simd_input_clauses): Implement SIMT privatization.
4913         (lower_rec_input_clauses): Likewise.
4914         (lower_lastprivate_clauses): Handle SIMT privatization.
4916         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
4917         (ompdevlow_adjust_simt_enter): New.
4918         (find_simtpriv_var_op): New.
4919         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
4920         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
4922         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
4923         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
4924         (copy_decl_for_dup_finish): Ditto.
4926         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
4928 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
4930         PR target/53383
4931         * config/i386/i386.c (ix86_option_override_internal): Always
4932         allow -mpreferred-stack-boundary=3 for 64-bit targets.
4934 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
4936         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
4938 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
4940         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
4941         mark new edge's irreducible flag accordign to it.
4942         (vect_do_peeling): Check loop preheader edge's irreducible flag
4943         and pass it to function slpeel_add_loop_guard.
4945 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
4947         PR tree-optimization/80218
4948         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
4949         Update block frequencies and counts.
4951 2017-03-28  Richard Biener  <rguenther@suse.de>
4953         PR tree-optimization/78644
4954         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
4955         of a simplification result we may not use it at all.
4957 2017-03-28  Richard Biener  <rguenther@suse.de>
4959         PR ipa/80205
4960         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
4961         without arguments, generate default definition of a SSA name.
4963 2017-03-28  Richard Biener  <rguenther@suse.de>
4965         PR middle-end/80222
4966         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
4967         TYPE_REF_CAN_ALIAS_ALL references.
4968         * fold-const.c (fold_indirect_ref_1): Likewise.
4970 2017-03-28  Martin Liska  <mliska@suse.cz>
4972         PR ipa/80104
4973         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
4974         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
4976 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
4977             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
4979         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
4980         (EXTRA_SPECS): Define.
4981         (SUBTARGET_EXTRA_SPECS): Likewise.
4982         (SUBTARGET_CPP_SPEC): Likewise.
4983         * config/arc/elf.h (EXTRA_SPECS): Renamed to
4984         SUBTARGET_EXTRA_SPECS.
4985         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
4987 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
4989         * config/arc/simdext.md (vst64_insn): Update pattern.
4990         (vld32wh_insn): Likewise.
4991         (vld32wl_insn): Likewise.
4992         (vld64_insn): Likewise.
4993         (vld32_insn): Likewise.
4995 2017-03-28  Marek Polacek  <polacek@redhat.com>
4997         PR sanitizer/80067
4998         * fold-const.c (fold_comparison): Use protected_set_expr_location
4999         instead of SET_EXPR_LOCATION.
5001 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
5003         * tree.c (add_expr): Avoid name lookup warning.
5005 2017-03-27  Jeff Law  <law@redhat.com>
5007         PR tree-optimization/80216
5008         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
5009         function name.  Limit recursion depth.
5010         (record_temporary_equivalences): Corresponding changes.
5012 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
5014         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
5015         covered first.
5017 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5019         PR target/80102
5020         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
5021         notes.
5022         * cfgcleanup.c (reg_note_cfa_p): New array.
5023         (insns_have_identical_cfa_notes): New function.
5024         (old_insns_match_p): Don't cross-jump in between /f
5025         and non-/f instructions.  If both i1 and i2 are frame related,
5026         verify all CFA notes, their order and content.
5028 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5030         PR target/78543
5031         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
5032         HImode and SImode with zero extend to DImode to one insn.
5033         (bswap<mode>2_extenddi): Likewise.
5034         (bswapsi2_extenddi): Likewise.
5035         (bswaphi2_extendsi): Likewise.
5036         (bswaphi2): Combine bswap HImode and SImode into one insn.
5037         Separate memory insns from swapping register.
5038         (bswapsi2): Likewise.
5039         (bswap<mode>2): Likewise.
5040         (bswaphi2_internal): Delete, no longer used.
5041         (bswapsi2_internal): Likewise.
5042         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
5043         store, and gpr<-gpr swap insns.
5044         (bswap<mode>2_store): Likewise.
5045         (bswaphi2_reg): Register only splitter, combine with the splitter.
5046         (bswaphi2 splitter): Likewise.
5047         (bswapsi2_reg): Likewise.
5048         (bswapsi2 splitter): Likewise.
5049         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
5050         the insns into load, store, and register/register insns.
5051         (bswapdi2_ldbrx): Likewise.
5052         (bswapdi2_load): Likewise.
5053         (bswapdi2_store): Likewise.
5054         (bswapdi2_reg): Likewise.
5056 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
5058         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
5059         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
5061 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5063         PR target/80103
5064         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
5065         add comments.
5066         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5067         special handling for target option conflicts between dform
5068         options (-mpower9-dform, -mpower9-dform-vector,
5069         -mpower9-dform-scalar) and -mno-direct-move.
5071 2017-03-27  Richard Biener  <rguenther@suse.de>
5073         PR tree-optimization/80181
5074         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
5076 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5078         * config/arc/predicates.md (move_double_src_operand): Replace the
5079         call to move_double_src_operand with a call to address_operand.
5081 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5083         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
5084         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
5085         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
5087 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5089         * config/arc/predicates.md (long_immediate_loadstore_operand):
5090         Consider scaled addresses cases.
5092 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
5094         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
5095         restored when in interrupt.
5096         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
5097         doesn't have delay slot.
5099 2017-03-27  Richard Biener  <rguenther@suse.de>
5101         PR ipa/79776
5102         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
5103         inlined thunk clones.
5105 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
5107         PR sanitizer/80168
5108         * asan.c (instrument_derefs): Copy over last operand from
5109         original COMPONENT_REF to the new COMPONENT_REF with
5110         DECL_BIT_FIELD_REPRESENTATIVE.
5111         * ubsan.c (instrument_object_size): Likewise.
5113 2017-03-27  Richard Biener  <rguenther@suse.de>
5115         PR tree-optimization/80170
5116         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
5117         sure DR/SCEV didnt fold in constants we do not see when looking
5118         at the reference base alignment.
5120 2017-03-27  Richard Biener  <rguenther@suse.de>
5122         PR middle-end/80171
5123         * gimple-fold.c (fold_ctor_reference): Properly guard against
5124         NULL return value from canonicalize_constructor_val.
5126 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
5128         PR target/80180
5129         * config/i386/i386.c (ix86_expand_builtin)
5130         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
5131         flags reg setting and flags reg using instructions.
5132         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
5133         clobbering instructions to zero extend op2.
5135 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
5137         * doc/install.texi (Configuration) <--with-aix-soname>:
5138         Update link to AIX ld.
5140 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
5142         PR rtl-optimization/80160
5143         PR rtl-optimization/80159
5144         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
5145         reg_alternate_class into account.
5147 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
5149         PR target/80148
5150         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
5151         to consider in curr_insn_transform.
5153 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5155         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
5156         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
5157         and emit_mode_inner.
5159 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5161         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
5162         argument to the overloaded builtin variants.  Use the new flag to
5163         deprecate certain builtin variants.
5164         * config/s390/s390-builtin-types.def: Add new builtin types.
5165         * config/s390/s390-builtins.h: Support new flags field for
5166         overloaded builtins.
5167         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
5168         (s390_macro_to_expand): Enable vector float data type.
5169         (s390_cpu_cpp_builtins_internal): Indicate support of the new
5170         builtins by incrementing the __VEC__ version number.
5171         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
5172         vec_xst.
5173         (s390_resolve_overloaded_builtin): Emit error messages depending
5174         on the builtin flags.
5175         * config/s390/s390.c (s390_expand_builtin): Support additional
5176         flags argument.  Change error message to match the messages
5177         emitted in s390-c.c.
5178         * config/s390/s390.md: New UNSPEC_* constants.
5179         (op_type): Add new instruction types.
5180         * config/s390/vecintrin.h: Add new builtins and test data class
5181         constants.
5182         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
5183         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
5184         (VEC_INEXACT, VEC_NOINEXACT): New constants.
5185         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
5186         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
5187         ("vec_mergel<mode>"): V_HW -> VEC_HW.
5189         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
5190         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
5191         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
5192         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
5194         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
5195         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
5196         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
5197         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
5199         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
5200         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
5201         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
5202         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
5203         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
5204         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
5205         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
5207         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
5208         ("vec_scatter_element<V_HW_4:mode>_DI")
5209         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
5210         ("vec_fpint<mode>", "vflls")
5211         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
5212         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
5213         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
5214         ("*vec_cmphe<mode>_cc"): ... these.
5216         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
5217         mode constant instead of magic value.
5219 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5221         * config/s390/s390.c (s390_expand_vec_compare): Support other
5222         vector floating point modes than just V2DF.
5223         (s390_expand_vcond): Likewise.
5224         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
5225         (s390_cannot_change_mode_class): Prevent mode changes between TF
5226         and V1TF in vector registers.
5227         * config/s390/s390.md (DF, SF): New mode attributes.
5228         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
5229         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
5230         SFmode support for VRs.
5231         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
5232         vector fp modes.
5233         (VFT, VF_HW): New mode iterators.
5234         (vw, sdx): New mode attributes.
5235         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
5236         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
5237         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
5238         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
5239         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
5240         also the new vector floating point modes.  Renaming to ...
5242         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
5243         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
5244         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
5245         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
5246         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
5247         ("vec_unordered<mode>"): ... these.
5249         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
5250         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
5251         ("*vec_extendv2df"): New insn definitions.
5253 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5255         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
5256         ("mulditi3_2", "*muldi3_sign"): New patterns.
5257         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
5258         rename the pattern definition.
5260 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5262         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
5263         expander.
5264         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
5266 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5268         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
5269         instruction if possible.
5270         * config/s390/vector.md (vec_halfnumelts): New mode
5271         attribute.
5272         ("*vec_vllezlf<mode>"): New pattern.
5274 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5276         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
5277         ("popcountv4si2", "popcountv2di2"): Rename to ...
5278         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
5279         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
5280         condition.
5281         ("popcount<mode>2_vxe"): New pattern.
5283 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5285         * common/config/s390/s390-common.c (processor_flags_table): Add
5286         arch12.
5287         * config.gcc: Add arch12.
5288         * config/s390/driver-native.c (s390_host_detect_local_cpu):
5289         Default to arch12 for unknown CPU model numbers.
5290         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
5291         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
5292         PROCESSOR_max sanity check.
5293         * config/s390/s390-opts.h (enum processor_type): Add
5294         PROCESSOR_ARCH12.
5295         * config/s390/s390.c (processor_table): Add arch12.
5296         (s390_expand_builtin): Add check for B_VXE flag.
5297         (s390_issue_rate): Add PROCESSOR_ARCH12.
5298         (s390_get_sched_attrmask): Likewise.
5299         (s390_get_unit_mask): Likewise.
5300         (s390_sched_score): Enable z13 scheduling for arch12.
5301         (s390_sched_reorder): Likewise.
5302         (s390_sched_variable_issue): Likewise.
5303         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
5304         PF_VXE.
5305         (s390_tune_attr): Use z13 scheduling also for arch12.
5306         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
5307         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
5308         (TARGET_VXE_P): New macros.
5309         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
5310         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
5311         * config/s390/s390.opt: Add arch12 as processor_type.
5313 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5315         * config/s390/s390.md
5316         ("fixuns_truncdddi2", "fixuns_trunctddi2")
5317         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
5318         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
5320         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
5321         Rename expanders to ...
5323         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
5324         ("fixuns_truncdddi2_emu"): ... these.
5326         ("fixuns_trunc<mode>si2_emu"): New expander.
5328         ("*fixuns_truncdfdi2_z13"): Rename to ...
5329         ("*fixuns_truncdfdi2_vx"): ... this.
5331 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5333         * config/s390/2964.md: Remove the single element vector compare
5334         instructions which are no longer used.
5335         * config/s390/s390.c (s390_select_ccmode): Remove handling of
5336         vector CCmodes.
5337         (s390_canonicalize_comparison): Remove handling of DFmode
5338         compares.
5339         (s390_expand_vec_compare_scalar): Remove function.
5340         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
5341         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
5342         pattern.
5343         ("*cmp<mode>_ccs"): Add wfcdb instruction.
5345 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5347         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
5348         FP zero.
5349         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
5350         will anyway by matched by mov<mode>_64dfp.
5352 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5354         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
5355         vlef/vstef.  Add missing operand to vleif.
5357 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5359         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
5360         pair for all vector types with 64 bit elements.
5361         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
5362         * config/s390/vector.md (V_HW_64): ... here.
5363         (V_128_NOSINGLE): New mode iterator.
5364         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
5365         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
5366         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
5367         ("*vec_load_pairv2di"): Change to ...
5368         ("*vec_load_pair<mode>"): ... this one.
5370 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5372         * config/s390/constraints.md: Add comments.
5373         (jKK): Reject element sizes > 8 bytes.
5374         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
5375         s_operands.
5376         * config/s390/s390.md: Add the s_operand checks formerly in
5377         s390_split_ok_p to various splitters where they are still
5378         required.
5379         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
5380         for 128 bit vectors.  Plus two splitters.
5382 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5384         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
5385         the file.
5387 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5389         PR target/79893
5390         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
5391         error if the boundary argument is not constant.
5393 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
5395         PR rtl-optimization/80112
5396         * loop-doloop.c (doloop_condition_get): Don't check condition
5397         if cmp isn't SET with IF_THEN_ELSE src.
5399 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5401         PR tree-optimization/80158
5402         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
5403         replacing a candidate statement, also replace it for the
5404         candidate's alternate interpretation.
5405         (replace_rhs_if_not_dup): Likewise.
5406         (replace_one_candidate): Likewise.
5408 2017-03-24  Richard Biener  <rguenther@suse.de>
5410         PR tree-optimization/80167
5411         * graphite-isl-ast-to-gimple.c
5412         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
5413         properly.
5414         (translate_isl_ast_to_gimple::get_rename): Likewise.
5416 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5418         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
5419         handling of certain combinations of target options, including the
5420         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
5421         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
5423 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5425         PR target/71436
5426         * config/arm/arm.md (*load_multiple): Add reload_completed to
5427         matching condition.
5429 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5430             Richard Biener  <rguenth@suse.de>
5432         PR tree-optimization/79908
5433         PR tree-optimization/80136
5434         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
5435         been cast away, gimplify_and_add suffices.
5437 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
5439         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
5441 2017-03-23  Richard Biener  <rguenther@suse.de>
5443         PR tree-optimization/80032
5444         * gimplify.c (gimple_push_cleanup): Forced unconditional
5445         cleanups still have to go to the conditional_cleanups
5446         sequence.
5448 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
5450         PR tree-optimization/80072
5451         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
5452         to unsigned int.
5453         (next_operand_entry_id): Change type to unsigned int.
5454         (sort_by_operand_rank): Make sure to return the right return value
5455         even if unsigned fields are bigger than INT_MAX.
5456         (struct oecount): Change cnt and id type to unsigned int.
5457         (oecount_hasher::equal): Formatting fix.
5458         (oecount_cmp): Make sure to return the right return value
5459         even if unsigned fields are bigger than INT_MAX.
5460         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
5462         PR c++/80129
5463         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
5464         TREE_READONLY on result if writing it more than once.
5466         PR sanitizer/80110
5467         * doc/invoke.texi (-fsanitize=thread): Document that with
5468         -fnon-call-exceptions atomics are not able to throw
5469         exceptions.
5471         PR sanitizer/80110
5472         * tsan.c: Include tree-eh.h.
5473         (instrument_builtin_call): Call maybe_clean_eh_stmt or
5474         maybe_clean_or_replace_eh_stmt where needed.
5475         (instrument_memory_accesses): Add cfg_changed argument.
5476         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
5477         if it returned true.
5478         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
5480         PR rtl-optimization/63191
5481         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
5482         wrapper function, moved the whole old content into ...
5483         (ix86_delegitimize_address_1): ... this.  New inline function.
5484         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
5485         true as last argument instead of ix86_delegitimize_address.
5487 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
5489         * config/aarch64/aarch64.c (generic_branch_cost): Copy
5490         cortexa57_branch_cost.
5492 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
5494         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
5496 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5498         PR target/80123
5499         * doc/md.texi (Constraints): Document wA constraint.
5500         * config/rs6000/constraints.md (wA): New.
5501         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
5502         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
5503         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
5504         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
5506 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
5508         PR c++/80029
5509         * gimplify.c (is_oacc_declared): New function.
5510         (oacc_default_clause): Use it to set default flags for acc declared
5511         variables inside parallel regions.
5512         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
5513         declared variables.
5514         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
5515         declare attribute to any decl as necessary.
5517 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5519         PR target/80082
5520         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
5521         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
5522         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
5523         (arm_arch_lpae): This.
5524         * config/arm/arm.c (arm_arch7ve): Rename into ...
5525         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
5526         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
5527         arm_arch_lpae.
5529 2017-03-22  Martin Liska  <mliska@suse.cz>
5531         PR target/79906
5532         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
5533         error message instead of an ICE.
5535 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5537         * doc/extend.texi (6.11 Additional Floating Types): Revise.
5539 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5541         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
5542         comments.
5543         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5544         comments.
5546 2017-03-21  Martin Sebor  <msebor@redhat.com>
5548         * doc/extend.texi: Use "cannot" instead of "can't."
5549         * doc/hostconfig.texi: Same.
5550         * doc/install.texi: Same.
5551         * doc/invoke.texi: Same.
5552         * doc/loop.texi: Same.
5553         * doc/md.texi: Same.
5554         * doc/objc.texi: Same.
5555         * doc/rtl.texi: Same.
5556         * doc/tm.texi: Same.
5557         * doc/tm.texi.in: Same.
5558         * doc/trouble.texi: Same.
5560 2017-03-21  Alexandre Oliva <aoliva@redhat.com>
5562         PR debug/63238
5563         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
5564         (collect_checksum_attributes): Set it.
5565         (die_checksum_ordered): Use it.
5567 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5569         PR tree-optimization/79908
5570         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
5571         change: For a VA_ARG whose LHS has been cast away, use
5572         force_gimple_operand to construct the side effects.
5574 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
5576         PR translation/80001
5577         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
5578         more amenable to translation.
5579         (oacc_loop_auto_partitions): Likewise.
5581 2017-03-21  Marek Polacek  <polacek@redhat.com>
5582             Martin Sebor  <msebor@redhat.com>
5584         PR tree-optimization/80109
5585         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
5586         on INTEGRAL_TYPE_P.
5588 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
5589             Segher Boessenkool  <segher@kernel.crashing.org>
5591         PR target/80125
5592         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
5593         check reg_used_between_p between insn and one of succ or succ2
5594         depending on if succ is artificial insn not inserted into insn
5595         stream.
5597 2017-03-21  Martin Liska  <mliska@suse.cz>
5599         PR gcov-profile/80081
5600         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
5601         * doc/gcc.texi: Include gcov-dump stuff.
5602         * doc/gcov-dump.texi: New file.
5604 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
5606         PR rtl-optimization/79150
5607         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
5608         conditional jump, if the jump is the last insn of the loop.
5610 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5611             Richard Biener  <rguenth@suse.de>
5613         PR tree-optimization/79908
5614         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
5615         been cast away, use force_gimple_operand to construct the side
5616         effects.
5618 2017-03-21  Martin Liska  <mliska@suse.cz>
5620         PR libfortran/79956
5621         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
5622         to NULL.
5624 2017-03-21  Brad Spengler <spender@grsecurity.net>
5626         PR plugins/80094
5627         * plugin.c (htab_hash_plugin): New function.
5628         (add_new_plugin): Use it and adjust.
5629         (parse_plugin_arg_opt): Adjust.
5630         (init_one_plugin): Likewise.
5632 2017-03-21  Richard Biener  <rguenther@suse.de>
5634         PR tree-optimization/80032
5635         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
5636         if set force the cleanup to happen unconditionally.
5637         (gimplify_target_expr): Push inserted clobbers with force_uncond
5638         to avoid them being removed by control-dependent DCE.
5640 2017-03-21  Richard Biener  <rguenther@suse.de>
5642         PR tree-optimization/80122
5643         * tree-inline.c (copy_bb): Do not expans va-arg packs or
5644         va_arg_pack_len when the inlined call stmt requires pack
5645         expansion itself.
5646         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
5648 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
5650         PR sanitizer/78158
5651         * tsan.c (instrument_builtin_call): If the memory model argument
5652         is not a constant, assume it is valid.
5654         PR c/67338
5655         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
5656         avoid UB.
5658 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
5660         PR rtl-optimization/79910
5661         * combine.c (can_combine_p): Do not allow combining an I0 or I1
5662         if its dest is used by an insn before I2 (other than the combined
5663         insns themselves, which are properly handled already).
5665 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
5667         Revert:
5668         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
5670         * combine.c (record_used_regs): New static function.
5671         (try_combine): Handle situations where there is an additional
5672         instruction between I2 and I3 which needs to have a LOG_LINK
5673         updated.
5675         Revert:
5676         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
5678         * combine.c (try_combine): Delete redundant i1 test.  Call
5679         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5681 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5683         PR target/80083
5684         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
5685         alternatives 13/14.
5687 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5689         PR tree-optimization/80054
5690         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
5691         the optimization if a PHI or any of its arguments is not dominated
5692         by the candidate's basis.  Use gphi* rather than gimple* as
5693         appropriate.
5694         (replace_profitable_candidates): Clean up a gimple* variable that
5695         should be a gphi* variable.
5697 2017-03-20  Martin Sebor  <msebor@redhat.com>
5699         PR c++/52477
5700         * doc/extend.texi (attribute constructor): Document present limitation.
5702 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5704         PR target/79963
5705         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
5706         __POWER9_VECTOR__ #ifdef control, change template definition to
5707         use Power9-specific built-in function.
5708         (vec_any_eq): Likewise.
5709         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
5710         to control outcomes from this test.
5711         (vector_ae_<mode>p): For VEC_F modes, likewise.
5713 2017-03-20  Ian Lance Taylor  <iant@google.com>
5715         * config/i386/i386.c (ix86_function_regparm): Save an extra
5716         register for -fsplit-stack with DECL_STATIC_CHAIN.
5718 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
5720         PR target/79912
5721         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
5722         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
5724 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
5726         * config/riscv/riscv.c (riscv_print_operand): Use "fence
5727         iorw,ow".
5728         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
5729         iorw,iorw".
5731 2017-03-20  Marek Polacek  <polacek@redhat.com>
5733         PR sanitizer/80063
5734         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
5736 2017-03-20  Richard Biener  <rguenther@suse.de>
5738         PR tree-optimization/80113
5739         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
5740         allocate extra SSA name for PHI def.
5741         (add_close_phis_to_outer_loops): Likewise.
5742         (add_close_phis_to_merge_points): Likewise.
5743         (copy_loop_close_phi_args): Likewise.
5744         (copy_cond_phi_nodes): Likewise.
5746 2017-03-20  Martin Liska  <mliska@suse.cz>
5748         PR middle-end/79753
5749         * tree-chkp.c (chkp_build_returned_bound): Do not build
5750         returned bounds for a LHS that's not a BOUNDED_P type.
5752 2017-03-20  Martin Liska  <mliska@suse.cz>
5754         PR target/79769
5755         PR target/79770
5756         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
5757         COMPLEX_CST and VECTOR_CST.
5759 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5761         PR target/78857
5762         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
5763         target operand.  A new splitter adds the clobber statement in case
5764         the target operand is dead anyway.
5766 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
5768         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
5769         to age-old versions of binutils and glibc.
5771 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
5773         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
5775 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
5777         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
5779 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
5781         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
5782         requirement for binutils 2.13.
5784 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
5786         * combine.c (try_combine): Delete redundant i1 test.  Call
5787         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5789 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
5791         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
5792         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
5793         contents.
5794         <riscv64-*-elf>: Re-arrange section
5795         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
5796         <riscv32-*-linux>: Likewise.
5797         <riscv64-*-elf>: Likewise
5798         <riscv64-*-linux>: Likewise.
5800 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
5802         PR target/80052
5803         * aarch64.opt(verbose-cost-dump): Fix typo.
5805 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
5807         PR target/79951
5808         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
5809         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
5811 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
5813         * reload.c (find_reloads): When reloading a nonoffsettable address,
5814         use RELOAD_OTHER for it and its address reloads.
5816         PR rtl-optimization/79910
5817         * combine.c (record_used_regs): New static function.
5818         (try_combine): Handle situations where there is an additional
5819         instruction between I2 and I3 which needs to have a LOG_LINK
5820         updated.
5822 2017-03-17  Jeff Law  <law@redhat.com>
5824         PR tree-optimization/71437
5825         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
5826         conditional in the hash table first.
5827         (vrp_dom_walker::before_dom_children): Extract condition from
5828         ASSERT_EXPR.  Record condition, its inverion and any implied
5829         conditions as well.
5831 2017-03-17  Marek Polacek  <polacek@redhat.com>
5832             Markus Trippelsdorf  <markus@trippelsdorf.de>
5834         PR tree-optimization/80079
5835         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
5836         m_stores_head.
5838 2017-03-17  Richard Biener  <rguenther@suse.de>
5840         PR middle-end/80075
5841         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
5842         Properly verify the LHS before the RHS possibly claims to be
5843         handled.
5844         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
5845         do not throw.
5847 2017-03-17  Martin Jambor  <mjambor@suse.cz>
5849         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
5850         (List of -O2 options): Likewise.
5851         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
5852         (-fipa-vrp) New.
5854 2017-03-17  Tom de Vries  <tom@codesourcery.com>
5856         * gcov-dump.c (print_usage): Print bug_report_url.
5858 2017-03-17  Richard Biener  <rguenther@suse.de>
5860         PR middle-end/80050
5861         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
5862         (parser::peek): Likewise.
5864 2017-03-17  Richard Biener  <rguenther@suse.de>
5866         PR tree-optimization/80048
5867         * sese.c (free_sese_info): Properly release rename_map and
5868         copied_bb_map elements.
5870 2017-03-16  Alexandre Oliva <aoliva@redhat.com>
5872         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
5873         Add linked-list forward and backlinks.  Insert on
5874         construction, remove on destruction.
5875         (class pass_store_merging): Add m_stores_head field.
5876         (pass_store_merging::terminate_and_process_all_chains):
5877         Iterate over m_stores_head list.
5878         (pass_store_merging::terminate_all_aliasing_chains):
5879         Likewise.
5880         (pass_store_merging::execute): Check for debug stmts first.
5881         Push new chains onto the m_stores_head stack.
5883 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
5885         PR target/71294
5886         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
5887         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
5888         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
5890 2017-03-16  Jeff Law  <law@redhat.com>
5892         PR tree-optimization/71437
5893         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
5894         member function.  Implementation moved into after_dom_children
5895         member function and into the threader's thread_outgoing_edges
5896         function.
5897         (dom_opt_dom_walker::after_dom_children): Simplify by moving
5898         some code into new thread_outgoing_edges.
5899         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
5900         definition.  Simplify marker handling (do it here).   Assume we always
5901         have the available expression and the const/copies tables.
5902         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
5903         and tree-vrp.c
5904         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
5905         * tree-vrp.c (equiv_stack): No longer file scoped.
5906         (vrp_dom_walker): New class.
5907         (vrp_dom_walker::before_dom_children): New member function.
5908         (vrp_dom_walker::after_dom_children): Likewise.
5909         (identify_jump_threads):  Setup domwalker.  Use it rather than
5910         walking edges in a random order by hand.  Simplify setup/finalization.
5911         (finalize_jump_threads): Remove.
5912         (vrp_finalize): Do not call identify_jump_threads here.
5913         (execute_vrp): Do it here instead and call thread_through_all_blocks
5914         here too.
5916         PR tree-optimization/71437
5917         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
5918         callers changed.
5919         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
5920         callers changed.
5921         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
5922         (dom_opt_dom_walker::thread_across_edge): Remove
5923         handle_dominating_asserts argument.  All callers changed.
5924         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
5925         changes.  Remove calls to lhs_of_dominating_assert.  Other
5926         uses of handle_dominating_asserts turn into unconditional code
5927         (simplify_control_stmt_condition_1): Likewise.
5928         (simplify_control_stmt_condition): Likewise.
5929         (thread_through_normal_block, thread_across_edge): Likewise.
5930         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
5931         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
5932         object if it is not an SSA_NAME.
5933         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
5934         before calling into the VRP specific simplifiers.
5935         (identify_jump_threads): Remove handle_dominating_asserts
5936         argument.
5938 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
5940         PR fortran/79886
5941         * tree-diagnostic.c (default_tree_printer): No longer static.
5942         * tree-diagnostic.h (default_tree_printer): New prototype.
5944 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
5946         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
5947         Change ins into fmov.
5949 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5951         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
5952         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
5953         Use h_con constraint for operand 1.
5954         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
5955         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
5957 2017-03-15  Jeff Law  <law@redhat.com>
5959         PR tree-optimization/71437
5960         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
5961         (record_temporary_equivalences): Use it.
5963         PR tree-optimization/71437
5964         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
5965         tree-ssa-scopedtables.
5966         (lookup_avail_expr, build_and_record_new_cond): Likewise.
5967         (record_conditions, record_cond, vuse_eq): Likewise.
5968         (record_edge_info): Adjust to API tweak of record_conditions.
5969         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
5970         (record_temporary_equivalences, optimize_stmt): Likewise.
5971         (eliminate_redundant_computations): Likewise.
5972         (record_equivalences_from_stmt): Likewise.
5973         * tree-ssa-scopedtables.c: Include options.h and params.h.
5974         (vuse_eq): New function, moved from tree-ssa-dom.c
5975         (build_and_record_new_cond): Likewise.
5976         (record_conditions): Likewise.  Accept vector of conditions rather
5977         than edge_equivalence structure for first argument.
5978         for the first argument.
5979         (avail_exprs_stack::lookup_avail_expr): New member function, moved
5980         from tree-ssa-dom.c.
5981         (avail_exprs_stack::record_cond): Likewise.
5982         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
5983         from tree-ssa-dom.c.
5984         (avail_exprs_stack): Add new member functions lookup_avail_expr
5985         and record_cond.
5986         (record_conditions): Declare.
5988 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
5990         PR target/80017
5991         * lra-constraints.c (process_alt_operands): Increase reject for
5992         reloading an input/output operand.
5994 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
5996         PR target/79038
5997         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
5998         insns to convert from signed/unsigned char/short to IEEE 128-bit
5999         floating point.
6000         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
6002 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
6004         PR target/80019
6005         * config/i386/i386.c (ix86_vector_duplicate_value): Create
6006         subreg of inner mode for values already in registers.
6008 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
6010         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
6011         iteration reg is used after the loop.
6013 2017-03-14  Martin Sebor  <msebor@redhat.com>
6015         PR tree-optimization/79800
6016         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
6017         precision in negative-positive range.
6018         (format_floating): Call non-const overload with adjusted precision.
6020 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6022         PR target/79947
6023         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
6024         -mpowerpc-gfxopt.
6026 2017-03-14  Martin Sebor  <msebor@redhat.com>
6028         PR middle-end/80020
6029         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
6030         * builtins.def (aligned_alloc): Use it.
6032         PR c/79936
6033         * Makefile.in (GTFILES): Add calls.c.
6034         * calls.c: Include "gt-calls.h".
6036 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6038         PR rtl-optimization/79728
6039         * regs.h (struct target_regs): New field
6040         x_contains_allocatable_regs_of_mode.
6041         (contains_allocatable_regs_of_mode): New macro.
6042         * reginfo.c (init_reg_sets_1): Initialize it, and change
6043         contains_reg_of_mode so it includes global regs as well.
6044         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
6045         rather than contains_regs_of_mode.
6047 2017-03-14  Martin Liska  <mliska@suse.cz>
6049         * doc/invoke.texi: Document options that can't be combined with
6050         -fcheck-pointer-bounds.
6052 2017-03-14  Martin Liska  <mliska@suse.cz>
6054         PR middle-end/79831
6055         * doc/invoke.texi (-Wchkp): Document the option.
6057 2017-03-14  Martin Liska  <mliska@suse.cz>
6059         * Makefile.in: Install gcov-dump.
6061 2017-03-14  Martin Liska  <mliska@suse.cz>
6063         * multiple_target.c (expand_target_clones): Bail out for
6064         an invalid attribute.
6066 2017-03-14  Richard Biener  <rguenther@suse.de>
6068         * alias.c (struct alias_set_entry): Pack properly.
6069         * cfgloop.h (struct loop): Likewise.
6070         * cse.c (struct set): Likewise.
6071         * ipa-utils.c (struct searchc_env): Likewise.
6072         * loop-invariant.c (struct invariant): Likewise.
6073         * lra-remat.c (struct cand): Likewise.
6074         * recog.c (struct change_t): Likewise.
6075         * rtl.h (struct address_info): Likewise.
6076         * symbol-summary.h (function_summary): Likewise.
6077         * tree-loop-distribution.c (struct partition): Likewise.
6078         * tree-object-size.c (struct object_size_info): Likewise.
6079         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
6080         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
6081         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
6082         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
6083         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
6084         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
6085         (struct _stmt_vec_info): Likewise.
6087 2017-03-14  Martin Liska  <mliska@suse.cz>
6089         PR target/79892
6090         * multiple_target.c (create_dispatcher_calls): Check that
6091         a target can create a function dispatcher.
6093 2017-03-14  Martin Liska  <mliska@suse.cz>
6095         PR lto/66295
6096         * multiple_target.c (expand_target_clones): Drop local.local
6097         flag for default implementation.
6099 2017-03-14  Richard Biener  <rguenther@suse.de>
6101         PR tree-optimization/80030
6102         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
6104 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
6106         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
6107         gcc_fallthrough() instead of __attribute__((fallthrough));
6109 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6111         * doc/gcc.texi: Remove "up" link to (DIR).
6112         * doc/gccint.texi: Ditto.
6114 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
6116         * doc/install.texi (Specific) <avr>: Remove reference to
6117         binutils 2.13.
6119 2017-03-13  Jeff Law  <law@redhat.com>
6121         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
6122         attribute rather than comments.
6124         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
6125         match_scratch operand is highest.
6127 2017-03-13  Martin Liska  <mliska@suse.cz>
6129         PR middle-end/78339
6130         * ipa-pure-const.c (warn_function_noreturn): If the declarations
6131         is a CHKP clone, use original declaration.
6133 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6135         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
6136         (arc_conditional_register_usage): Use a different allocation order
6137         when optimizing for size.
6138         * common/config/arc/arc-common.c (arc_option_optimization_table):
6139         Section anchors default on when optimizing for size.
6141 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6143         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
6145 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6147         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
6148         * config/arc/arc.md (cpu_facility): Add cd variant.
6149         (*movqi_insn): Add code density variant.
6150         (*movhi_insn): Likewise.
6151         (*movqi_insn): Likewise.
6152         (*addsi3_mixed): Likewise.
6153         (subsi3_insn): Likewise.
6155 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6157         * config/arc/arc.md (movsi_cond_exec): Update constraint.
6159 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
6161         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
6162         expressions with MINUS and UNARY ops.
6164 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6166         PR target/79911
6167         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
6168         Rename to...
6169         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
6170         between vec_select and vector argument.
6171         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
6172         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
6173         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
6174         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
6175         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
6176         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
6178 2017-03-13  Richard Biener  <rguenther@suse.de>
6180         PR other/79991
6181         * params.def (vect-max-peeling-for-alignment): Fix typo.
6183 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6185         * doc/install.texi (Specific) <mips-*-*>: Remove description of
6186         issue that only occurred with binutils below 2.18.
6188 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6190         * doc/install.texi (Specific) <cris-axis-elf>: No longer
6191         refer to binutils 2.11/2.12 minimum.
6193 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
6195         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
6196         ftp.kernel.org and simplify binutils requirement.
6198 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
6200         * doc/invoke.texi (Warning Options): Fix spelling of link-time
6201         optimization.
6202         (Optimize Options): Ditto.  Also remove redundancy.
6204 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6206         PR translation/79848
6207         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
6208         "%qs".
6209         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
6210         to G_ to avoid double translation.
6212 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6214         PR translation/79923
6215         * auto-profile.c (get_combined_location): Convert leading
6216         character of diagnostics to lower case and remove trailing period.
6217         (read_profile): Likewise for various diagnostics.
6218         * config/arm/arm.c (arm_option_override): Remove trailing period
6219         from various diagnostics.
6220         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
6221         (msp430_expand_delay_cycles): Likewise.
6223 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6225         PR target/79925
6226         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
6227         full command-line argument, rather than just "str".
6228         (aarch64_validate_march): Likewise.
6229         (aarch64_validate_mtune): Likewise.
6231 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
6233         PR rtl-optimization/78911
6234         * lra-assigns.c (must_not_spill_p): New function.
6235         (spill_for): Use it.
6237 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6239         PR tree-optimization/79981
6240         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
6241         ATOMIC_COMPARE_EXCHANGE ifn result.
6242         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
6243         IFN_ATOMIC_COMPARE_EXCHANGE.
6245 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6247         PR driver/79875
6248         * opts.c (parse_sanitizer_options): Add missing question mark to
6249         "did you mean" message.
6251 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6253         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
6254         built-in.
6255         (VMULEUH_UNS): Likewise.
6256         (VMULOUB_UNS): Likewise.
6257         (VMULOUH_UNS): Likewise.
6258         * config/rs6000/rs6000.c (builtin_function_type): Remove
6259         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
6261 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
6263         PR bootstrap/79952
6264         * read-rtl-function.c (function_reader::read_rtx_operand): Update
6265         x with result of extra_parsing_for_operand_code_0.
6266         (function_reader::extra_parsing_for_operand_code_0): Convert
6267         return type from void to rtx, returning x.  When reading
6268         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
6269         larger size containing struct block_symbol.
6271 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
6273         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
6274         -mfloat128-hardware without -m64.
6276 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
6278         PR target/79941
6279         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
6280         entries to the case statement that marks unsigned arguments to
6281         overloaded functions.
6283 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6285         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
6286         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
6288 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
6290         PR target/79907
6291         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
6292         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
6294 2017-03-10  Martin Liska  <mliska@suse.cz>
6296         PR target/65705
6297         PR target/69804
6298         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
6299         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
6300         FIELD != NULL.
6302 2017-03-10  Olivier Hainque  <hainque@adacore.com>
6304         * tree-switch-conversion (array_value_type): Start by resetting
6305         candidate type to it's main variant.
6307 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
6309         PR rtl-optimization/79909
6310         * combine.c (try_combine): Use simplify_replace_rtx on individual
6311         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
6312         of the whole CALL_INSN_FUNCTION_USAGE.
6314         PR tree-optimization/79972
6315         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
6316         get_range_info on SSA_NAMEs.  Formatting fixes.
6318 2017-03-10  Richard Biener  <rguenther@suse.de>
6319             Jakub Jelinek  <jakub@redhat.com>
6321         PR tree-optimization/77975
6322         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
6323         edge to be constant.
6324         (get_val_for): For constant x return it.  Formatting fix.
6325         (loop_niter_by_eval): Avoid pointless looping if the next iteration
6326         would use the same bases as the current one.
6328 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6330         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
6331         instead of vec_select for V1TImode.
6332         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
6333         longer needed.
6334         (VSX_LE_128): Add V1TI to this mode iterator.
6335         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
6336         (*vsx_le_perm_store_<mode>): Likewise.
6337         (pre-reload splitter for VSX stores): Likewise.
6338         (post-reload splitter for VSX stores): Likewise.
6339         (*vsx_xxpermdi2_le_<mode>): Likewise.
6340         (*vsx_lxvd2x2_le_<mode>): Likewise.
6341         (*vsx_stxvd2x2_le_<mode>): Likewise.
6343 2017-03-09  Michael Eager  <eager@eagercon.com>
6345         Correct failures with --enable-checking=yes,rtl.
6347         * config/microblaze/microblaze.c (microblaze_expand_shift):
6348         Replace GET_CODE test with CONST_INT_P and INTVAL test with
6349         test for const0_rtx.
6350         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
6351         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
6353 2017-03-09  Richard Biener  <rguenther@suse.de>
6355         PR tree-optimization/79977
6356         * graphite-scop-detection.c (scop_detection::merge_sese):
6357         Handle the case of extra exits to blocks dominating the entry.
6359 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
6361         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
6362         Document rdynamic.
6364 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
6366         PR rtl-optimization/79949
6367         * lra-constraints.c (process_alt_operands): Check memory when
6368         trying to predict a cycle.  Print about the overall increase.
6370 2017-03-09  Richard Biener  <rguenther@suse.de>
6372         PR middle-end/79971
6373         * gimple-expr.c (useless_type_conversion_p): Preserve
6374         TYPE_SATURATING for fixed-point types.
6376 2017-03-09  Richard Biener  <rguenther@suse.de>
6378         PR ipa/79970
6379         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
6380         alignment of BLKmode params.
6382 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6384         PR target/79913
6385         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
6386         (VALL_NO_V2Q): Likewise.
6387         (VDQF_DF): Delete.
6388         * config/aarch64/aarch64-simd.md
6389         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
6390         iterator.
6391         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
6392         VALL_NO_V2Q mode iterator.
6393         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
6395 2017-03-09  Martin Liska  <mliska@suse.cz>
6397         PR tree-optimization/79631
6398         * tree-chkp-opt.c (chkp_is_constant_addr): Call
6399         tree_int_cst_sign_bit just for INTEGER constants.
6401 2017-03-09  Martin Liska  <mliska@suse.cz>
6403         PR target/65705
6404         PR target/69804
6405         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
6406         sanitizers.
6408 2017-03-09  Marek Polacek  <polacek@redhat.com>
6410         PR c++/79672
6411         * tree.c (inchash::add_expr): Handle TREE_VEC.
6413 2017-03-09  Martin Liska  <mliska@suse.cz>
6415         PR ipa/79764
6416         (chkp_narrow_size_and_offset): New function.
6417         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
6418         (void chkp_parse_bit_field_ref): New function.
6419         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
6420         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
6422 2017-03-09  Martin Liska  <mliska@suse.cz>
6424         PR ipa/79761
6425         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
6426         (chkp_find_bounds_1): Remove gcc_unreachable.
6428 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
6430         PR sanitizer/79944
6431         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
6432         BUILT_IN_SYNC*, determine the access type from the size suffix and
6433         always build a MEM_REF with that type.  Handle forgotten
6434         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
6436         PR target/79932
6437         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
6438         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
6439         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
6440         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
6441         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
6442         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
6443         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
6444         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
6445         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
6446         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
6447         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
6448         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
6449         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
6450         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
6451         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
6452         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
6453         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
6454         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
6455         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
6456         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
6457         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
6458         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
6459         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
6460         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
6461         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
6462         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
6463         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
6464         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
6465         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
6466         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
6467         definitions outside of __OPTIMIZE__ guarded section.
6469         PR target/79932
6470         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
6471         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
6472         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
6473         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
6474         guarded section.
6476 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6478         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
6479         ("vfenez<mode>"): Add missing constraints.
6481 2017-03-08  Martin Sebor  <msebor@redhat.com>
6483         PR target/79928
6484         * config/nds32/nds32.c (nds32_option_override):
6485         Fix misspelled diagnostic.
6487 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
6489         PR c/79940
6490         * gimplify.c (gimplify_omp_for): Replace index var in outer
6491         taskloop statement with an artificial variable and add
6492         OMP_CLAUSE_PRIVATE clause for it.
6494 2017-03-08  Richard Biener  <rguenther@suse.de>
6496         PR tree-optimization/79955
6497         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
6498         for accesses that are completely outside of the variable.
6500 2017-03-08  Andrew Haley  <aph@redhat.com>
6502         PR tree-optimization/79943
6503         * tree-ssa-loop-split.c (compute_new_first_bound): When
6504         calculating the new upper bound, (END-BEG) should be added, not
6505         subtracted.
6507 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
6509         * config/avr/avr.md (setmemhi): Make sure match_dup
6510         operand number comes before match_scratch.
6512 2017-03-08  Richard Biener  <rguenther@suse.de>
6514         PR tree-optimization/79920
6515         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
6516         with ncopies == 1 to ...
6517         (vect_transform_slp_perm_load): ... here.  Properly compute
6518         all element loads by iterating VF times over the group.  Do
6519         not handle ncopies (computed in a broken way) in
6520         vect_create_mask_and_perm.
6522 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
6524         PR sanitizer/79904
6525         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
6526         is a uniform vector, use uniform_vector_p return value instead of
6527         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
6529 2017-03-07  Marek Polacek  <polacek@redhat.com>
6531         PR middle-end/79809
6532         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
6533         (alloca_call_type): Likewise.
6535 2017-03-07  Martin Liska  <mliska@suse.cz>
6537         * gcov.c (process_args): Put comment to correct location.
6539 2017-03-07  Martin Liska  <mliska@suse.cz>
6541         PR middle-end/68270
6542         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
6543         Use array_at_struct_end_p instead of DECL_CHAIN (field).
6544         (chkp_narrow_bounds_for_field): Likewise.
6545         (chkp_parse_array_and_component_ref): Pass one more argument to
6546         call.
6548 2017-03-07  Richard Biener  <rguenther@suse.de>
6550         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
6551         preheaders.
6553 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
6555         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
6556         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
6558 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6560         PR c/79855
6561         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
6562         to end of description.
6563         (PARAM_MAX_STORES_TO_MERGE): Likewise.
6565 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
6567         PR rtl-optimization/79901
6568         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
6569         ...
6570         (*avx512f_<code><mode>3<mask_name>): ... this.
6571         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
6572         iterator instead of VI8_AVX2_AVX512BW.
6574         PR rtl-optimization/79901
6575         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
6576         min/max expander, expand it using expand_vec_cond_expr.
6578         PR sanitizer/79897
6579         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
6580         temporary.
6582 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
6584         PR c++/79821
6585         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
6586         to void * for PCH reasons.
6587         * dwarf2out.c (output_loc_operands, output_die): Cast
6588         v.val_vec.array to unsigned char *.
6590 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
6592         PR target/77850
6593         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
6594         vector types.
6596 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
6598         PR rtl-optimization/79571
6599         * lra-constraints.c (process_alt_operands): Calculate static
6600         reject and subtract it from overall when only addresses will be
6601         reloaded.
6603 2017-03-06  Julia Koval  <julia.koval@intel.com>
6605         PR target/79793
6606         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
6607         incoming stack boundary to 128 for 64-bit targets.
6609 2017-03-06  Richard Biener  <rguenther@suse.de>
6611         PR tree-optimization/79894
6612         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
6613         to NULL after folding it.
6615 2017-03-06  Richard Biener  <rguenther@suse.de>
6617         PR tree-optimization/79824
6618         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
6619         check disabling peeling for gaps.
6621 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
6623         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
6624         attributes): Document gettimeofday.
6626 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6628         * config/s390/s390.c (s390_option_override_internal): Set
6629         PARAM_MIN_VECT_LOOP_BOUND
6631 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
6633         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
6634         * config/s390/s390.md: Likewise.
6636 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
6638         PR target/79812
6639         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
6640         (<avx2_avx512>_perm<mode>): Rename to ...
6641         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
6642         of VI8F_256_512.
6643         (<avx512>_perm<mode>_mask): Rename to ...
6644         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
6645         of VI8F_256_512.
6646         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
6647         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
6648         instead of VI8F_256_512.
6649         (avx512f_perm<mode>): New define_expand.
6650         (avx512f_perm<mode>_mask): Likewise.
6651         (avx512f_perm<mode>_1<mask_name>): New define_insn.
6652         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
6654 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
6656         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
6657         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
6658         if_then_else.
6659         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
6661 2017-03-06  Martin Liska  <mliska@suse.cz>
6663         PR sanitize/79783
6664         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
6665         when having a SSA NAME w/o VAR_DECL assigned to it.
6667 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
6669         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
6670         msa_dpsub_<su>_d): Fix MODE for vec_select.
6672 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
6674         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
6675         argument.
6676         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
6678 2017-03-06  Richard Biener  <rguenther@suse.de>
6680         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
6681         * plugin.c (register_plugin_info): Likewise.
6682         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
6684 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
6686         * config/i386/sse.md (sse_storehps, sse_storelps,
6687         avx_<castmode><avxsizesuffix>_<castmode>,
6688         avx512f_<castmode><avxsizesuffix>_<castmode>,
6689         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
6690         in condition that at least one operand is not a MEM.
6692 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
6694         PR middle-end/79805
6695         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
6696         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
6697         ECF_NOTHROW.
6698         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
6699         gimple_call_nothrow_p flag based on whether original builtin can throw.
6700         If it can, emit following stmts on the fallthrough edge.
6701         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
6702         don't create new bb if inserting just debug stmts on the edge, try to
6703         insert them on the fallthru bb or just reset debug stmts.
6705 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
6707         PR target/43763
6708         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
6709         restore recog_data (including the operand rtxes inside it) around
6710         the call to get_insn_template.
6712 2017-03-03  Martin Sebor  <msebor@redhat.com>
6714         PR tree-optimization/79699
6715         * context.c (context::~context): Free MPFR caches to avoid
6716         a memory leak on program exit.
6718 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6720         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
6721         Use wide_int::ulow () instead of .elt (0).
6723 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
6725         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
6726         (*pushxf): Limit oF constraint to 32bit targets and add oC
6727         constraint for 64bit targets.
6728         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
6729         (*pushdf): Change rmF constraint to rmC.
6731 2017-03-03  Martin Liska  <mliska@suse.cz>
6733         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
6734         Remove unused variable.
6736 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
6738         PR target/79807
6739         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
6740         is a memory operand, increase num_memory.
6741         (ix86_expand_args_builtin): Likewise.
6743 2017-03-03  Jan Hubicka  <jh@suse.cz>
6745         PR lto/79760
6746         * ipa-devirt.c (maybe_record_node): Properly handle
6747         __cxa_pure_virtual visibility.
6749 2017-03-03  Martin Liska  <mliska@suse.cz>
6751         PR tree-optimization/79803
6752         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
6753         assert.
6754         (pass_loop_prefetch::execute): Disabled optimization if an
6755         assumption about L1 cache size is not met.
6757 2017-03-03  Martin Liska  <mliska@suse.cz>
6759         PR rtl-optimization/79574
6760         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
6761         (hash_scan_set): Likewise.
6762         (dump_hash_table): Likewise.
6763         (hoist_code): Likewise.
6765 2017-03-03  Richard Biener  <rguenther@suse.de>
6767         * fixed-value.c (fixed_from_string): Restore use of elt (1)
6768         in place of uhigh ().
6769         (fixed_convert_from_real): Likewise.
6771 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
6773         PR target/79514
6774         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
6776 2017-03-03  Richard Biener  <rguenther@suse.de>
6778         PR middle-end/79818
6779         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
6780         TYPE_OVERFLOW_UNDEFINED check.
6782 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6784         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
6785         numbers.
6786         (vector_ae_<mode>_p): Likewise.
6787         (vector_nez_<mode>_p): Likewise.
6788         (vector_ne_v2di_p): Likewise.
6789         (vector_ae_v2di_p): Likewise.
6790         (vector_ne_<mode>_p): Likewise.
6791         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
6792         numbers.
6793         (vsx_tsqrt<mode>2_fe): Likewise.
6795 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
6797         PR target/79514
6798         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
6800 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
6802         PR rtl-optimization/79780
6803         * cprop.c (one_cprop_pass): When second and further conditional trap
6804         in a single basic block is turned into an unconditional trap, turn it
6805         into a deleted note to avoid RTL verification failures.
6807 2017-03-02  Richard Biener  <rguenther@suse.de>
6809         * fold-const.c (const_binop): Use ulow () instead of elt (0).
6811 2017-03-02  Richard Biener  <rguenther@suse.de>
6813         PR tree-optimization/79345
6814         PR c++/42000
6815         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
6816         param and abort the walk, returning -1 if it is hit.
6817         (walk_aliased_vdefs): Take a limit param and pass it on.
6818         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
6819         defaulting to 0 and return a signed int.
6820         * tree-ssa-uninit.c (struct check_defs_data): New struct.
6821         (check_defs): New helper.
6822         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
6823         about uninitialized memory.
6824         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
6825         bogus uninitialized warning.
6826         (fixed_convert_from_real): Likewise.
6828 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
6830         PR tree-optimization/66768
6831         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
6832         iv_use if base object can't be determined.
6834 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
6836         PR tree-optimization/79345
6837         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
6838         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
6839         (get_pattern_stats): Initialize it.
6840         * genemit.c (gen_expand): Verify match_scratch numbers come after
6841         match_operand/match_dup numbers.
6842         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
6843         match_scratch numbers.
6844         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
6845         Likewise.
6846         * config/s390/s390.md (trunctdsd2): Likewise.
6848 2017-03-02  Richard Biener  <rguenther@suse.de>
6850         * wide-int.h (wide_int_storage::operator=): Implement in terms
6851         of wi::copy.
6853 2017-03-02  Richard Biener  <rguenther@suse.de>
6855         PR tree-optimization/79777
6856         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
6857         the to insert expression to sth existing.
6859 2017-03-01  Martin Sebor  <msebor@redhat.com>
6861         PR middle-end/79692
6862         * gimple-ssa-sprintf.c
6863         (directive::known_width_and_precision): New function.
6864         (format_integer): Use it.
6865         (get_mpfr_format_length): Consider the full range of precision
6866         when computing %g output with the # flag.  Set the likely byte
6867         count to 3 rather than 1 when precision is indeterminate.
6868         (format_floating): Correct the lower bound of precision.
6870 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6872         * doc/invoke.texi: Document default code model for 64-bit Linux.
6874 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
6876         PR target/79752
6877         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
6878         udiv rather than div since input pattern is unsigned.
6880 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
6882         * config/i386/i386.c (print_reg): Warn for values of
6883         unsupported size in integer register.
6885 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
6887         PR target/79439
6888         * config/rs6000/predicates.md (current_file_function_operand): Do
6889         not allow self calls to be local if the function is replaceable.
6891 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6893         PR target/79395
6894         * config/rs6000/altivec.h (vec_ctz and others): Change the
6895         preprocessor macro that controls conditional compilation from
6896         _ARCH_PWR9 to __POWER9_VECTOR__.
6897         (vec_all_ne): Change parameterization of __altivec_scalar_pred
6898         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
6899         control (instead of _ARCH_PWR9 control) so that template
6900         definition uses power9-specific function.
6901         (vec_any_eq): Likewise.
6902         (vec_all_ne): Change macro definition to use a power9-specific
6903         expansion under #ifdef __POWER9_VECTOR__ control (instead of
6904         _ARCH_PWR9 control).
6905         (vec_any_eq) Likewise.
6906         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
6907         expansion for CMPNEF to remove support for xvcmpnesp instruction.
6908         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
6909         support for xvcmpnedp instruction.
6910         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
6911         macro expansion so that Power9 implementation of vec_all_ne does
6912         not use the AltiVec predicate framework.
6913         (VCMPNEH_P): Likewise.
6914         (VCMPNEW_P): Likewise.
6915         (VCMPNED_P): Likewise.
6916         (VCMPNEFP_P): Likewise.
6917         (VCMPNEDP_P): Likewise.
6918         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
6919         implementation of vec_any_eq to not use AltiVec predicate
6920         framework.
6921         (VCMPAEH_P): Likewise.
6922         (VCMPAEW_P): Likewise.
6923         (VCMPAED_P): Likewise.
6924         (VCMPAEFP_P): Likewise.
6925         (VCMPAEDP_P): Likewise.
6926         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
6927         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
6928         not use the AltiVec predicate framework.
6929         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
6930         of vec_any_eq to not use AltiVec predicate framework.
6931         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
6932         support for predefined __POWER9_VECTOR__ macro to indicate that
6933         Power9 instruction selection is enabled.
6934         (altivec_overloaded_builtins): Remove extraneous
6935         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
6936         function argument types RS6000_BTI_bool_V16QI and
6937         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
6938         entry for overloaded function argument types RS6000_BTI_bool_V4SI
6939         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
6940         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
6941         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
6942         Power9 for implementations of vec_cmpne.  Change the signature for
6943         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
6944         (representing vec_all_ne) to remove the previously described first
6945         argument of type RS6000_BTI_INTSI, as this was an artifact of
6946         reliance on the AltiVec predicate framework, which is no longer
6947         used in the implementation of these functions.  Add
6948         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
6949         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
6950         since, unlike the AltiVec predicate framework implementation, we
6951         do not share function descriptors between vec_alle and vec_anyeq.
6952         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
6953         set of modes that receive special treatment even when
6954         TARGET_P9_VECTOR is true.  The special treatment emits code that
6955         does not depend on Power9 instructions.
6956         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
6957         define_expand to not rely on AltiVec predicate framework.
6958         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
6959         function.
6960         (vector_ne_v2di_p): Change this define_expand to not rely on
6961         AltiVec predicate framework.
6962         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
6963         function.
6964         (vector_ne_<mode>_p): Change this define_expand to not rely on
6965         AltiVec predicate framework.
6966         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
6967         function.
6968         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
6969         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
6970         define_insn pattern.
6971         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
6972         define_insn pattern because the xvcmpne<VSs>. instruction is not
6973         supported.
6974         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
6975         instruction is not supported.
6977 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
6979         * config/nvptx/nvptx.c: Include intl.h.
6981 2017-03-01  Martin Jambor  <mjambor@suse.cz>
6983         PR lto/78140
6984         * ipa-prop.h (ipa_bits): Removed field known.
6985         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
6986         to pointers.  Adjusted their comments to warn about their sharing.
6987         (ipcp_transformation_summary): Change bits to a vector of pointers.
6988         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
6989         (ipa_get_ipa_bits_for_value): Declare.
6990         * tree-vrp.h (value_range): Mark as GTY((for_user)).
6991         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
6992         (ipa_bits_hash_table): Likewise.
6993         (ipa_vr_ggc_hash_traits): Likewise.
6994         (ipa_vr_hash_table): Likewise.
6995         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
6996         being pointers and vr_known being removed.
6997         (ipa_set_jf_unknown): Likewise.
6998         (ipa_get_ipa_bits_for_value): New function.
6999         (ipa_set_jfunc_bits): Likewise.
7000         (ipa_get_value_range): New overloaded functions.
7001         (ipa_set_jfunc_vr): Likewise.
7002         (ipa_compute_jump_functions_for_edge): Use the above functions to
7003         construct bits and vr parts of jump functions.
7004         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
7005         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7006         exist.
7007         (ipcp_grow_transformations_if_necessary): Also allocate
7008         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7009         exist.
7010         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
7011         them.  Fix too long lines.
7012         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
7013         vr_known being removed.
7014         (ipa_read_jump_function): Use new setter functions to construct bits
7015         and vr parts of jump functions or set them to NULL.
7016         (write_ipcp_transformation_info): Adjust for bits being pointers.
7017         (read_ipcp_transformation_info): Likewise.
7018         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
7019         space.
7020         Include gt-ipa-prop.h.
7021         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
7022         being pointers.
7023         (ipcp_store_bits_results): Likewise.
7024         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
7025         Do not write to existing jump functions but use a temporary instead.
7027 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7029         PR c++/79681
7030         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
7031         attempt to use its first operand as BIT_FIELD_REF base.
7033 2017-03-01  Richard Biener  <rguenther@suse.de>
7035         PR middle-end/79721
7036         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
7037         interpolating formula in wrapping arithmetic.
7038         (chrec_apply): Convert chrec_evaluate return value to wanted type.
7040 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
7042         PR tree-optimization/79734
7043         * tree-vect-generic.c (expand_vector_condition): Optimize
7044         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
7045         Handle VEC_COND_EXPR where comparison has different inner width from
7046         type's inner width.
7048 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
7050         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
7051         markup, and similar issues.  Remove @opindex entries for things
7052         that aren't options.  Add missing -mmpy-option entries.
7054 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7056         PR tree-optimization/79737
7057         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
7058         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
7059         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
7060         instead of byte_size.  Formatting fix.
7061         (shift_bytes_in_array_right): Formatting fix.
7063 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7065         PR target/79749
7066         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
7067         condition on optimize for the leaf function test.
7069 2017-02-28  Martin Liska  <mliska@suse.cz>
7071         PR lto/79625
7072         * read-rtl-function.c (function_reader::handle_unknown_directive):
7073         Bail out when one uses -flto.
7075 2017-02-28  Martin Liska  <mliska@suse.cz>
7077         * common.opt: Replace space with tabular for options of <number>
7078         type.
7079         * config/i386/i386.opt: Show <number> value for
7080         -mlarge-data-threshold.
7081         * opts.c (print_filtered_help): Do not display number in hexadecimal
7082         format.
7084 2017-02-28  Martin Liska  <mliska@suse.cz>
7086         * common.opt: Fix --help=option -Q for options which are of
7087         an enum type.
7089 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
7091         * config/i386/i386.c (print_reg): Error out for values
7092         of 8-bit size in invalid integer register.
7094 2017-02-28  Martin Sebor  <msebor@redhat.com>
7096         PR tree-optimization/79691
7097         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
7099 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7101         PR target/79729
7102         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
7103         gcc_unreachable with output_operand_lossage.
7105 2017-02-28  Richard Biener  <rguenther@suse.de>
7107         PR tree-optimization/79740
7108         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
7109         inserts.
7110         (visit_nary_op): Insert the nary into the hashtable if we
7111         pattern-matched sth.
7112         * tree-ssa-pre.c (eliminate_insert): Robustify.
7114 2017-02-28  Richard Biener  <rguenther@suse.de>
7116         PR middle-end/79731
7117         * fold-const.c (decode_field_reference): Reject out-of-bound
7118         accesses.
7120 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
7122         * config/i386/i386.c: Include intl.h.
7123         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
7124         instead of just cond ? "..." : "...".
7125         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
7126         * coverage.c (read_counts_file): Likewise.
7127         * omp-offload.c: Include intl.h.
7128         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
7129         of just cond ? "..." : "...".
7130         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
7131         of just cond ? "..." : "...".
7133 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
7135         PR target/79742
7136         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
7137         entry, if present.
7138         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
7139         'tune for' CPU name.
7140         * config/arm/arm-cpu-data.h: Regenerated.
7142 2017-02-28  Richard Biener  <rguenther@suse.de>
7144         PR tree-optimization/79732
7145         * tree-inline.c (expand_call_inline): Do not shadow var.
7147 2017-02-28  Richard Biener  <rguenther@suse.de>
7149         PR tree-optimization/79723
7150         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
7151         address-space properly.
7153 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
7155         * doc/optinfo.texi (Optimization groups): Fix option used for
7156         OPTGROUP_ALL.
7157         * doc/invoke.texi (-fopt-info): Document "omp".
7158         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
7159         (OPTGROUP_ALL): Add OPTGROUP_OMP.
7160         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
7161         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
7162         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
7164         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
7165         all users.
7166         * dumpfile.c (optgroup_options): Instead of "openmp", associate
7167         OPTGROUP_OMP with "omp".
7169 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
7171         PR target/79544
7172         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
7173         for arithmetic shift of unsigned V2DI.
7175 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
7177         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
7178         arc/linux.h headers.
7179         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
7180         (LINK_SPEC): Likewise.
7181         (ARC_TLS_EXTRA_START_SPEC): Likewise.
7182         (EXTRA_SPECS): Likewise.
7183         (STARTFILE_SPEC): Likewise.
7184         (ENDFILE_SPEC): Likewise.
7185         (LIB_SPEC): Likewise.
7186         (TARGET_SDATA_DEFAULT): Likewise.
7187         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
7188         (MULTILIB_DEFAULTS): Likewise.
7189         (DWARF2_UNWIND_INFO): Likewise.
7190         * config/arc/big.h: New file.
7191         * config/arc/elf.h: Likewise.
7192         * config/arc/linux.h: Likewise.
7193         * config/arc/t-uClibc: Remove.
7195 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
7197         PR tree-optimization/77536
7198         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
7199         (tree_transform_and_unroll_loop): Use above function to compute the
7200         estimated niter of unrolled loop and use it when scaling profile.
7201         Also use count info rather than frequency if it's non-zero.
7202         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
7203         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
7204         (vect_transform_loop): Call above function.
7206 2017-02-27  Richard Biener  <rguenther@suse.de>
7208         PR tree-optimization/45397
7209         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
7210         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
7211         (visit_nary_op): Add pattern matching for CSEing sign-changed
7212         or truncated operations with wider ones.
7214 2017-02-27  Richard Biener  <rguenther@suse.de>
7216         PR tree-optimization/79690
7217         * tree-vect-stmts.c (vectorizable_store): Use vector type
7218         built from the DR with address-space.
7220 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
7222         * doc/invoke.texi (Optimize Options): Refine the description
7223         of asan-use-after-return.
7225 2017-02-25  Alan Modra  <amodra@gmail.com>
7227         PR rtl-optimization/79584
7228         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
7229         base, not ad->base_term, the reg within base.  Remove assertion
7230         that ad->base == ad->base_term.  Replace gen_int_mode using
7231         bogus mode with const0_rtx.
7233 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
7235         PR middle-end/79396
7236         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
7237         FMA_EXPR like tcc_binary or tcc_unary.
7239         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
7241         PR debug/77589
7242         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
7243         bitfield.
7244         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
7245         (output_loc_operands): Handle DW_OP_call_ref and
7246         DW_OP_GNU_variable_value.
7247         (struct variable_value_struct): New type.
7248         (struct variable_value_hasher): Likewise.
7249         (variable_value_hash): New variable.
7250         (string_types): Remove.
7251         (copy_loc_descr): New function.
7252         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
7253         (prepend_loc_descr_to_each): New function.
7254         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
7255         instead of add_loc_descr_to_each if the first argument is single
7256         location list and the second has multiple.
7257         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
7258         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
7259         when looking for variable value which doesn't have other location info.
7260         (loc_list_from_tree): Formatting fix.
7261         (gen_array_type_die): Simplify DW_AT_string_length handling.
7262         (adjust_string_types): Remove.
7263         (gen_subprogram_die): Don't call adjust_string_types nor test/set
7264         string_types.  Call resolve_variable_values.
7265         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
7266         (resolve_addr_in_expr): Likewise.  Add A argument.
7267         (copy_deref_exprloc): Remove deref argument.  Adjust for the
7268         original expression being DW_OP_GNU_variable_value with optionally
7269         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
7270         optionally after it.
7271         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
7272         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
7273         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
7274         (variable_value_hasher::hash, variable_value_hasher::equal): New
7275         methods.
7276         (resolve_variable_value_in_expr, resolve_variable_value,
7277         resolve_variable_values, note_variable_value_in_expr,
7278         note_variable_value): New functions.
7279         (dwarf2out_early_finish): Call note_variable_value on all toplevel
7280         DIEs.
7282 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
7284         PR c/79677
7285         * opts.h (handle_generated_option): Add GENERATED_P argument.
7286         * opts-common.c (handle_option): Adjust function comment.
7287         (handle_generated_option): Add GENERATED_P argument, pass it to
7288         handle_option.
7289         (control_warning_option): Pass false to handle_generated_option
7290         GENERATED_P.
7291         * opts.c (maybe_default_option): Pass true to handle_generated_option
7292         GENERATED_P.
7293         * optc-gen.awk: Likewise.
7295 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7297         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
7298         a REG, look at the REG it is a SUBREG of.
7299         (splitter for cmpeqsi_t): Ditto.
7301 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7303         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
7304         the special USEs with the pattern of the insn, not the insn itself.
7306 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
7308         PR target/79473
7309         * doc/invoke.texi: Document -mload-store-pairs.
7311 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7312             Sandra Loosemore  <sandra@codesourcery.com>
7314         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
7315         argument isn't a CONST_INT.
7316         (nios2_alternate_compare_const): Assert op is a CONST_INT.
7317         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
7318         (nios2_validate_compare): Bypass alternate compare logic if *op2
7319         is not a CONST_INT.
7320         (ldstwm_operation_p): Return false if first_base is not a REG or
7321         if first_offset is not a CONST_INT.
7323 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7325         * config/cris/cris.md: Use correct operand in a define_peephole2.
7327 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7329         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
7331 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
7333         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
7334         this_insn if it is an INSN or JUMP_INSN.
7335         (force_offsettable): Look at base, not at addr.
7336         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
7337         on things that aren't necessarily CONST_INTs.
7339 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
7341         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
7342         -mfpmath=sse is the default also for x86-32 targets with SSE2
7343         instruction set when @option{-ffast-math} is enabled
7345 2017-02-24  Jeff Law  <law@redhat.com>
7347         PR rtl-optimizatoin/79286
7348         * ira.c (update_equiv_regs): Drop may_trap_p exception to
7349         dominance test.
7351 2017-02-24  Richard Biener  <rguenther@suse.de>
7353         PR tree-optimization/79389
7354         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
7355         debug insns.
7357 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
7359         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
7360         function comment to reflect reality.
7361         (loop_exits_before_overflow): Fix typo in function description.
7363 2017-02-24  Richard Biener  <rguenther@suse.de>
7365         PR tree-optimization/79389
7366         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
7367         properly that a threading opportunity exists.  Detect conditional
7368         copy/constant propagation opportunities.
7370 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
7372         * config/visium/visium.md (type): Add trap.
7373         (b): New mode attribute.
7374         (*btst): Rename into...
7375         (*btst<mode>): ...this and adjust.
7376         (*cbranchsi4_btst_insn): Rename into...
7377         (*cbranch<mode>4_btst_insn): ...this and adjust.
7378         (trap): New define_insn.
7380 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
7382         PR tree-optimization/79389
7383         * ifcvt.c (struct noce_if_info): Add rev_cond field.
7384         (noce_reversed_cond_code): New function.
7385         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
7386         reversed_comparison_code.  Formatting fix.
7387         (noce_try_store_flag): Test rev_cond != NULL in addition to
7388         reversed_comparison_code.
7389         (noce_try_store_flag_constants): Likewise.
7390         (noce_try_store_flag_mask): Likewise.
7391         (noce_try_addcc): Use rev_cond if non-NULL instead of
7392         reversed_comparison_code.
7393         (noce_try_cmove_arith): Likewise.  Formatting fixes.
7394         (noce_try_minmax, noce_try_abs): Clear rev_cond.
7395         (noce_find_if_block): Initialize rev_cond.
7396         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
7397         instead of false as last argument never attempt to reverse it
7398         afterwards.
7400 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
7402         PR tree-optimization/79663
7403         * tree-predcom.c (combine_chains): Process refs in reverse order
7404         only for ZERO length chains, and add explaining comment.
7406 2017-02-23  Jeff Law  <law@redhat.com>
7408         PR tree-optimization/79578
7409         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
7410         in call to operand_equal_p.
7412 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
7414         PR target/71017
7415         * config/i386/cpuid.h: Fix another undefined behavior.
7417 2017-02-23  Richard Biener  <rguenther@suse.de>
7419         PR tree-optimization/79683
7420         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
7421         vector types for data-refs.
7423 2017-02-23  Martin Liska  <mliska@suse.cz>
7425         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
7427 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
7429         PR middle-end/79665
7430         * internal-fn.c (get_range_pos_neg): Moved to ...
7431         * tree.c (get_range_pos_neg): ... here.  No longer static.
7432         * tree.h (get_range_pos_neg): New prototype.
7433         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
7434         are known to be in between 0 and signed maximum inclusive, try to
7435         expand both unsigned and signed divmod and use the cheaper one from
7436         those.
7438 2017-02-22  Jeff Law  <law@redhat.com>
7440         PR tree-optimization/79578
7441         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
7442         to compare base operands.
7444 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
7446         PR target/79211
7447         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
7448         gpc_reg_operand instead of fpr_reg_operand.
7450 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
7452         * config/mips/mips.c (mips_return_in_memory): Force FP
7453         vector types to be returned in memory for o32 ABI.
7455 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
7457         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
7458         instead of DW_TAG_member for static data member declarations and don't
7459         set no_linkage_name for static inline data members.
7460         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
7461         to DW_TAG_member.
7463 2017-02-22  Martin Liska  <mliska@suse.cz>
7465         * doc/invoke.texi: Replace inequality signs with square brackets
7466         for -Wnormalized.
7468 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
7470         PR target/78660
7471         * lra-constraints.c (simplify_operand_subreg): Handle
7472         WORD_REGISTER_OPERATIONS targets.
7474 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
7476         PR target/70465
7477         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
7478         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
7479         elimination by swapping fld*.
7481 2017-02-22  Richard Biener  <rguenther@suse.de>
7483         PR tree-optimization/79673
7484         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
7485         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
7486         irrelevant address-space qualifiers and avoiding a
7487         ADDR_SPACE_CONVERT_EXPR from fold_convert.
7489 2017-02-22  Richard Biener  <rguenther@suse.de>
7491         PR tree-optimization/79666
7492         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
7493         to not symbolically negate if that may introduce undefined
7494         overflow.
7496 2017-02-22  Martin Liska  <mliska@suse.cz>
7498         PR lto/79587
7499         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
7500         * data-streamer-out.c (streamer_write_gcov_count_stream):
7501         Likewise.
7502         * value-prof.c (stream_out_histogram_value): Make assert more
7503         precise based on type of counter.
7505 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
7507         PR target/79593
7508         * config/i386/i386.md (standard_x87sse_constant_load splitter):
7509         Use nonimmediate_operand instead of memory_operand for operand 1.
7510         (float-extend standard_x87sse_constant_load splitter): Ditto.
7512 2017-02-21 Jeff Law  <law@redhat.com>
7514         PR tree-optimization/79621
7515         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
7516         blocks with edges to themselves.
7518 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
7520         PR target/79633
7521         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
7522         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
7523         Use gimple_call_builtin_p.
7525         PR target/79570
7526         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
7527         on temporarily removed DEBUG_INSNs.
7529         PR tree-optimization/79649
7530         * tree-loop-distribution.c (classify_partition): Give up on
7531         non-generic address space loads/stores.
7533 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
7535         * doc/loop.texi (Loop manipulation): Remove nonexistent
7536         tree_ssa_loop_version from the documentation.
7537         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
7539 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
7541         PR target/79494
7542         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
7543         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
7544         * config/rs6000/rs6000.c: Include except.h.
7545         (rs6000_expand_split_stack_prologue): Call
7546         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
7548 2017-02-21  Martin Jambor  <mjambor@suse.cz>
7550         PR lto/79579
7551         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
7552         have been analyzed.
7554 2017-02-21  Martin Jambor  <mjambor@suse.cz>
7556         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
7557         for backward compatibility only.
7558         * doc/invoke.texi (Option Summary): Remove all references to
7559         -fipa-cp-alignment.
7561 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
7563         PR target/78660
7564         Revert:
7565         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
7567         * lra-constraints.c (curr_insn_transform): Handle
7568         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
7570 2017-02-21  Martin Liska  <mliska@suse.cz>
7572         * config/i386/i386.opt: Replace -masm-dialect with -masm.
7574 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
7576         PR translation/79638
7577         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
7579 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
7581         PR ada/67205
7582         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
7583         (arm_function_ok_for_sibcall): Return false for an indirect call by
7584         descriptor if all the argument registers are used.
7585         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
7586         alignment of the function.
7588 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
7590         PR tree-optimization/61441
7591         * simplify-rtx.c (simplify_const_unary_operation): For
7592         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
7593         the sNaN unmodified.
7595 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7597         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
7598         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
7599         instead of SYSTEM_HEADER_DIR.
7601 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
7602             Martin LiÅ¡ka  <mliska@suse.cz>
7604         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
7605         Fix typos and grammar, use active voice, and clarify.
7607 2017-02-20  Marek Polacek  <polacek@redhat.com>
7609         PR middle-end/79537
7610         * gimplify.c (gimplify_expr): Handle unused *&&L;.
7612         PR sanitizer/79558
7613         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
7615 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
7617         PR target/79568
7618         * config/i386/i386.c (ix86_expand_builtin): Handle
7619         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
7620         ix86_builtins_isa[fcode].isa as a requirement of those
7621         flags and any other flag in the bitmask.
7622         (ix86_init_mmx_sse_builtins): Use 0 instead of
7623         ~OPTION_MASK_ISA_64BIT as mask.
7624         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
7625         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
7626         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
7627         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
7629 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
7631         PR target/78012
7632         * lra-constraints.c (split_reg): Check requested split mode
7633         is supported by the register.
7635 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
7637         * lra-constraints.c (simplify_operand_subreg): Remove early
7638         return false.
7640 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
7642         PR target/78660
7643         * lra-constraints.c (curr_insn_transform): Tighten condition
7644         for converting SUBREG reloads from OP_OUT to OP_INOUT.
7646 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
7648         PR target/78660
7649         * lra-constraints.c (curr_insn_transform): Handle
7650         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
7652 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
7654         Revert:
7655         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
7657         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
7659 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
7661         PR c++/69523
7662         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
7663         description.
7665 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7667         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
7668         for FMA_EXPR.
7670 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
7672         * final.c (last_columnnum, override_columnnum): New variables.
7673         (final_start_function): Set last_columnnum, pass it to begin_prologue
7674         hook and pass 0 to dwarf2out_begin_prologue.
7675         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
7676         to source_line debug hook.
7677         (notice_source_line): Compute last_columnnum and for debug_column_info
7678         return true on column changes.
7679         * debug.h (struct gcc_debug_hooks): Add column argument to
7680         source_line and begin_prologue hooks.
7681         (debug_nothing_int_charstar_int_bool): Remove prototype.
7682         (debug_nothing_int_int_charstar,
7683         debug_nothing_int_int_charstar_int_bool): New prototypes.
7684         (dwarf2out_begin_prologue): Add column argument.
7685         * debug.c (do_nothing_debug_hooks): Adjust source_line and
7686         begin_prologue hooks.
7687         (debug_nothing_int_charstar_int_bool): Remove.
7688         (debug_nothing_int_int_charstar,
7689         debug_nothing_int_int_charstar_int_bool): New functions.
7690         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
7691         through to dwarf2out_source_line.
7692         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
7693         (dwarf2out_source_line): Add column argument, emit it if requested.
7694         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
7695         arguments.
7696         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
7697         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
7698         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
7699         through to dwarf2out_begin_prologue.
7700         (vmsdbgout_source_line): Add column argument, pass it through to
7701         dwarf2out_source_line.
7702         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
7703         dbxout_source_line caller.
7704         (dbxout_source_line): Add column argument.
7706         * common.opt (gno-column-info, gcolumn-info): New options.
7707         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
7708         (check_die): Also test for multiple DW_AT_decl_column attributes.
7709         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
7710         DW_AT_decl_column if requested.
7711         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
7712         if requested.
7713         (gen_variable_die): Likewise.
7714         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
7715         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
7717         PR target/79569
7718         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
7719         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
7720         (ix86_handle_option): Handle OPT_m3dnowa.
7721         * doc/invoke.texi (-m3dnowa): Document.
7722         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
7723         -m3dnowa instead of -m3dnow -march=athlon.
7725         PR target/79559
7726         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
7727         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
7729 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7731         PR target/79261
7732         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
7733         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
7734         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
7735         generator for vsx_xxpermdi_<mode>_be.
7736         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
7737         force big-endian semantics.
7738         (vsx_xxpermdi_<mode>_be): New define_expand with same
7739         implementation as previous version of vsx_xxpermdi_<mode>.
7741 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
7743         PR tree-optimization/79327
7744         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
7745         variable, its initialization and use.
7747 2017-02-17  Julia Koval  <julia.koval@intel.com>
7749         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
7750         (OPTION_MASK_ISA_PKU_UNSET): New.
7751         (ix86_handle_option): Handle -mrdpid.
7752         * config/i386/cpuid.h (bit_RDPID): New.
7753         * config/i386/driver-i386.c (host_detect_local_cpu):
7754         Detect RDPID feature.
7755         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
7756         * config/i386/i386-c.c (ix86_target_macros_internal):
7757         Handle RDPID flag.
7758         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
7759         (ix86_valid_target_attribute_inner_p): Add "rdpid".
7760         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
7761         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
7762         * config/i386/i386.md (define_insn "rdpid"): New.
7763         * config/i386/i386.opt Add -mrdpid.
7764         * config/i386/immintrin.h (_rdpid_u32): New.
7766 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
7768         PR rtl-optimization/79541
7769         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
7770         instead of transforming it into USE.
7772 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
7774         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
7775         If HONOR_SNANS (SFmode) force the input to a register.
7776         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
7777         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
7778         an frsp or similar insn.
7780 2017-02-17  Martin Liska  <mliska@suse.cz>
7782         PR rtl-optimization/79577
7783         * params.def (selsched-max-sched-times): Increase minimum to 1.
7785 2017-02-17  Martin Liska  <mliska@suse.cz>
7787         PR rtl-optimization/79574
7788         * gcse.c (want_to_gcse_p): Prevent integer overflow.
7790 2017-02-17  Martin Liska  <mliska@suse.cz>
7792         PR tree-optimization/79529
7793         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
7794         ssa_defined_default_def_p to handle cases which are implicitly
7795         defined.
7796         * tree-ssa.c (ssa_defined_default_def_p): New function.
7797         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
7798         which are implicitly defined.
7799         * tree-ssa.h (ssa_defined_default_def_p): Declare.
7801 2017-02-17  Richard Biener  <rguenther@suse.de>
7803         PR middle-end/79576
7804         * params.def (max-ssa-name-query-depth): Limit to 10.
7806 2017-02-17  Richard Biener  <rguenther@suse.de>
7808         PR tree-optimization/79552
7809         * tree-ssa-structalias.c (visit_loadstore): Properly verify
7810         default defs.
7812 2017-02-17  Richard Biener  <rguenther@suse.de>
7814         PR bootstrap/79567
7815         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
7817 2017-02-17  Marek Polacek  <polacek@redhat.com>
7819         PR middle-end/79536
7820         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
7821         (fold_negate_expr): New wrapper.
7823 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
7825         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
7826         Correct terminology and de-emphasize pre-standard behavior.
7828 2017-02-16  Alan Modra  <amodra@gmail.com>
7830         PR rtl-optimization/79286
7831         * ira.c (def_dominates_uses): New function.
7832         (update_equiv_regs): Don't create an equivalence for insns that
7833         may trap where the register def does not dominate the use.
7835 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
7837         PR rtl-optimization/78127
7838         * lra.c (lra): Call lra_eliminate before finish the loop after
7839         lra_constraint.
7841 2017-02-16  Richard Biener  <rguenther@suse.de>
7843         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
7844         isl/isl_val.h.
7845         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
7846         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
7847         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
7848         (isl_val_int_from_wi): New function.
7849         (extract_affine_gmp): Rename to ...
7850         (extract_affine_wi): ... this, take a widest_int.
7851         (extract_affine_int): Just wrap extract_affine_wi.
7852         (add_param_constraints): Use isl_val_int_from_wi.
7853         (add_loop_constraints): Likewise, and extract_affine_wi.
7855 2017-02-15 Jeff Law  <law@redhat.com>
7857         PR middle-end/79521
7858         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
7859         ira_init_register_move_cost_if_necessary.
7861 2017-02-15  Martin Sebor  <msebor@redhat.com>
7863         PR middle-end/32003
7864         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
7865         removed in a prior commit.
7867 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
7869         PR tree-optimization/79347
7870         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
7871         counters during peeling.
7873 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
7875         * Makefile.in (site.exp): Remove "set ISLVER".
7877 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
7879         PR target/79487
7880         * real.c (real_from_integer): Call real_convert even for decimal.
7882 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7884         PR target/79421
7885         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
7887 2017-02-14  Andrew Pinski  <apinski@cavium.com>
7889         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
7890         cores and change the partno/implementer to be correct.
7891         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
7892         the 'B" as the implementer.
7893         * config/aarch64/aarch64-tune.md: Regenerate.
7895 2017-02-14  Carl Love  <cel@us.ibm.com>
7897         * config/rs6000/rs6000.c: Add case statement entry to make the
7898         xvcvuxdsp built-in argument unsigned.
7899         * config/rs6000/vsx.md: Fix the source and return operand types so they
7900         match the instruction definitions from the ISA document.  Fix typo
7901         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
7902         statement.
7904 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
7906         PR target/79282
7907         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
7908         member early_clobber_alts.
7909         * lra-lives.c (reg_early_clobber_p): New.
7910         (process_bb_lives): Use it.
7911         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
7912         (debug_operand_data): Initialize early_clobber_alts.
7913         (setup_operand_alternative): Set up early_clobber_alts.
7914         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
7915         alternatives to new_insn_reg.
7916         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
7917         it.
7918         (lra_update_insn_regno_info): Pass the new arg.
7920 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
7922         PR middle-end/79505
7923         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
7924         (new_oacc_loop_raw): Don't clear already cleared fields.
7926         PR target/79481
7927         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
7928         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
7929         _mm512_prefetch_i64gather_ps): New inline functions and macros.
7931 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
7933         PR target/79495
7934         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
7936 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
7938         PR target/79498
7939         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
7940         the extra instruction to the right place to store 128-bit constant
7941         when needed.
7943 2017-02-14  Martin Sebor  <msebor@redhat.com>
7945         PR middle-end/79448
7946         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
7947           warning for strings of unknown length.
7949 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
7951         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
7953 2017-02-14 Jeff Law  <law@redhat.com>
7955         PR target/79404
7956         * ira-costs.c (scan_one_insn): Initialize register move costs
7957         for pseudos seen in USE/CLOBBER insns.
7959         PR tree-optimization/79095
7960         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
7961         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
7962         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
7963         if the operands are known to be not equal, then the resulting range
7964         is ~[0,0].
7965         (intersect_ranges): If the new range is ~[0,0] and the old range is
7966         wide, then prefer ~[0,0].
7967         * tree-vrp.c (overflow_comparison_p_1): New function.
7968         (overflow_comparison_p): New function.
7969         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
7970         if NAME is used in an overflow test.
7971         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
7972         overflow check that can be expressed as an equality test, then adjust
7973         ops to be that equality test.
7975 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7977         * config/s390/s390-builtin-types.def: Remove flags argument.
7978         * config/s390/s390.c (s390_init_builtins): Likewise.
7980 2017-02-14  Martin Liska  <mliska@suse.cz>
7982         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
7983         vector.  Fix trailing white spaces.
7985 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
7987         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
7988         HFmode.
7990 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7992         PR rtl-optimization/68664
7993         * config/arm/arm.c (arm_sched_can_speculate_insn):
7994         New function.  Declare prototype.
7995         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
7997 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7999         PR rtl-optimization/68664
8000         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
8001         New function.
8002         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8004 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
8006         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
8007         max skip bytes for function, loop and jump.
8009 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8011         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
8012         ABS_EXPR for gimple dump.
8014 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
8016         PR target/79462
8017         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
8019         PR tree-optimization/79408
8020         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
8021         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
8022         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
8023         also if rhs1 is INTEGER_CST.
8025 2017-02-14  Richard Biener  <rguenther@suse.de>
8027         PR middle-end/79432
8028         * tree-into-ssa.c (insert_phi_nodes): When the function can
8029         have abnormal edges rewrite SSA names with broken use-def
8030         dominance out of SSA and register them for PHI insertion.
8032 2017-02-13  Martin Sebor  <msebor@redhat.com>
8034         PR middle-end/79496
8035         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
8036         clearing info.nowrite flag when snprintf size argument is a range.
8038 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8040         * cprop.c (cprop_jump): Add missing space in string literal.
8041         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
8042         (get_constraint_for_component_ref): Likewise.
8043         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
8044         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
8045         * lra-constraints.c (process_alt_operands): Likewise.
8046         * ipa-inline.c (inline_small_functions): Likewise.
8047         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
8048         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
8049         * trans-mem.c (diagnose_tm_1_op): Likewise.
8050         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
8051         (grid_parallel_clauses_gridifiable): Likewise.
8053         * config/nvptx/mkoffload.c (process): Add space in between
8054         , and %d.
8056         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
8057         "MOD4_SSE_REGS" and "ALL_REGS".
8059         * spellcheck.c (test_data): Add , in between "foo" and "food".
8061 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8063         PR target/79449
8064         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
8065         boundary crossing check and subsequent code generation agree.
8067 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8069         * config/aarch64/aarch64.c (has_memory_op): Delete.
8070         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
8071         has_memory_op.
8073 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
8075         PR rtl-optimization/79388
8076         PR rtl-optimization/79450
8077         * combine.c (distribute_notes): When removing TEM_INSN for which
8078         corresponding dest has last value recorded, invalidate that last
8079         value.
8081 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8083         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
8084         of explicit '@'.  Add missing assembly comment marker on branch costs
8085         printout.
8087 2017-02-13  Nathan Sidwell  <nathan@acm.org>
8089         * gengtype-lex.l (<in_struct>): Add '/'.
8091 2017-02-13  Martin Liska  <mliska@suse.cz>
8093         PR c/79471
8094         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
8096 2017-02-13  Richard Biener  <rguenther@suse.de>
8098         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
8099         Remove.
8100         * configure: Re-generate.
8101         * config.in: Likewise.
8102         * graphite-dependences.c: Simplify as if
8103         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
8104         * graphite-isl-ast-to-gimple.c: Likewise.
8105         * graphite-optimize-isl.c: Likewise.
8106         * graphite-poly.c: Likewise.
8107         * graphite-sese-to-poly.c: Likewise.
8108         * graphite.h: Likewise.
8109         * toplev.c: Include isl/version.h and use isl_version () for
8110         printing the ISL version.
8111         * doc/install.texi: Update ISL requirement.
8113 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8115         * doc/standards.texi (Standards): Update reference to
8116         Objective-C 2.0.
8118 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
8119         
8120         * doc/extend.texi (Named Address Spaces): sourceware.org now
8121         defaults to https.
8122         * doc/install.texi (Binaries): Ditto.
8123         (Specific): Ditto.
8125 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8127         * doc/cpp.texi: Replace "stringify"/"stringification" with C 
8128         standard terminology "stringize"/"stringizing" throughout.
8129         * doc/cppinternals.texi: Likewise.
8131 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
8133         * doc/extend.texi: Fix some spelling mistakes and typos.
8134         * doc/invoke.texi: Likewise.
8136 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8138         PR ipa/79224
8139         * params.def (inline-min-speedup) Change from 10 to 8.
8141 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8143         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
8144         4.5.
8146 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
8148         PR ipa/79224
8149         * ipa-inline-analysis.c (get_minimal_bb): New function.
8150         (record_modified): Use it.
8151         (remap_edge_change_prob): Handle also ancestor functions.
8153 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
8155         * doc/contrib.texi (Contributors): Remove broken link into
8156         the Mauve CVS repository.
8158 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
8160         PR middle-end/79454
8161         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
8162         result computation whenever lhs doesn't have vector mode, not
8163         just when it has BLKmode.
8165 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8167         * doc/makefile.texi (profiledbootstrap): Refer to the
8168         installation instructions only in textual form.
8170 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8172         PR target/79295
8173         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
8175 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
8177         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
8178         (Specific): Update mingw-w64 reference.
8179         (Binaries): Ditto.
8180         (Specific): Remove broken link to Renesas RX processor.
8182 2017-02-10  Richard Biener  <rguenther@suse.de>
8184         * toplev.c (process_options): Do not mention obsolete graphite
8185         options when printing sorry message about missing graphite support.
8186         Mention -floop-nest-optimize.
8188 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
8190         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
8191         (vtst_p16): Likewise.
8192         (vtstq_p8): Likewise.
8193         (vtstq_p16): Likewise.
8194         (vtst_p64): New.
8195         (vtstq_p64): Likewise.
8196         * config/arm/arm_neon.h (vgetq_lane_p64): New.
8197         (vset_lane_p64): New.
8198         (vsetq_lane_p64): New.
8200 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
8202         PR tree-optimization/79411
8203         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
8204         stmt operands are SSA_NAMEs used in abnormal phis.
8205         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
8206         phis.
8208 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8210         PR ipa/70795
8211         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
8212         flag if needed.
8214 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
8216         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
8218 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
8220         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
8221         to avoid warning.
8223         PR c/79413
8224         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
8225         not arbitrary TREE_CONSTANT.
8227         PR c/79431
8228         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
8229         "omp declare target link" attribute unless is_global_var.
8230         * omp-offload.c (find_link_var_op): Likewise.
8232 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
8233             Chung-Lin Tang  <cltang@codesourcery.com>
8235         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
8236         OMP_CLAUSE_TILE.
8237         (gimplify_adjust_omp_clauses): Don't delete TILE.
8238         (gimplify_omp_for): Deal with TILE.
8239         * internal-fn.c (expand_GOACC_TILE): New function.
8240         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
8241         (GOACC_TILE): New.
8242         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
8243         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
8244         element fields.
8245         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
8246         avoid DIV for outermost collapse var.
8247         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
8248         Remove out of date comments, fix whitespace.
8249         * omp-general.c (omp_extract_for_data): Deal with tiling.
8250         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
8251         adjust OLF_DIM_BASE value.
8252         (struct omp_for_data): Add tiling field.
8253         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
8254         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
8255         for auto loops.  Remove default auto determining, moved to
8256         oacc_loop_fixed_partitions.
8257         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
8258         stmts, add e_mask field.
8259         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
8260         (oacc_thread_numbers): Use oacc_dim_call.
8261         (oacc_xform_tile): New.
8262         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
8263         (finish_oacc_loop): Adjust for ifns vector.
8264         (oacc_loop_discover_walk): Append loop abstraction sites to list,
8265         add case for GOACC_TILE fns.
8266         (oacc_loop_xform_loop): Delete.
8267         (oacc_loop_process): Iterate over call list directly, and add
8268         handling for GOACC_TILE fns.
8269         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
8270         dump partitioning.
8271         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
8272         vector partitioning to outer loops.  Assign 2 partitions to loops
8273         when available. Add TILE handling.
8274         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
8275         (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
8276         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
8277         * tree.c (omp_clause_num_ops): Adjust TILE ops.
8278         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
8280 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
8282         * configure.ac (ACX_BUGURL): Update.
8283         * configure: Regenerate.
8285 2017-02-09  Richard Biener  <rguenther@suse.de>
8287         PR tree-optimization/69823
8288         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8289         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
8291 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8293         * config/arc/arc-c.def: Add __NPS400__ definition.
8294         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
8295         (TARGET_NPS400): Define.
8297 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
8299         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
8300         file.
8301         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
8302         pointer, arch_info.
8303         (arc_cpu_types): Fill the arch_info field with a pointer into the
8304         arc_arch_types table.
8305         (arc_selected_cpu): Declare.
8306         * config/arc/arc.c (arc_selected_cpu): Make global.
8307         (arc_selected_arch): Delete.
8308         (arc_base_cpu): Delete.
8309         (arc_override_options): Remove references to deleted variables,
8310         update access to arch information.
8311         (ARC_OPT): Update access to arch information.
8312         (ARC_OPTX): Likewise.
8313         * config/arc/arc.h (arc_base_cpu): Remove declaration.
8314         (TARGET_ARC600): Update access to arch information.
8315         (TARGET_ARC601): Likewise.
8316         (TARGET_ARC700): Likewise.
8317         (TARGET_EM): Likewise.
8318         (TARGET_HS): Likewise.
8319         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
8320         information.
8322 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
8324         PR target/78604
8325         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
8326         condition/operands for integer GE/LE/GEU/LEU operations.
8328 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
8330         PR translation/79397
8331         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
8332         of AltiVec.
8334 2017-02-08  Martin Jambor  <mjambor@suse.cz>
8336         PR ipa/79375
8337         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
8338         whether allocation happened.
8339         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
8340         nothing was allocated.
8342 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
8344         PR tree-optimization/79408
8345         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
8346         constant, but SSA_NAME with a known integer range, use the minimum
8347         of that range instead of op1 to determine if modulo can be replaced
8348         with its first operand.
8350 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8352         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
8354 2017-02-08  Richard Biener  <rguenther@suse.de>
8356         PR tree-optimization/71824
8357         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8358         Check all loops contained in the merged region.
8360 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8362         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
8364 2017-02-07  Andrew Pinski  <apinski@cavium.com>
8366         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
8367         (thunderxt88): Likewise.
8368         (thunderxt81): Disable LSE and change v8.1 to v8.
8369         (thunderxt83): Likewise.
8371 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8372             Richard Biener  <rguenther@suse.de>
8374         PR middle-end/79399
8375         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
8376         type from int to size_t.
8377         * ira-costs.c (struct_costs_size): Change type from int to size_t.
8379 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
8381         PR rtl-optimization/79386
8382         * cprop.c (bypass_conditional_jumps): Initialize
8383         bypass_last_basic_block already before splitting bbs after
8384         unconditional traps...
8385         (bypass_conditional_jumps): ... rather than here.
8387         PR target/79299
8388         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
8389         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
8390         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
8391         fix -masm=intel patterns.
8393 2017-02-07  Richard Biener  <rguenther@suse.de>
8395         PR tree-optimization/79256
8396         PR middle-end/79278
8397         * builtins.c (get_object_alignment_2): Use min_align_of_type
8398         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
8399         and ADJUST_FIELD_ALIGN.
8401         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
8402         type parameter.
8403         * doc/tm.texi: Regenerate.
8404         * stor-layout.c (layout_decl): Adjust.
8405         (update_alignment_for_field): Likewise.
8406         (place_field): Likewise.
8407         (min_align_of_type): Likewise.
8408         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
8409         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
8410         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
8411         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
8412         * config/frv/frv.c (frv_adjust_field_align): Likewise.
8413         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
8414         * config/i386/i386.c (x86_field_alignment): Likewise.
8415         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8416         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
8417         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
8418         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8419         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
8420         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
8421          Likewise.
8423         Revert
8424         2017-01-30  Richard Biener  <rguenther@suse.de>
8426         PR tree-optimization/79256
8427         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
8428         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
8429         alignment on TYPE.
8431 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
8433         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
8434         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
8435         builtins to SImode and emit a zero-extend, if necessary.
8437 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8439         * docs/invoke.texi (RISC-V Options): Alphabetize.
8441 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8443         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
8444         options.
8446 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
8448         * config/riscv/riscv.c: New file.
8449         * gcc/common/config/riscv/riscv-common.c: Likewise.
8450         * config.gcc: Likewise.
8451         * config/riscv/constraints.md: Likewise.
8452         * config/riscv/elf.h: Likewise.
8453         * config/riscv/generic.md: Likewise.
8454         * config/riscv/linux.h: Likewise.
8455         * config/riscv/multilib-generator: Likewise.
8456         * config/riscv/peephole.md: Likewise.
8457         * config/riscv/pic.md: Likewise.
8458         * config/riscv/predicates.md: Likewise.
8459         * config/riscv/riscv-builtins.c: Likewise.
8460         * config/riscv/riscv-c.c: Likewise.
8461         * config/riscv/riscv-ftypes.def: Likewise.
8462         * config/riscv/riscv-modes.def: Likewise.
8463         * config/riscv/riscv-opts.h: Likewise.
8464         * config/riscv/riscv-protos.h: Likewise.
8465         * config/riscv/riscv.h: Likewise.
8466         * config/riscv/riscv.md: Likewise.
8467         * config/riscv/riscv.opt: Likewise.
8468         * config/riscv/sync.md: Likewise.
8469         * config/riscv/t-elf-multilib: Likewise.
8470         * config/riscv/t-linux: Likewise.
8471         * config/riscv/t-linux-multilib: Likewise.
8472         * config/riscv/t-riscv: Likewise.
8473         * configure.ac: Likewise.
8474         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
8475         Waterman as RISC-V maintainers.
8476         * doc/install.texi: Add RISC-V entries.
8477         * doc/invoke.texi: Add RISC-V options section.
8478         * doc/md.texi: Add RISC-V constraints section.
8479         * configure: Regenerated.
8481 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8483         PR target/66144
8484         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
8485         false values to be constant vectors with all 0 or all 1 bits set.
8486         (vcondu<mode><mode>): Likewise.
8487         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
8488         predicate.
8489         (fpmask_comparison_operator): Update comment.
8490         (vecint_comparison_operator): New predicate.
8491         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
8492         vector conditionals when the true and false values are constant
8493         vectors with all 0 bits or all 1 bits set.
8495 2017-02-06  Martin Sebor  <msebor@redhat.com>
8497         PR  tree-optimization/79376
8498         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
8500 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
8502         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
8503         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
8504         to simplify split condition.
8506 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
8508         * omp-expand.c (oxpand_omp_atomic_fetch_op,
8509         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
8510         false.
8512 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
8514         PR rtl-optimization/68664
8515         * target.def (can_speculate_insn): New hook.
8516         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
8517         * doc/tm.texi: Regenerate.
8518         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
8519         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
8520         (rs6000_sched_can_speculate_insn): New function.
8522 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
8524         PR tree-optimization/79284
8525         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
8526         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
8527         vectorizable_mask_load_store, vectorizable_operation,
8528         vect_is_simple_cond, get_same_sized_vectype): Use it instead
8529         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
8530         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
8531         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
8532         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
8533         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
8534         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
8535         is_gimple_assign (stmt).  Replace another such test with
8536         is_gimple_assign (stmt).
8538 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
8540         PR target/78883
8541         * config/avr/avr.c (rtl-iter.h): Include it.
8542         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
8543         (avr_legitimate_combined_insn): ...and implementation.
8545 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8547         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
8548         * config/s390/s390.c (s390_const_operand_ok)
8549         (s390_canonicalize_comparison, s390_extract_part)
8550         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
8551         (s390_contiguous_bitmask_p, s390_rtx_costs)
8552         (legitimize_pic_address): Likewise.
8553         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
8554         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
8555         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
8556         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
8557         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
8559 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
8561         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
8562         REGNO($0) == REGNO($1).
8564 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8566         * config/s390/linux.h(SIZE_TYPE): Add comment.
8568 2017-02-06  Julian Brown  <julian@codesourcery.com>
8569             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
8570             Virendra Pathak  <virendra.pathak@broadcom.com>
8572         * config/aarch64/aarch64-cores.def: Change the scheduler
8573         to Thunderx2t99.
8574         * config/aarch64/aarch64.md: Include thunderx2t99.md.
8575         * config/aarch64/thunderx2t99.md: New file.
8577 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
8579         * doc/standards.texi (Go Language): Update link to language
8580         standard.
8582 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
8584         * tree-eh.c (lower_resx): Sanitize profile.
8585         (cleanup_empty_eh_move_lp): Likewise.
8587 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
8589         PR tree-ssa/79347
8590         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
8591         ELSE_PROB.
8592         * cfgloopmanip.h (loop_version): Update prototype.
8593         * modulo-sched.c (sms_schedule): Update call of loop_version.
8594         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
8595         * tree-parloops.c (gen_parallel_loop): Likewise.
8596         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
8597         * tree-ssa-loop-split.c (split_loop): Likewise.
8598         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
8599         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
8601 2017-02-05  Martin Liska  <mliska@suse.cz>
8603         PR bootstrap/78985
8604         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
8605         variable to NULL.
8606         (print_operand_address): Initialize a struct to zero.
8608 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
8610         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
8611         garbage collector only in textual form.
8613 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
8614         
8615         * doc/extend.texi (x86 specific memory model extensions for
8616         transactional memory): Simplify a phrase.
8618 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
8620         PR target/79353
8621         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
8622         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
8623         (atomic_storedi_1): Likewise.
8625 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
8627         PR tree-optimization/79338
8628         * tree-parloops.c (gather_scalar_reductions): Don't call
8629         vect_analyze_loop_form for loop->inner before destroying loop's
8630         loop_vinfo.
8632 2017-02-03  Martin Sebor  <msebor@redhat.com>
8634         PR tree-optimization/79327
8635         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
8636         when precision has resulted in leading zeros.
8637         (format_integer): Adjust the likely counter to assume an unknown
8638         argument that may be zero is non-zero.
8640 2017-02-03  Jason Merrill  <jason@redhat.com>
8642         PR c++/78689
8643         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
8644         avoid copying non-taken branch.
8646 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
8648         PR tree-optimization/79340
8649         * tree-vect-loop.c (vectorizable_reduction): Release
8650         vec_defs elements after safe_splicing them into other vectors.
8651         Formatting fixes.
8653         PR tree-optimization/79327
8654         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
8655         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
8656         dirtype.
8657         (format_integer): Use wide_int_to_tree instead of build_int_cst
8658         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
8659         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
8660         of shortest and longest sequence.
8662 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
8664         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
8665         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
8667 2017-02-03  Walter Lee  <walt@tilera.com>
8669         PR target/78862
8670         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
8671         after initial stackframe link reg save.
8672         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
8674 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
8676         PR target/79354
8677         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
8678         wu for stxssp alternative.
8680 2017-02-03  Martin Sebor  <msebor@redhat.com>
8682         PR tree-optimization/79352
8683         * gimple-fold.c (get_range_strlen): Add argument.
8684         (get_range_strlen): Change return type to bool.
8685         (get_maxval_strlen): Pass in a dummy argument.
8686         * gimple-fold.h (get_range_strlen): Change return type to bool.
8687         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
8688         * tree.h (array_at_struct_end_p): Add argument.
8689         * tree.c (array_at_struct_end_p): Handle it.
8691 2017-02-03  Martin Liska  <mliska@suse.cz>
8693         PR lto/66295
8694         * multiple_target.c (create_dispatcher_calls): Redirect edge
8695         from a caller of a dispatcher.
8696         (expand_target_clones): Make the clones local.
8697         (ipa_target_clone): Do both target clones and resolvers.
8698         (ipa_dispatcher_calls): Remove the pass.
8699         (pass_dispatcher_calls::gate): Likewise.
8700         (make_pass_dispatcher_calls): Likewise.
8701         * passes.def (pass_target_clone): Put as very first IPA early
8702         pass.
8704 2017-02-03  Martin Liska  <mliska@suse.cz>
8706         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
8707         in case of a function with ifunc attribute.
8709 2017-02-03  Martin Liska  <mliska@suse.cz>
8711         * cgraph.c (cgraph_node::dump): Dump function version info.
8712         * symtab.c (symtab_node::dump_base): Add missing new line.
8714 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
8716         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
8717         (ifcombine_ifandif): Use it.
8719 2017-02-03  Martin Liska  <mliska@suse.cz>
8721         * doc/invoke.texi: Document default value for
8722         use-after-scope-direct-emission-threshold.
8724 2017-02-03  Martin Liska  <mliska@suse.cz>
8726         PR tree-optimization/79339
8727         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
8728         (format_floating): Likewise.
8730 2017-02-03  Martin Liska  <mliska@suse.cz>
8732         PR ipa/79337
8733         * ipa-prop.c (ipa_node_params_t::insert): Remove current
8734         implementation.
8735         (ipa_node_params_t::remove): Likewise.
8736         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
8737         initialization from removed ipa_node_params_t::insert.
8738         (ipa_node_params::~ipa_node_params): Move from removed
8739         ipa_node_params_t::release.
8740         * symbol-summary.h (symbol_summary::m_released): New member.
8741         Do not release a summary twice.  Do not allow to call finalizer
8742         for types of a summary that live in GGC memory.
8744 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
8746         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
8747         cmp_branch fusion.
8749 2017-02-02  Martin Sebor  <msebor@redhat.com>
8751         PR middle-end/79275
8752         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
8753         (format_string): Tighten up the range of output for non-constant
8754         strings and correct the expected range for wide non-constant strings.
8756 2017-02-02  Martin Sebor  <msebor@redhat.com>
8758         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
8760         PR middle-end/32003
8761         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
8762         index.
8763         (-fdump-tree-@var): Add to index and document how to come up
8764         with pass-specific option and dump file names.
8765         (-fdump-passes): Clarify where to look for output.
8767 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
8769         PR middle-end/77445
8770         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
8771         statistics of the analyzed path; allow threading for speed when
8772         any of BBs along the path are optimized for speed.
8774 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
8776         PR middle-end/78468
8777         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
8778         settings of the virtual registers.
8780         Revert again
8781         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8783         * explow.c (get_dynamic_stack_size): Take known alignment of stack
8784         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
8785         needed.
8787 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8789         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
8790         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
8792 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8794         * config/s390/s390.md: Add missing comments with the expanded
8795         mnemonics.
8796         * config/s390/vector.md: Likewise.
8797         * config/s390/vx-builtins.md: Likewise.
8799 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
8801         PR target/79197
8802         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
8803         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
8804         conditions on a single line.
8806 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8808         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
8809         __S390_VX__ to __VX__.
8811 2017-02-01  Andrew Pinski  <apinski@cavium.com>
8813         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
8814         stmt_info to record_stmt_cost.
8815         (vect_get_known_peeling_cost): Pass stmt_info if known to
8816         record_stmt_cost.
8817         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
8818         cpu_vector_cost field into
8819         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
8820         field into vec_int_stmt_cost and vec_fp_stmt_cost.
8821         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
8822         splitting of scalar_stmt_cost and vec_stmt_cost.
8823         (thunderx_vector_cost): Likewise.
8824         (cortexa57_vector_cost): LIkewise.
8825         (exynosm1_vector_cost): Likewise.
8826         (xgene1_vector_cost): Likewise.
8827         (thunderx2t99_vector_cost): Improve after the splitting of the two
8828         fields.
8829         (aarch64_builtin_vectorization_cost): Update for the splitting of
8830         scalar_stmt_cost and vec_stmt_cost.
8832 2017-02-01  Torvald Riegel  <triegel@redhat.com>
8833             Richard Henderson  <rth@redhat.com>
8835         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
8836         conditional on existance of a fast atomic load.
8837         * optabs-query.c (can_atomic_load_p): New function.
8838         * optabs-query.h (can_atomic_load_p): Declare it.
8839         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
8840         no fast atomic load is available for the particular size of access.
8841         (expand_atomic_compare_and_swap): Likewise.
8842         (expand_atomic_load): Likewise.
8843         (expand_atomic_store): Likewise.
8844         (expand_atomic_fetch_op): Likewise.
8845         * testsuite/lib/target-supports.exp
8846         (check_effective_target_sync_int_128): Remove x86 because it provides
8847         no fast atomic load.
8848         (check_effective_target_sync_int_128_runtime): Likewise.
8850 2017-02-01  Richard Biener  <rguenther@suse.de>
8852         * graphite.c: Include tree-vectorizer.h for find_loop_location.
8853         (graphite_transform_loops): Provide opt-info for optimized nests.
8854         * tree-parloop.c (parallelize_loops): Provide opt-info for
8855         parallelized loops.
8857 2017-02-01  Richard Biener  <rguenther@suse.de>
8859         PR middle-end/79315
8860         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
8861         was not set before.
8863 2017-02-01  Richard Biener  <rguenther@suse.de>
8865         PR tree-optimization/71824
8866         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8867         Verify the loops are valid in the merged SESE region.
8868         (scop_detection::can_represent_loop_1): Check analyzing the
8869         evolution of the number of iterations in the region succeeds.
8871 2017-01-31  Ian Lance Taylor  <iant@golang.org>
8873         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
8874         REG_ARGS_SIZE note to 32-bit push insns and call insn.
8876 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
8878         PR preprocessor/79210
8879         * input.c (get_substring_ranges_for_loc): Replace line_width
8880         assertion with error-handling.
8882 2017-01-31  Richard Biener  <rguenther@suse.de>
8884         PR tree-optimization/77318
8885         * graphite-sese-to-poly.c (extract_affine): Fix assert.
8886         (create_pw_aff_from_tree): Take loop parameter.
8887         (add_condition_to_pbb): Pass loop of the condition to
8888         create_pw_aff_from_tree.
8890 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
8892         * config/s390/s390.c (s390_asan_shadow_offset): New function.
8893         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
8895 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8897         PR target/78597
8898         PR target/79038
8899         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
8900         no longer used.
8901         (convert_int_to_float128): Likewise.
8902         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
8903         (convert_int_to_float128): Likewise.
8904         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
8905         (UNSPEC_IEEE128_CONVERT): Likewise.
8906         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
8907         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
8908         Use local variables for IBM extended format.
8909         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
8910         (fix_trunc<mode>si2_fprs): Likewise.
8911         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
8912         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
8913         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
8914         to know that we can now have integers of all sizes in vector
8915         registers.
8916         (fix<uns>_<mode>di2_hw): Likewise.
8917         (float<uns>_<mode>si2_hw): Likewise.
8918         (fix_<mode>si2_hw): Likewise.
8919         (fixuns_<mode>si2_hw): Likewise.
8920         (float<uns>_<mode>di2_hw): Likewise.
8921         (float_<mode>di2_hw): Likewise.
8922         (float_<mode>si2_hw): Likewise.
8923         (floatuns_<mode>di2_hw): Likewise.
8924         (floatuns_<mode>si2_hw): Likewise.
8925         (xscvqp<su>wz_<mode>): Delete, no longer used.
8926         (xscvqp<su>dz_<mode>): Likewise.
8927         (xscv<su>dqp_<mode>): Likewise.
8928         (ieee128_mfvsrd_64bit): Likewise.
8929         (ieee128_mfvsrd_32bit): Likewise.
8930         (ieee128_mfvsrwz): Likewise.
8931         (ieee128_mtvsrw): Likewise.
8932         (ieee128_mtvsrd_64bit): Likewise.
8933         (ieee128_mtvsrd_32bit): Likewise.
8935 2017-01-31  Martin Liska  <mliska@suse.cz>
8937         PR ipa/79285
8938         * ipa-prop.c (ipa_free_all_node_params): Call release method
8939         instead of ~sumbol_summary to not to trigger double times
8940         dtor of hash_map.
8942 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
8944         PR tree-optimization/71691
8945         * bitmap.h (class auto_bitmap): New.
8946         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
8947         is_maybe_undefined instead of ssa_undefined_value_p.
8949 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8951         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
8952         __S390_ARCH_LEVEL__ to __ARCH__.
8954 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
8956         PR tree-optimization/79267
8957         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
8958         if should_remove_lhs_p is true.
8960 2017-01-30  Alexandre Oliva <aoliva@redhat.com>
8962         PR debug/63238
8963         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
8964         (add_alignment_attribute): New.
8965         (base_type_die): Add alignment attribute.
8966         (subrange_type_die): Likewise.
8967         (modified_type_die): Likewise.
8968         (gen_array_type_die): Likewise.
8969         (gen_descr_array_type_die: Likewise.
8970         (gen_enumeration_type_die): Likewise.
8971         (gen_subprogram_die): Likewise.
8972         (gen_variable_die): Likewise.
8973         (gen_field_die): Likewise.
8974         (gen_ptr_to_mbr_type_die): Likewise.
8975         (gen_struct_or_union_type_die): Likewise.
8976         (gen_subroutine_type_die): Likewise.
8977         (gen_typedef_die): Likewise.
8978         (base_type_cmp): Compare alignment attribute.
8980 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
8982         PR target/79170
8983         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
8984         (setb_unsigned) New pattern for setb with CCUNS.
8985         * config/rs6000/rs6000.c (expand_block_compare): Use a different
8986         subfc./subfe sequence to avoid overflow problems.  Generate a
8987         shorter sequence with cmpld/setb for power9.
8988         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
8989         for generating subfc. instruction.
8990         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
8991         now uses this instruction.
8993 2017-01-30  Ian Lance Taylor  <iant@google.com>
8995         PR debug/79289
8996         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
8997         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
8999 2017-01-30  Martin Sebor  <msebor@redhat.com>
9001         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
9002         Move constant to the right of a relational operator.
9003         (get_mpfr_format_length, format_character, format_string): Ditto.
9004         (should_warn_p, maybe_warn): Same.
9006         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
9008 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9010         PR lto/79061
9011         * asan.c (get_translation_unit_decl): Remove function.
9012         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
9014 2017-01-30  Martin Liska  <mliska@suse.cz>
9016         PR gcov-profile/79259
9017         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
9018         -fprofile-generate.
9020 2017-01-30  Martin Liska  <mliska@suse.cz>
9022         PR bootstrap/78985
9023         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
9024         Initialize variables with NULL value.
9026 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
9028         PR target/79260
9029         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
9030         tm_p_file.
9031         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
9033 2017-01-30  Richard Biener  <rguenther@suse.de>
9035         PR tree-optimization/79276
9036         * tree-vrp.c (process_assert_insertions): Properly adjust common
9037         when removing a duplicate.
9039 2017-01-30  Richard Biener  <rguenther@suse.de>
9041         PR tree-optimization/79256
9042         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9043         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9044         alignment on TYPE.
9045         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
9047 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9049         PR target/79240
9050         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
9051         ("*r<noxa>sbg_<mode>_sll_bitmask")
9052         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
9053         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
9054         Use contiguous_bitmask_nowrap_operand.
9056 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9058         PR target/79268
9059         * config/rs6000/altivec.h (vec_xl): Revise #define.
9060         (vec_xst): Likewise.
9062 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
9064         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
9066 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
9068         PR rtl-optimization/79194
9069         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
9070         traps before call to bypass_conditional_jumps.
9072 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9074         PR tree-optimization/71374
9075         * lra-constraints.c (check_conflict_input_operands): New.
9076         (match_reload): Use it.
9078 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
9080         PR target/79131
9081         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
9082         account to calculate conflict_set.
9084 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
9086         PR rtl-optimization/78559
9087         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
9088         other_insn in combine.
9090 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
9092         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
9093         uint16_type_node for BT_UINT16.
9095 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
9097         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
9098         "RTL Tests" to menu.
9099         (GIMPLE Tests): New node.
9100         (RTL Tests): New node.
9102 2017-01-27  Richard Biener  <rguenther@suse.de>
9104         PR tree-optimization/79245
9105         * tree-loop-distribution.c (distribute_loop): Apply cost
9106         modeling also to detected patterns.
9108 2017-01-27  Richard Biener  <rguenther@suse.de>
9110         PR tree-optimization/71433
9111         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
9112         (compare_assert_loc): New function.
9113         (process_assert_insertions): Sort and optimize assert locations
9114         to remove duplicates and push down identical assertions on
9115         edges to their destination block.
9117 2017-01-27  Richard Biener  <rguenther@suse.de>
9119         PR tree-optimization/79244
9120         * tree-vrp.c (remove_range_assertions): Forcefully propagate
9121         out SSA names even if abnormal.
9123 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
9125         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
9126         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
9127         instead of MPFR_RNDN.
9129 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
9131         PR target/79239
9132         * arm.c (arm_option_override): Don't call build_target_option_node
9133         until after doing all option overrides.
9134         (arm_valid_target_attribute_tree): Likewise.
9136 2017-01-27  Martin Liska  <mliska@suse.cz>
9138         * doc/invoke.texi (-fprofile-arcs): Document profiling support
9139         for {cd}tors and C++ {cd}tors.
9141 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9143         * config/s390/s390.md ("*setmem_long_and")
9144         ("*setmem_long_and_31z"): Use zero_extend instead of and.
9146 2017-01-26  Martin Sebor  <msebor@redhat.com>
9148         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
9149         of precision.
9151 2017-01-26  Martin Sebor  <msebor@redhat.com>
9153         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
9154         HAVE_DFmode before using XFmode or DFmode.
9155         (parse_directive): Avoid using the z length modifier to avoid
9156         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
9158         PR middle-end/78703
9159         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
9160         to accept adjustment as an array.
9161         (get_int_range): New function.
9162         (struct directive): Make width and prec arrays.
9163         (directive::set_width, directive::set_precision): Call get_int_range.
9164         (format_integer, format_floating): Handle width and precision ranges.
9165         (format_string, parse_directive): Same.
9167 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9169         PR debug/79129
9170         * dwarf2out.c (generate_skeleton_bottom_up): For children with
9171         comdat_type_p set, just clone them, but keep the children in the
9172         original DIE.
9174         PR debug/78835
9175         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
9176         which have direct callers with -fvar-tracking-assignments enabled
9177         in the current TU.
9178         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
9179         inside of type units.
9181 2017-01-26  Martin Sebor  <msebor@redhat.com>
9183         PR middle-end/78703
9184         * gimple-ssa-sprintf.c (struct result_range): Add likely and
9185         unlikely counters.
9186         (struct format_result): Replace number_chars, number_chars_min,
9187         and number_chars_max with a single member of struct result_range.
9188         Remove bounded.
9189         (format_result::operator+=): Adjust.
9190         (struct fmtresult): Remove bounded.  Handle likely and unlikely
9191         counters.
9192         (fmtresult::adjust_for_width_or_precision): New function.
9193         (fmtresult:type_max_digits): New function.
9194         (bytes_remaining): Handle likely and unlikely counters.
9195         (min_bytes_remaining): Remove.
9196         (format_percent): Simplify.
9197         (format_integer, format_floating): Set likely and unlikely counters.
9198         (get_string_length, format_character, format_string): Same.
9199         (format_plain, should_warn_p): New function.
9200         (maybe_warn): Call should_warn_p.  Update diagnostic messages
9201         and handle those for all directives, including plain strings.
9202         (format_directive): Handle likely and unlikely counters.
9203         Remove unnecessary quoting from diagnostics.  Add an informational
9204         note.
9205         (add_bytes): Remove.
9206         (pass_sprintf_length::compute_format_length): Simplify.
9207         (try_substitute_return_value): Handle likely and unlikely counters.
9209 2017-01-26  Carl Love  <cel@us.ibm.com>
9211         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
9212         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
9214 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
9216         PR target/79131
9217         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
9218         endianess for subregs into account.
9219         * lra-constraints.c (lra_constraints): Do risky transformations
9220         always on the first iteration.
9221         * lra-lives.c (check_pseudos_live_through_calls): Add arg
9222         last_call_used_reg_set.
9223         (process_bb_lives): Define and use last_call_used_reg_set.
9224         * lra.c (lra): Always continue after lra_constraints on the first
9225         iteration.
9227 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
9229         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
9230         constant.
9231         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
9233 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9235         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
9236         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
9237         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
9238         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
9239         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
9240         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
9241         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
9242         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
9243         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
9245 2017-01-26  Marek Polacek  <polacek@redhat.com>
9247         PR c/79199
9248         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
9249         for the third operand.
9251 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9253         PR middle-end/79236
9254         * omp-low.c (struct omp_context): Add simt_stmt field.
9255         (scan_omp_for): Return omp_context *.
9256         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
9257         context to the _simt_ SIMD stmt.
9258         (lower_omp_for): For combined SIMD with sibling _simt_
9259         SIMD, make sure to use the same decls in _looptemp_
9260         clauses as in the sibling.
9262 2017-01-26  David Sherwood  <david.sherwood@arm.com>
9264         PR middle-end/79212
9265         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
9266         all contexts.
9268 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
9270         PR target/70465
9271         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
9272         emit fld b; fld a; if possible.
9274         * brig-builtins.def: Update copyright years.
9275         * config/arm/arm_acle_builtins.def: Update copyright years.
9277 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
9279         PR target/79179
9280         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
9281         constraint instead of o for the stxsd instruction.
9283 2017-01-25  Carl Love  <cel@us.ibm.com>
9285         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
9286         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
9288 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
9290         * doc/invoke.texi (C++ Dialect Options): Fix typo.
9292 2017-01-25  Richard Biener  <rguenther@suse.de>
9294         PR tree-optimization/69264
9295         * target.def (vector_alignment_reachable): Improve documentation.
9296         * doc/tm.texi: Regenerate.
9297         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
9298         and add a comment.
9299         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
9300         earlier changes with respect to TYPE_USER_ALIGN.
9301         (vector_alignment_reachable_p): Likewise.  Improve dumping.
9303 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9305         PR target/79145
9306         * config/arm/arm.md (xordi3): Force constant operand into a register
9307         for TARGET_IWMMXT.
9309 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9311         * doc/invoke.texi (-fstore-merging): Correct default optimization
9312         levels at which it is enabled.
9313         (-O): Move -fstore-merging from list to...
9314         (-O2): ... Here.
9316 2017-01-25  Richard Biener  <rguenther@suse.de>
9318         PR debug/78363
9319         * omp-expand.c: Include debug.h.
9320         (expand_omp_taskreg): Make sure to generate early debug before
9321         outlining anything from a function.
9322         (expand_omp_target): Likewise.
9323         (grid_expand_target_grid_body): Likewise.
9325 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
9327         PR lto/79061
9328         * asan.c (get_translation_unit_decl): New function.
9329         (asan_add_global): Extract modules file name from globals
9330         TRANSLATION_UNIT_DECL name.
9332 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
9334         PR target/77439
9335         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
9336         for long calls with APCS frame and VFP.
9338 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
9340         * cfg.c (original_copy_tables_initialized_p): New function.
9341         * cfg.h (original_copy_tables_initialized_p): New decl.
9342         * cfgrtl.c (relink_block_chain): Guard the call to
9343         free_original_copy_tables with a call to
9344         original_copy_tables_initialized_p.
9345         * cgraph.h (symtab_node::native_rtl_p): New decl.
9346         * cgraphunit.c (symtab_node::native_rtl_p): New function.
9347         (symtab_node::needed_p): Don't assert for early assembly output
9348         for __RTL functions.
9349         (cgraph_node::finalize_function): Set "force_output" for __RTL
9350         functions.
9351         (cgraph_node::analyze): Bail out early for __RTL functions.
9352         (analyze_functions): Update assertion to support __RTL functions.
9353         (cgraph_node::expand): Bail out early for __RTL functions.
9354         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
9355         __RTL functions.
9356         * function.h (struct function): Update comment for field
9357         "pass_startwith".
9358         * gimple-expr.c: Include "tree-pass.h".
9359         (gimple_has_body_p): Return false for __RTL functions.
9360         * Makefile.in (OBJS): Add run-rtl-passes.o.
9361         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
9362         accessor.
9363         (gcc::pass_manager::get_clean_slate): New accessor.
9364         * passes.c: Include "insn-addr.h".
9365         (should_skip_pass_p): Add logging.  Update logic for running
9366         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
9367         property-provider override so it is only done for gimple passes.
9368         Don't skip dfinit.
9369         (skip_pass): New function.
9370         (execute_one_pass): Call skip_pass when skipping passes.
9371         * read-md.c (md_reader::read_char): Support filtering
9372         the input to a subset of line numbers.
9373         (md_reader::md_reader): Initialize fields
9374         m_first_line and m_last_line.
9375         (md_reader::read_file_fragment): New function.
9376         * read-md.h (md_reader::read_file_fragment): New decl.
9377         (md_reader::m_first_line): New field.
9378         (md_reader::m_last_line): New field.
9379         * read-rtl-function.c (function_reader::create_function): Only
9380         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
9381         curr_properties.  Set DECL_INITIAL to a dummy block.
9382         (read_rtl_function_body_from_file_range): New function.
9383         * read-rtl-function.h (read_rtl_function_body_from_file_range):
9384         New decl.
9385         * run-rtl-passes.c: New file.
9386         * run-rtl-passes.h: New file.
9388 2017-01-24 Jeff Law  <law@redhat.com>
9390         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
9391         buffer size.
9393 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
9395         PR tree-optimization/79159
9396         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
9397         (record_nonwrapping_iv): Improve boundary using above function if no
9398         value range information.
9400 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
9401             Martin Jambor  <mjambor@suse.cz>
9403         * brig-builtins.def: New file.
9404         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
9405         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
9406         (DEF_HSAIL_SAT_BUILTIN): Likewise.
9407         (DEF_HSAIL_INTR_BUILTIN): Likewise.
9408         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
9409         * builtin-types.def (BT_INT8): New.
9410         (BT_INT16): Likewise.
9411         (BT_UINT8): Likewise.
9412         (BT_UINT16): Likewise.
9413         (BT_FN_ULONG): Likewise.
9414         (BT_FN_UINT_INT): Likewise.
9415         (BT_FN_UINT_ULONG): Likewise.
9416         (BT_FN_UINT_LONG): Likewise.
9417         (BT_FN_UINT_PTR): Likewise.
9418         (BT_FN_ULONG_PTR): Likewise.
9419         (BT_FN_INT8_FLOAT): Likewise.
9420         (BT_FN_INT16_FLOAT): Likewise.
9421         (BT_FN_UINT32_FLOAT): Likewise.
9422         (BT_FN_UINT16_FLOAT): Likewise.
9423         (BT_FN_UINT8_FLOAT): Likewise.
9424         (BT_FN_UINT64_FLOAT): Likewise.
9425         (BT_FN_UINT16_UINT32): Likewise.
9426         (BT_FN_UINT32_UINT16): Likewise.
9427         (BT_FN_UINT16_UINT16_UINT16): Likewise.
9428         (BT_FN_INT_PTR_INT): Likewise.
9429         (BT_FN_UINT_PTR_UINT): Likewise.
9430         (BT_FN_LONG_PTR_LONG): Likewise.
9431         (BT_FN_ULONG_PTR_ULONG): Likewise.
9432         (BT_FN_VOID_UINT64_UINT64): Likewise.
9433         (BT_FN_UINT8_UINT8_UINT8): Likewise.
9434         (BT_FN_INT8_INT8_INT8): Likewise.
9435         (BT_FN_INT16_INT16_INT16): Likewise.
9436         (BT_FN_INT_INT_INT): Likewise.
9437         (BT_FN_UINT_FLOAT_UINT): Likewise.
9438         (BT_FN_FLOAT_UINT_UINT): Likewise.
9439         (BT_FN_ULONG_UINT_UINT): Likewise.
9440         (BT_FN_ULONG_UINT_PTR): Likewise.
9441         (BT_FN_ULONG_ULONG_ULONG): Likewise.
9442         (BT_FN_UINT_UINT_UINT): Likewise.
9443         (BT_FN_VOID_UINT_PTR): Likewise.
9444         (BT_FN_UINT_UINT_PTR: Likewise.
9445         (BT_FN_UINT32_UINT64_PTR): Likewise.
9446         (BT_FN_INT_INT_UINT_UINT): Likewise.
9447         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
9448         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
9449         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
9450         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
9451         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
9452         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
9453         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
9454         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
9455         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
9456         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
9457         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
9458         * doc/frontends.texi: List BRIG FE.
9459         * doc/install.texi (Testing): Add BRIG tesring requirements.
9460         * doc/invoke.texi (Overall Options): Mention BRIG.
9461         * doc/standards.texi (Standards): Doucment BRIG HSA version.
9463 2017-01-24  Richard Biener  <rguenther@suse.de>
9465         PR translation/79208
9466         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
9468 2017-01-24  Martin Jambor  <mjambor@suse.cz>
9470         PR bootstrap/79198
9471         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
9472         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
9473         and known_contexts.
9475 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
9477         PR middle-end/79123
9478         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
9479         casts from signed to unsigned really don't have a range.
9481 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
9483         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
9484         GMP_RNDx for compatiblity.
9486 2017-01-24  Martin Liska  <mliska@suse.cz>
9488         PR bootstrap/79132
9489         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
9490         that would prevent us to call alloca with -1 as argument.
9492 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
9494         * dwarf2out.c (output_compilation_unit_header, output_file_names):
9495         Avoid -Wformat-security warning.
9497 2017-01-23  Andrew Pinski  <apinski@cavium.com>
9499         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
9500         cost table.
9502 2017-01-23  Martin Sebor  <msebor@redhat.com>
9504         PR middle-end/78703
9505         * gimple-ssa-sprintf.c (warn_level): New global.
9506         (format_integer): Use it here and throughout the rest of the file.
9507         Use the same switch to compute sign as base.
9508         (maybe_warn): New function.
9509         (format_directive): Factor out warnings into maybe_warn.
9510         Add debugging output.  Use warn_level.
9511         (add_bytes): Use warn_level.
9512         (pass_sprintf_length::compute_format_length): Add debugging output.
9513         (try_substitute_return_value): Same.
9514         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
9516         PR middle-end/78703
9517         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
9518         (struct fmtresult, format_integer, format_floating): Adjust.
9519         (fmtresult::fmtresult): Set max correctly in two argument ctor.
9520         (get_string_length, format_string,format_directive): Same.
9521         (pass_sprintf_length::compute_format_length): Same.
9522         (try_substitute_return_value): Simplify slightly.
9524         PR middle-end/78703
9525         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
9526         (fmtresult::operator+=): Outlined.
9527         (struct fmtresult): Add ctors.
9528         (struct conversion_spec): Rename...
9529         (struct directive): ...to this.  Add and remove data members.
9530         (directive::set_width, directive::set_precision): New functions.
9531         (format_percent): Use fmtresult ctor.
9532         (get_width_and_precision): Remove.
9533         (format_integer): Make naming changes.  Avoid computing width and
9534         precision.
9535         (format_floating): Same.  Adjust indentation.
9536         (format_character, format_none): New functions.
9537         (format_string): Moved character handling to format_character.
9538         (format_directive): Remove arguments, change return type.
9539         (parse_directive): New function.
9540         (pass_sprintf_length::compute_format_length): Move directive
9541         parsing to parse_directive.
9543 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
9545         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
9546         (assign_assembler_name_if_needed): ... this.
9547         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
9548         (assign_assembler_name_if_needed): ... this.
9549         (free_lang_data_in_cgraph): Adjust callers.
9550         * cgraphunit.c (cgraph_node::analyze): Likewise.
9551         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
9552         Likewise.
9554 2017-01-23  Richard Biener  <rguenther@suse.de>
9556         PR tree-optimization/79088
9557         PR tree-optimization/79188
9558         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
9559         resetting loop bounds after last path deletion.  Reset loop
9560         bounds of the target loop, make code match the comments.
9561         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
9562         Make sure loops need no fixups.
9564 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9566         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
9567         exponent support with double type for first argument.
9568         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
9569         type returned by __builtin_vec_extract_sig,
9570         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
9571         functions from "vector int" to "vector unsigned int" or from
9572         "vector long long int" to "vector unsigned long long int".
9573         Changed type returned by __builtin_vec_extract_exp,
9574         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
9575         functions from "vector int" to "vector unsigned int" or from
9576         "vector long long int" to "vector unsigned long long int".
9577         Changed return type of __builtin_vec_test_data_class,
9578         __builtin_vec_test_data_class_sp, and
9579         __builtin_vec_test_data_class_dp from "vector int" to
9580         "vector bool int" or from "vector long long int" to "vector bool
9581         long long int" and changed second argument type from "unsigned
9582         int" to "int".  Added new overloaded function forms "vector float
9583         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
9584         "vector float __builtin_vec_insert_exp_sp (vector float, vector
9585         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
9586         double, vector unsigned long long int)" and "vector double
9587         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
9588         long int)".  Changed return type of
9589         __builtin_scalar_test_data_class and
9590         __builtin_scalar_test_data_class_sp and
9591         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
9592         int" and changed second argument from "unsigned int" to "int".
9593         Changed type returned by __builtin_scalar_test_neg,
9594         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
9595         from "int" to "bool int".  Added new overloaded function form
9596         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
9597         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
9598         exponent double-precision with floating point first argument.
9599         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
9600         documentation of scalar_test_data_class, scalar_test_neg,
9601         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
9602         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
9603         vec_test_data_class built-in functions to reflect refinements in
9604         their type signatures.
9606 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
9608         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
9609         size of buf.
9610         (aarch64_elf_asm_destructor): Likewise.
9612 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
9614         PR rtl-optimization/78634
9615         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
9616         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
9617         * ifcvt.c (noce_try_cmove): Add missing cost check.
9619         PR rtl-optimization/71724
9620         * combine.c (if_then_else_cond): Look for situations where it is
9621         beneficial to undo the work of one of the recursive calls.
9623 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
9625         PR tree-optimization/70754
9626         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
9627         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
9628         combined stmt before it if not NULL.
9629         (combine_chains): Process refs reversely and compute dominance point
9630         for root ref.
9632 2017-01-23  Martin Liska  <mliska@suse.cz>
9634         PR tree-optimization/79196
9635         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
9636         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
9637         instead of memcmp.
9638         (strlen_optimize_stmt): Call the renamed function.
9640 2017-01-23  Michael Matz  <matz@suse.de>
9642         PR tree-optimization/78384
9643         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
9645 2017-01-23  Richard Biener  <rguenther@suse.de>
9647         PR tree-optimization/79186
9648         * tree-vrp.c (register_new_assert_for): Make sure we've seen
9649         both incoming edges before moving an assert.
9651 2017-01-23  Martin Jambor  <mjambor@suse.cz>
9653         * ipa-prop.c (load_from_param_1): Removed.
9654         (load_from_unmodified_param): Bits from load_from_param_1 put back
9655         here.
9656         (load_from_param): Removed.
9657         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
9658         with stmt.  Reverted back to use of load_from_unmodified_param.
9660 2017-01-23  Martin Jambor  <mjambor@suse.cz>
9662         PR ipa/79108
9663         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
9664         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
9665         field a pointer to garbage collected vector, mark lattices and
9666         ipcp_orig_node with GTY((skip)).
9667         (ipa_get_param_count): Adjust to descriptors being a pointer.
9668         (ipa_get_param): Likewise.
9669         (ipa_get_type): Likewise.
9670         (ipa_get_param_move_cost): Likewise.
9671         (ipa_set_param_used): Likewise.
9672         (ipa_get_controlled_uses): Likewise.
9673         (ipa_set_controlled_uses): Likewise.
9674         (ipa_is_param_used): Likewise.
9675         (ipa_node_params_t): Move into garbage collector.  New methods insert
9676         and remove.
9677         (ipa_node_params_sum): Annotate wth GTY(()).
9678         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
9679         garbage collected.
9680         (ipa_load_from_parm_agg): Adjust declaration.
9681         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
9682         * ipa-profile.c (ipa_profile): Likewise.
9683         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
9684         (ipa_populate_param_decls): Make descriptors parameter garbage
9685         collected.
9686         (ipa_dump_param): Adjust to descriptors being a pointer.
9687         (ipa_alloc_node_params): Likewise.
9688         (ipa_initialize_node_params): Likewise.
9689         (load_from_param_1): Make descriptors parameter garbage collected.
9690         (load_from_unmodified_param): Likewise.
9691         (load_from_param): Likewise.
9692         (ipa_load_from_parm_agg): Likewise.
9693         (ipa_node_params::~ipa_node_params): Removed.
9694         (ipa_free_all_node_params): Remove call to delete operator.
9695         (ipa_node_params_t::insert): New.
9696         (ipa_node_params_t::remove): Likewise.
9697         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
9698         copy known_csts and known_contexts vectors.
9699         (ipa_read_node_info): Adjust to descriptors being a pointer.
9700         (ipcp_modif_dom_walker): Make m_descriptors field garbage
9701         collected.
9702         (ipcp_transform_function): Make descriptors variable garbage
9703         collected.
9705 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
9707         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
9708         * config/i386/avx512dqintrin.h: Ditto.
9709         * config/i386/avx512fintrin.h: Ditto.
9710         * gcc/config/i386/i386.c: Handle new builtins.
9711         * config/i386/i386-builtin.def: Add new builtins.
9712         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
9713         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
9715 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
9716             Martin Liska  <mliska@suse.cz>
9718         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
9719         * asan.c (asan_expand_poison_ifn): Support stores and use
9720         appropriate ASAN report function.
9721         * internal-fn.c (expand_ASAN_POISON_USE): New function.
9722         * internal-fn.def (ASAN_POISON_USE): Declare.
9723         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
9724         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
9725         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
9726         ASAN_POISON calls w/o LHS.
9727         * tree-ssa.c (execute_update_addresses_taken): Create clobber
9728         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
9729         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
9730         * gimplify.c (asan_poison_variables): Add attribute
9731         use_after_scope_memory to variables that really needs to live
9732         in memory.
9733         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
9734         having the attribute.
9736 2017-01-23  Martin Liska  <mliska@suse.cz>
9738         * asan.c (create_asan_shadow_var): New function.
9739         (asan_expand_poison_ifn): Likewise.
9740         * asan.h (asan_expand_poison_ifn): New declaration.
9741         * internal-fn.c (expand_ASAN_POISON): Likewise.
9742         * internal-fn.def (ASAN_POISON): New builtin.
9743         * sanopt.c (pass_sanopt::execute): Expand
9744         asan_expand_poison_ifn.
9745         * tree-inline.c (copy_decl_for_dup_finish): Make function
9746         external.
9747         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
9748         * tree-ssa.c (is_asan_mark_p): New function.
9749         (execute_update_addresses_taken): Rewrite local variables
9750         (identified just by use-after-scope as addressable) into SSA.
9752 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
9754         * doc/install.texi (Specific): opensource.apple.com uses https
9755         now. Remove trailing slash.
9757 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
9759         * README.Portability: Remove note on an Irix compatibility issue.
9761 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
9763         * gcov.c (INCLUDE_ALGORITHM): Define.
9764         (INCLUDE_VECTOR): Define.
9765         No longer include <vector> and <algorithm> directly.
9767 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
9769         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
9770         to https.
9771         * doc/invoke.texi (Code Gen Options): Ditto.
9773 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
9775         PR lto/78407
9776         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
9778 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9780         rtl-optimization/79125
9781         * cprop.c (local_cprop_pass): Handle cases where we make an
9782         unconditional trap.
9784 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
9786         PR target/61729
9787         PR target/77850
9788         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
9789         read from, for big endian.
9791 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
9793         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
9794         register pauth builtins for LP64 only.
9796 2017-01-20  Marek Polacek  <polacek@redhat.com>
9798         PR c/79152
9799         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
9800         non-case labels.
9802 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
9804         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
9805         of safelen status.
9806         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
9807         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
9808         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
9810 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9812         PR target/71270
9813         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
9814         in big-endian mode when they are not a single duplicated value.
9816 2017-01-20  Richard Biener  <rguenther@suse.de>
9818         * BASE-VER: Bump to 7.0.1.
9820 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
9822         * omp-low.c (omplow_simd_context): New struct.  Use it...
9823         (lower_rec_simd_input_clauses): ...here and...
9824         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
9825         references to idx, lane, max_vf, is_simt.
9827 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
9829         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
9830         mcpu=nps400.
9832 2017-01-20  Martin Jambor  <mjambor@suse.cz>
9834         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
9835         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
9836         gt-hsa-common.h.
9837         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
9838         (GTFILES): Rename hsa.c to hsa-common.c.
9839         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
9840         * hsa-dump.c: Likewise.
9841         * hsa-gen.c: Likewise.
9842         * hsa-regalloc.c: Likewise.
9843         * ipa-hsa.c: Likewise.
9844         * omp-expand.c: Likewise.
9845         * omp-low.c: Likewise.
9846         * toplev.c: Likewise.
9848 2017-01-20  Marek Polacek  <polacek@redhat.com>
9850         PR c/64279
9851         * doc/invoke.texi: Document -Wduplicated-branches.
9852         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
9853         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
9854         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
9855         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
9856         return 0 only when not OEP_LEXICOGRAPHIC.
9857         (fold_build_cleanup_point_expr): Use the expression
9858         location when building CLEANUP_POINT_EXPR.
9859         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
9860         * tree.c (add_expr): Handle error_mark_node.
9862 2017-01-20  Martin Liska  <mliska@suse.cz>
9864         PR lto/69188
9865         * tree-profile.c (init_ic_make_global_vars): Do not call
9866         finalize_decl.
9867         (gimple_init_gcov_profiler): Likewise.
9869 2017-01-20  Martin Liska  <mliska@suse.cz>
9871         PR ipa/71190
9872         * cgraph.h (maybe_create_reference): Remove argument and
9873         update comment.
9874         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
9875         argument.
9876         * ipa-cp.c (create_specialized_node): Likewise.
9877         * symtab.c (symtab_node::maybe_create_reference): Handle
9878         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
9880 2017-01-20  Martin Liska  <mliska@suse.cz>
9882         * read-rtl-function.c (function_reader::create_function): Use
9883         build_decl instread of build_decl_stat.
9885 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
9887         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
9888         * config/i386/avx512dqintrin.h: Ditto.
9889         * config/i386/avx512fintrin.h: Ditto.
9890         * config/i386/i386-builtin-types.def: Add new types.
9891         * gcc/config/i386/i386.c: Handle new types.
9892         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
9893         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
9894         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
9895         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
9896         (__builtin_ia32_kshiftridi): New.
9897         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
9899 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
9901         PR target/78875
9902         PR target/79140
9903         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
9904         define to rs6000_init_stack_protect_guard.
9905         (rs6000_init_stack_protect_guard): New function.
9907 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
9908             Yunqiang Su  <yunqiang.su@imgtec.com>
9910         * config.gcc (supported_defaults): Add madd4.
9911         (with_madd4): Add validation.
9912         (all_defaults): Add madd4.
9913         * config/mips/mips.opt (mmadd4): New option.
9914         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
9915         mmadd4.
9916         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
9917         __mips_no_madd4.
9918         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
9919         (ISA_HAS_FUSED_MADD4): Likewise.
9920         * gcc/doc/invoke.texi (-mmadd4): Document the new option.
9921         * gcc/doc/install.texi (--with-madd4): Document the new option.
9923 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
9925         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
9926         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
9927         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
9928         (aarch64_init_pauth_hint_builtins): New.
9929         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
9930         (aarch64_expand_builtin): Expand new builtins.
9932 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
9934         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
9935         * combine-stack-adj.c (no_unhandled_cfa): Handle
9936         REG_CFA_TOGGLE_RA_MANGLE.
9937         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
9938         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
9939         info for return address signing.
9940         (aarch64_expand_epilogue): Likewise.
9942 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
9944         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
9945         * config/aarch64/aarch64-protos.h
9946         (aarch64_return_address_signing_enabled): New declaration.
9947         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
9948         New function.
9949         (aarch64_expand_prologue): Sign return address before it's pushed onto
9950         stack.
9951         (aarch64_expand_epilogue): Authenticate return address fetched from
9952         stack.
9953         (aarch64_override_options): Sanity check for ILP32 and ISA level.
9954         (aarch64_attributes): New function attributes for "sign-return-address".
9955         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
9956         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
9957         ("*do_return"): Generate combined instructions according to key index.
9958         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
9959         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
9960         iterators.
9961         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
9962         * config/aarch64/aarch64.opt (msign-return-address=): New.
9963         * doc/extend.texi (AArch64 Function Attributes): Documents
9964         "sign-return-address=".
9965         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
9967 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
9969         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
9970         overall option summary.
9972 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
9974         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
9975         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
9976         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
9977         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
9979 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
9981         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
9982         -mpower9-minmax by default for -mcpu=power9.
9983         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
9984         128-bit floating point.
9986 2017-01-20  Alan Modra  <amodra@gmail.com>
9988         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
9989         optimizing for size.
9991 2017-01-20  Alan Modra  <amodra@gmail.com>
9993         PR target/79144
9994         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
9995         for strcmp and strncmp from corresponding builtin decl.
9997 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
9999         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
10000         instead of i386/rtems-64.h.
10001         * config/i386/rtems-64.h: Remove.
10003 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
10005         PR target/78478
10006         Revert:
10007         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
10009         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
10011 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
10013         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
10014         Change int to HOST_WIDE_INT.
10015         * config/aarch64/aarch64-protos.h
10016         (aarch64_simd_gen_const_vector_dup): Likewise.
10017         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
10019 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
10021         * langhooks-def.h (lhd_type_for_size): New decl.
10022         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
10023         * langhooks.c (lhd_type_for_size): New function, taken from
10024         lto_type_for_size.
10026 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
10028         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
10029         define_bypass for CR latency.
10030         (power9-cracked-alu): Update bypass latency and remove power9-branch.
10031         (power9-alu2): Add define_bypass for CR latency.
10032         (power9-cmp): New.
10033         (power9-mul): Update insn latency.
10034         (power9-mul-compare): Update insn latency, bypass latency and remove
10035         power9-branch.
10037 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10039         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
10040         Delete.
10041         * config/aarch64/aarch64.md
10042         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
10043         aarch64_nopcrelative_literal_loads.
10044         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
10046 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
10048         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
10049         TARGET_LOONGSON_3A.
10050         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
10052 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
10054         PR target/78176
10055         * config.gcc (supported_defaults): Add lxc1-sxc1.
10056         (with_lxc1_sxc1): Add validation.
10057         (all_defaults): Add lxc1-sxc1.
10058         * config/mips/mips.opt (mlxc1-sxc1): New option.
10059         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10060         mlxc1-sxc1.
10061         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10062         __mips_no_lxc1_sxc1.
10063         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
10064         * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
10065         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
10067 2017-01-19  Richard Biener  <rguenther@suse.de>
10069         PR tree-optimization/72488
10070         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
10071         sure to restore SSA info.
10072         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
10074 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
10076         PR rtl-optimization/79121
10077         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
10078         of the inner type when shifting an extended value.
10080 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
10082         PR lto/78407
10083         * symtab.c (symtab_node::equal_address_to): Fix comparing of
10084         interposable aliases.
10086 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
10088         PR target/78516
10089         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
10090         Use the evmergelohi instruction.
10091         (mov_si<mode>_e500_subreg4_2_le): Likewise.
10092         (mov_sitf_e500_subreg8_2_be): Likewise.
10093         (mov_sitf_e500_subreg12_2_le): Likewise.
10094         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
10095         (mov_si<mode>_e500_subreg4_2_be): Likewise.
10096         (mov_sitf_e500_subreg8_2_le): Likewise.
10097         (mov_sitf_e500_subreg12_2_be): Likewise.
10099 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10101         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
10102         attribute from vecsimple to vecperm.
10103         (altivec_vbpermq2): Likewise.
10105 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10107         PR target/79040
10108         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
10110 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
10111         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
10112         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
10113         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
10114         case where N arg is SIZE_MAX.
10115         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
10116         (cmpstrsi): Add pattern.
10118 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
10120         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10121         __builtin_vec_revb builtins.
10122         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
10123         built-in functions to support generation of the ISA 3.0 XXBR<x>
10124         vector byte reverse instructions.
10125         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
10126         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
10127         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
10128         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
10129         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
10130         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
10131         (P9V_BUILTIN_VEC_REVB): Likewise.
10132         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
10133         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
10134         (p9_xxbrq_v16qi): Likewise.
10135         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
10136         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
10137         (p9_xxbrh_v8hi): Likewise.
10138         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
10139         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
10140         vec_revb built-in functions.
10142 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
10144         PR rtl-optimization/78952
10145         * config/i386/i386.md (any_extract): New code iterator.
10146         (*insvqi_2): Use any_extract for source operand.
10147         (*insvqi_3): Use any_shiftrt for source operand.
10149 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
10151         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
10152         New function.
10153         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
10155 2017-01-18  Matthias Klose  <doko@ubuntu.com>
10157         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
10159 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10161         * config/rs6000/altivec.h (vec_bperm): Change #define.
10162         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
10163         (altivec_vbpermq2): New define_insn.
10164         (altivec_vbpermd): Likewise.
10165         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
10166         function interface.
10167         (VBPERMD): Likewise.
10168         (VBPERM): New polymorphic function interface.
10169         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
10170         Add entries for P9V_BUILTIN_VEC_VBPERM.
10171         * doc/extend.texi: Add interfaces for vec_bperm.
10173 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10175         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
10176         first letter of error messages.
10177         (s390_resolve_overloaded_builtin): Likewise.
10178         * config/s390/s390.c (s390_expand_builtin): Likewise.
10179         (s390_invalid_arg_for_unprototyped_fn): Likewise.
10180         (s390_valid_target_attribute_inner_p): Likewise.
10181         * config/s390/s390.md ("tabort"): Likewise.
10183 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
10185         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
10186         (ISA_AVOID_DIV_HILO): New macro.
10187         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
10188         (ISA_HAS_DDIV): Likewise.
10190 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10192         * doc/invoke.texi (fabi-version): Correct number of occurrences.
10194 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10196         * doc/invoke.texi (fabi-version): Spelling fix.
10198 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10200         PR c++/70182
10201         * doc/invoke.texi (fabi-version): Mention mangling fix for
10202         operator names.
10204 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
10206         PR c++/77489
10207         * doc/invoke.texi (fabi-version): Document discriminator mangling.
10209 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
10211         PR target/78875
10212         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
10213         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
10214         the new options.
10215         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
10216         flexible settings.
10217         (stack_protect_test): Ditto.
10218         * config/rs6000/rs6000.opt (mstack-protector-guard=,
10219         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
10220         options.
10221         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
10222         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
10223         -mstack-protector-guard-offset=.
10224         (RS/6000 and PowerPC Options): Ditto.
10226 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
10228         * config/i386/i386.h (MASK_CLASS_P): New define.
10229         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
10230         there are no registers from different register sets also when
10231         mask registers are used.  Update function comment.
10232         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
10233         to (*k/*r) and (*k/*km) alternatives.
10235 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
10237         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
10238         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
10239         (EH_RETURN_HANDLER_RTX): New define.
10240         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
10241         Force frame pointer in EH return functions.
10242         (aarch64_expand_epilogue): Add barrier for eh_return.
10243         (aarch64_final_eh_return_addr): Remove.
10244         (aarch64_eh_return_handler_rtx): New function.
10245         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
10246         Remove.
10247         (aarch64_eh_return_handler_rtx): New prototype.
10249 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10251         * config/rs6000/altivec.h (vec_rlmi): New #define.
10252         (vec_vrlnm): Likewise.
10253         (vec_rlnm): Likewise.
10254         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
10255         (UNSPEC_VRLNM): Likewise.
10256         (VIlong): New mode iterator.
10257         (altivec_vrl<VI_char>mi): New define_insn.
10258         (altivec_vrl<VI_char>nm): Likewise.
10259         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
10260         function entry.
10261         (VRLDNM): Likewise.
10262         (RLNM): New polymorphic function entry.
10263         (VRLWMI): New monomorphic function entry.
10264         (VRLDMI): Likewise.
10265         (RLMI): New polymorphic function entry.
10266         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
10267         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
10268         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
10269         vec_vrlnm.
10271 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10273         PR debug/78839
10274         * dwarf2out.c (field_byte_offset): Restore the
10275         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
10276         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
10277         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
10278         of build2 + fold.
10280 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10282         PR ada/67205
10283         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
10285 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10287         PR debug/71669
10288         * dwarf2out.c (add_data_member_location_attribute): For constant
10289         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
10290         instead of DW_AT_data_member_location, DW_AT_bit_offset and
10291         DW_AT_byte_size attributes.
10293 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
10295         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
10296         after forcing to constant memory when the code model is medium.
10298 2017-01-17  Julia Koval  <julia.koval@intel.com>
10300         PR target/76731
10301         * config/i386/avx512fintrin.h
10302         (_mm512_i32gather_ps): Change __addr type to void const*.
10303         (_mm512_mask_i32gather_ps): Ditto.
10304         (_mm512_i32gather_pd): Ditto.
10305         (_mm512_mask_i32gather_pd): Ditto.
10306         (_mm512_i64gather_ps): Ditto.
10307         (_mm512_mask_i64gather_ps): Ditto.
10308         (_mm512_i64gather_pd): Ditto.
10309         (_mm512_mask_i64gather_pd): Ditto.
10310         (_mm512_i32gather_epi32): Ditto.
10311         (_mm512_mask_i32gather_epi32): Ditto.
10312         (_mm512_i32gather_epi64): Ditto.
10313         (_mm512_mask_i32gather_epi64): Ditto.
10314         (_mm512_i64gather_epi32): Ditto.
10315         (_mm512_mask_i64gather_epi32): Ditto.
10316         (_mm512_i64gather_epi64): Ditto.
10317         (_mm512_mask_i64gather_epi64): Ditto.
10318         (_mm512_i32scatter_ps): Change __addr type to void*.
10319         (_mm512_mask_i32scatter_ps): Ditto.
10320         (_mm512_i32scatter_pd): Ditto.
10321         (_mm512_mask_i32scatter_pd): Ditto.
10322         (_mm512_i64scatter_ps): Ditto.
10323         (_mm512_mask_i64scatter_ps): Ditto.
10324         (_mm512_i64scatter_pd): Ditto.
10325         (_mm512_mask_i64scatter_pd): Ditto.
10326         (_mm512_i32scatter_epi32): Ditto.
10327         (_mm512_mask_i32scatter_epi32): Ditto.
10328         (_mm512_i32scatter_epi64): Ditto.
10329         (_mm512_mask_i32scatter_epi64): Ditto.
10330         (_mm512_i64scatter_epi32): Ditto.
10331         (_mm512_mask_i64scatter_epi32): Ditto.
10332         (_mm512_i64scatter_epi64): Ditto.
10333         (_mm512_mask_i64scatter_epi64): Ditto.
10334         * config/i386/avx512pfintrin.h
10335         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
10336         (_mm512_mask_prefetch_i32gather_ps): Ditto.
10337         (_mm512_mask_prefetch_i64gather_pd): Ditto.
10338         (_mm512_mask_prefetch_i64gather_ps): Ditto.
10339         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
10340         (_mm512_prefetch_i32scatter_ps): Ditto.
10341         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
10342         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
10343         (_mm512_prefetch_i64scatter_pd): Ditto.
10344         (_mm512_prefetch_i64scatter_ps): Ditto.
10345         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
10346         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
10347         * config/i386/avx512vlintrin.h
10348         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
10349         (_mm_mmask_i32gather_ps): Ditto.
10350         (_mm256_mmask_i32gather_pd): Ditto.
10351         (_mm_mmask_i32gather_pd): Ditto.
10352         (_mm256_mmask_i64gather_ps): Ditto.
10353         (_mm_mmask_i64gather_ps): Ditto.
10354         (_mm256_mmask_i64gather_pd): Ditto.
10355         (_mm_mmask_i64gather_pd): Ditto.
10356         (_mm256_mmask_i32gather_epi32): Ditto.
10357         (_mm_mmask_i32gather_epi32): Ditto.
10358         (_mm256_mmask_i32gather_epi64): Ditto.
10359         (_mm_mmask_i32gather_epi64): Ditto.
10360         (_mm256_mmask_i64gather_epi32): Ditto.
10361         (_mm_mmask_i64gather_epi32): Ditto.
10362         (_mm256_mmask_i64gather_epi64): Ditto.
10363         (_mm_mmask_i64gather_epi64): Ditto.
10364         (_mm256_i32scatter_ps): Change __addr type to void*.
10365         (_mm256_mask_i32scatter_ps): Ditto.
10366         (_mm_i32scatter_ps): Ditto.
10367         (_mm_mask_i32scatter_ps): Ditto.
10368         (_mm256_i32scatter_pd): Ditto.
10369         (_mm256_mask_i32scatter_pd): Ditto.
10370         (_mm_i32scatter_pd): Ditto.
10371         (_mm_mask_i32scatter_pd): Ditto.
10372         (_mm256_i64scatter_ps): Ditto.
10373         (_mm256_mask_i64scatter_ps): Ditto.
10374         (_mm_i64scatter_ps): Ditto.
10375         (_mm_mask_i64scatter_ps): Ditto.
10376         (_mm256_i64scatter_pd): Ditto.
10377         (_mm256_mask_i64scatter_pd): Ditto.
10378         (_mm_i64scatter_pd): Ditto.
10379         (_mm_mask_i64scatter_pd): Ditto.
10380         (_mm256_i32scatter_epi32): Ditto.
10381         (_mm256_mask_i32scatter_epi32): Ditto.
10382         (_mm_i32scatter_epi32): Ditto.
10383         (_mm_mask_i32scatter_epi32): Ditto.
10384         (_mm256_i32scatter_epi64): Ditto.
10385         (_mm256_mask_i32scatter_epi64): Ditto.
10386         (_mm_i32scatter_epi64): Ditto.
10387         (_mm_mask_i32scatter_epi64): Ditto.
10388         (_mm256_i64scatter_epi32): Ditto.
10389         (_mm256_mask_i64scatter_epi32): Ditto.
10390         (_mm_i64scatter_epi32): Ditto.
10391         (_mm_mask_i64scatter_epi32): Ditto.
10392         (_mm256_i64scatter_epi64): Ditto.
10393         (_mm256_mask_i64scatter_epi64): Ditto.
10394         (_mm_i64scatter_epi64): Ditto.
10395         (_mm_mask_i64scatter_epi64): Ditto.
10396         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
10397         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
10398         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
10399         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
10400         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
10401         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
10402         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
10403         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
10404         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
10405         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
10406         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
10407         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
10408         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
10409         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
10410         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
10411         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
10412         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
10413         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
10414         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
10415         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
10416         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
10417         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
10418         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
10419         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
10420         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
10421         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
10422         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
10423         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
10424         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
10425         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
10426         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
10427         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
10428         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
10429         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
10430         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
10431         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
10432         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
10433         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
10434         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
10435         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
10436         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
10437         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
10438         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
10439         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
10440         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
10441         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
10442         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
10443         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
10444         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
10445         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
10446         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
10447         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
10448         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
10449         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
10450         definitions accordingly.
10452 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
10453             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
10455         PR target/79079
10456         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
10457         gen_lowpart.
10459 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
10461         PR target/79058
10462         * ira-conflicts.c (ira_build_conflicts): Update total conflict
10463         hard regs for inner regno.
10465 2017-01-17  Martin Liska  <mliska@suse.cz>
10467         PR ipa/71207
10468         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
10469         assumption and add comment.
10471 2017-01-17  Nathan Sidwell  <nathan@acm.org>
10473         * ipa-visibility.c (localize_node): New function, broken out of ...
10474         (function_and_variable_visibility): ... here. Call it.
10476 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
10478         PR middle-end/77445
10479         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
10480         correctly set frequency of oudgoing edge.
10481         (duplicate_thread_path): Fix profile updating.
10483 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
10485         PR other/79046
10486         * configure.ac: Add GCC_BASE_VER.
10487         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
10488         version from BASE-VER file.
10489         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
10490         (gcc.o): Depend on $(BASEVER).
10491         * common.opt (dumpfullversion): New option.
10492         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
10493         * doc/invoke.texi: Document -dumpfullversion.
10494         * doc/install.texi: Document --with-gcc-major-version-only.
10495         * configure: Regenerated.
10497 2017-01-17  Richard Biener  <rguenther@suse.de>
10499         PR tree-optimization/71433
10500         * tree-vrp.c (register_new_assert_for): Merge same asserts
10501         on all incoming edges.
10502         (process_assert_insertions_for): Handle insertions at the
10503         beginning of BBs.
10505 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
10507         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
10508         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
10510 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
10512         PR target/78633
10513         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
10514         RTL sharing.
10516 2017-01-17  Alan Modra  <amodra@gmail.com>
10518         PR target/79066
10519         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
10520         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
10521         symbolic stack limit when pic.
10523 2017-01-16  Martin Sebor  <msebor@redhat.com>
10525         PR tree-optimization/78608
10526         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
10528 2017-01-16  Jeff Law  <law@redhat.com>
10530         Revert:
10531         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
10532         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
10533         for several include directories that may be relative to sysroot.
10534         * config/i386/x-mingw32 (gplus_includedir): Define.
10535         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
10536         (native_system_includedir): Likewise.
10537         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
10538         override if TARGET_SYSTEM_ROOT is defined.
10539         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
10541         PR tree-optimization/79090
10542         PR tree-optimization/33562
10543         PR tree-optimization/61912
10544         PR tree-optimization/77485
10545         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
10546         and computed trims into the dump file.
10548 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
10550         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
10552 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
10554         PR c/79089
10555         * gimplify.c (gimplify_init_constructor): If want_value and
10556         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
10557         fix.
10559         PR target/79080
10560         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
10561         sequence.  Formatting fixes.
10562         (doloop_optimize): Formatting fixes.
10564         PR driver/49726
10565         * gcc.c (debug_level_greater_than_spec_func): New function.
10566         (static_spec_functions): Add debug-level-gt spec function.
10567         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
10568         !g0.
10569         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
10570         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
10571         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
10572         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
10573         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
10574         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
10576 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
10578         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
10579         QImode fixups to general and mask registers only.
10581 2017-01-16  Carl Love  <cel@us.ibm.com>
10583         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
10584         for built-in functions
10585         vector signed char vec_nabs (vector signed char)
10586         vector signed short vec_nabs (vector signed short)
10587         vector signed int vec_nabs (vector signed int)
10588         vector signed long long vec_nabs (vector signed long long)
10589         vector float vec_nabs (vector float)
10590         vector double vec_nabs (vector double)
10591         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
10592         and NABS overload.
10593         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
10594         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
10595         * doc/extend.texi: Update the documentation file for the new built-in
10596         functions.
10598 2017-01-16  Martin Sebor  <msebor@redhat.com>
10600         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
10601         message.
10603 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10605         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
10606         UNSPEC_VSX__XXSPLTD to require special splat handling.
10608 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
10610         PR bootstrap/78616
10611         * system.h: Poison strndup.
10613 2017-01-16  Alan Modra  <amodra@gmail.com>
10615         PR target/79098
10616         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
10617         use a switch.
10619 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
10621         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
10623 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
10625         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
10626         call recog here.  Assert that INSN_CODE (insn) is non-negative.
10628 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
10630         PR target/72749
10631         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
10632         fallthrough.
10633         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
10634         in the currently scheduled RTL fragment.
10636 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
10638         PR rtl-optimization/78751
10639         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
10640         give up.
10642 2017-01-14  Jeff Law  <law@redhat.com>
10644         PR tree-optimization/79090
10645         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
10646         variable length stores.
10647         (compute_trims): Delete dead assignment to *trim_tail.
10648         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
10649         zero length.
10651 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
10653         PR rtl-optimization/78626
10654         PR rtl-optimization/78727
10655         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
10656         of a block, and split such blocks after everything else is finished.
10658 2017-01-14  Alan Modra  <amodra@gmail.com>
10660         PR target/72749
10661         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
10662         target legitimate_combined_insn.
10663         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
10664         (rs6000_legitimate_combined_insn): New function.
10665         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
10666         all uses.
10667         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
10668         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
10669         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
10671 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
10673         * doc/frontends.texi (G++ and GCC): Remove references to Java.
10675 2017-01-13  Jeff Law  <law@redhat.com>
10677         PR tree-optimization/33562
10678         PR tree-optimization/61912
10679         PR tree-optimization/77485
10680         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
10681         a statement.
10682         (delete_dead_assignment): Likewise.
10683         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
10684         statement to delete_dead_call and delete_dead_assignment.
10686 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
10688         PR c/78304
10689         * substring-locations.c (format_warning_va): Strengthen case 1 so
10690         that both endpoints of the substring must be within the format
10691         range for just the substring to be printed.
10693 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
10695         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
10696         * config/i386/i386.c (ix86_target_string): Add missing options
10697         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
10698         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
10699         flags_other and ix86_target_other to flags2_other.  Display unknown
10700         isa2 options.
10701         (ix86_valid_target_attribute_inner_p): Add missing options and
10702         reorder options by implied ISAs, as in ix86_target_string.
10704 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
10706         * hash-table.h (hash_table::too_empty_p): New function.
10707         (hash_table::expand): Use it.
10708         (hash_table::traverse): Likewise.
10709         (hash_table::empty_slot): Use sizeof (value_type) instead of
10710         sizeof (PTR) to convert bytes to elements.  Shrink the table
10711         if the current size is excessive for the current number of
10712         elements.
10714 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
10716         * ira-costs.c (record_reg_classes): Break from the inner loop
10717         early once alt_fail is known to be true.  Update outer loop
10718         handling accordingly.
10720 2017-01-13  Jeff Law  <law@redhat.com>
10722         * tree-ssa-dse.c (decrement_count): New function.
10723         (increment_start_addr, maybe_trim_memstar_call): Likewise.
10724         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
10725         when we know the partially dead statement is a mem* function.
10727         PR tree-optimization/61912
10728         PR tree-optimization/77485
10729         * tree-ssa-dse.c: Include expr.h.
10730         (maybe_trim_constructor_store): New function.
10731         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
10733         PR tree-optimization/33562
10734         PR tree-optimization/61912
10735         PR tree-optimization/77485
10736         * doc/invoke.texi: Document new dse-max-object-size param.
10737         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
10738         * tree-ssa-dse.c: Include params.h.
10739         (dse_store_status): New enum.
10740         (initialize_ao_ref_for_dse): New, partially extracted from
10741         dse_optimize_stmt.
10742         (valid_ao_ref_for_dse, normalize_ref): New.
10743         (setup_live_bytes_from_ref, compute_trims): Likewise.
10744         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
10745         (maybe_trim_partially_dead_store): Likewise.
10746         (maybe_trim_complex_store): Likewise.
10747         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
10748         Track what bytes live from the original store.  Return tri-state
10749         for dead, partially dead or live.
10750         (dse_dom_walker): Add constructor, destructor and new private members.
10751         (delete_dead_call, delete_dead_assignment): New extracted from
10752         dse_optimize_stmt.
10753         (dse_optimize_stmt): Make a member of dse_dom_walker.
10754         Use initialize_ao_ref_for_dse.
10756         PR tree-optimization/33562
10757         PR tree-optimization/61912
10758         PR tree-optimization/77485
10759         * sbitmap.h (bitmap_count_bits): Prototype.
10760         (bitmap_clear_range, bitmap_set_range): Likewise.
10761         * sbitmap.c (bitmap_clear_range): New function.
10762         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
10764 2017-01-13  Martin Liska  <mliska@suse.cz>
10766         PR ipa/79043
10767         * function.c (set_cfun): Add new argument force.
10768         * function.h (set_cfun): Likewise.
10769         * ipa-inline-transform.c (inline_call): Use the function when
10770         strict alising from is dropped for function we inline to.
10772 2017-01-13  Richard Biener  <rguenther@suse.de>
10774         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
10775         for dumping GIMPLE INTEGER_CSTs.
10777 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10779         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
10780         to 201112L since C++17.
10782 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
10784         PR sanitizer/78887
10785         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
10786         if -fsanitize=kernel-address is present.
10788 2017-01-13  Richard Biener  <rguenther@suse.de>
10790         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
10791         as _Literal ( type ) number in case usual suffixes do not
10792         preserve all information.
10794 2017-01-13  Richard Biener  <rguenther@suse.de>
10796         PR tree-optimization/77283
10797         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
10798         and ssa-iterators.h.
10799         (is_feasible_trace): Implement a cost model based on joiner
10800         PHI node uses.
10802 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
10804         PR target/79004
10805         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
10806         char or short to __float128/_Float128 directly.
10808 2017-01-12  Martin Sebor  <msebor@redhat.com>
10810         to -Wformat-overflow.
10811         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
10812         (min_bytes_remaining): Same.
10813         (get_string_length): Same.
10814         (format_string): Same.
10815         (format_directive): Same.
10816         (add_bytes): Same.
10817         (pass_sprintf_length::handle_gimple_call): Same.
10819 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
10821         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
10822         info.nowrite calls with no lhs that can't throw.  Return bool
10823         whether gsi_remove has been called or not.
10824         (pass_sprintf_length::handle_gimple_call): Return bool whether
10825         try_substitute_return_value called gsi_remove.  Formatting fix.
10826         (pass_sprintf_length::execute): Don't use gsi_remove if
10827         handle_gimple_call returned true.
10829         PR bootstrap/79069
10830         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
10831         be removed due to side-effects, don't remove following barrier nor
10832         turn the successor edge into fallthru edge.
10834 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10836         PR target/79044
10837         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
10838         element-reversing loads and stores as not swappable.
10840 2017-01-12  Nathan Sidwell  <nathan@acm.org>
10841             Nicolai Stange  <nicstange@gmail.com>
10843         * combine.c (try_combine): Don't ignore result of overlap checking
10844         loop.  Combine overlap & asm check into single loop.
10846 2017-01-12  Richard Biener  <rguenther@suse.de>
10848         * tree-pretty-print.c (dump_generic_node): Provide -gimple
10849         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
10851 2017-01-12  Richard Biener  <rguenther@suse.de>
10853         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
10854         and TS_TARGET_OPTION directly derive from TS_BASE.
10855         * tree-core.h (tree_optimization_option): Derive from tree_base.
10856         (tree_target_option): Likewise.
10858 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
10860         * config/i386/i386.c (memory_address_length): Increase len
10861         only when rip_relative_addr_p returns false.
10863 2017-01-11  Julia Koval  <julia.koval@intel.com>
10865         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
10866         (OPTION_MASK_ISA_SGX_SET): New.
10867         (ix86_handle_option): Handle OPT_msgx.
10868         * config.gcc: Added sgxintrin.h.
10869         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
10870         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
10871         * config/i386/i386.c (ix86_target_string): Add -msgx.
10872         (PTA_SGX): New.
10873         (ix86_option_override_internal): Handle new options.
10874         (ix86_valid_target_attribute_inner_p): Add sgx.
10875         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
10876         * config/i386/i386.opt: Add msgx.
10877         * config/i386/sgxintrin.h: New file.
10878         * config/i386/x86intrin.h: Add sgxintrin.h.
10880 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
10882         PR c++/71537
10883         * fold-const.c (maybe_nonzero_address): Return 1 for function
10884         local objects.
10885         (tree_single_nonzero_warnv_p): Don't handle function local objects
10886         here.
10888         PR c++/72813
10889         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
10890         of c-header.
10892 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
10894         PR driver/78877
10895         * opts.c: Include "spellcheck.h"
10896         (struct string_fragment): New struct.
10897         (struct edit_distance_traits<const string_fragment &>): New
10898         struct.
10899         (get_closest_sanitizer_option): New function.
10900         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
10902 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
10904         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
10905         by 12.
10906         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
10907         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
10908         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
10909         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
10910         for initial die_offset if dwarf_split_debug_info.
10911         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
10912         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
10913         fields.
10914         (output_skeleton_debug_sections): Formatting fix.  Use
10915         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
10916         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
10918 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
10920         * config/arm/cortex-a53.md: Add bypasses for
10921         cortex_a53_r2f_cvt.
10922         (cortex_a53_r2f): Only use for transfers.
10923         (cortex_a53_f2r): Likewise.
10924         (cortex_a53_r2f_cvt): Add reservation for conversions.
10925         (cortex_a53_f2r_cvt): Likewise.
10927 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
10929         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
10930         to all inlined functions, change static to extern.
10932 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
10934         PR target/78253
10935         * config/arm/arm.c (legitimize_pic_address): Handle reference to
10936         weak symbol.
10937         (arm_assemble_integer): Likewise.
10939 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
10941         * config.gcc: Use new awk script to check CPU, FPU and architecture
10942         parameters for --with-... options.
10943         * config/arm/parsecpu.awk: New file
10944         * config/arm/arm-cpus.in: New file.
10945         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
10946         files.
10947         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
10948         files.
10949         * config/arm/t-arm: Update dependency rules.
10950         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
10951         of processing .def files.
10952         * config/arm/genopt.sh: Deleted.
10953         * config/arm/gentune.sh: Deleted.
10954         * config/arm/arm-cores.def: Deleted.
10955         * config/arm/arm-arches.def: Deleted.
10956         * config/arm/arm-fpus.def: Deleted.
10957         * config/arm/arm-tune.md: Regenerated.
10958         * config/arm/arm-tables.opt: Regenerated.
10959         * config/arm/arm-cpu.h: New generated file.
10960         * config/arm/arm-cpu-data.h: New generated file.
10961         * config/arm/arm-cpu-cdata.h: New generated file.
10963 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
10965         PR lto/79042
10966         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
10967         bit.
10968         (input_varpool_node): Unpack dynamically_initialized bit.
10970 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
10972         PR rtl-optimization/79032
10973         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
10974         the alignment of the adjusted memory reference against that of MODE,
10975         instead of the alignment of the original memory reference.
10977 2017-01-11  Martin Jambor  <mjambor@suse.cz>
10979         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
10980         test.
10981         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
10982         decorated functions.
10984 2017-01-11  Richard Biener  <rguenther@suse.de>
10986         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
10987         set range/nonnull info for PHI results.  Do not set it on
10988         stmts marked for removal.
10990 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
10992         * expr.c (store_field): In the bitfield case, fetch the return value
10993         from the registers before applying a single big-endian adjustment.
10994         Always do a final load for a BLKmode value not larger than a word.
10996 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
10998         PR c++/77949
10999         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11000         that we correctly handle column numbers greater than
11001         LINE_MAP_MAX_COLUMN_NUMBER.
11003 2017-01-10  Martin Sebor  <msebor@redhat.com>
11005         PR middle-end/78245
11006         * gimple-ssa-sprintf.c (get_destination_size): Call
11007         {init,fini}object_sizes.
11008         * tree-object-size.c (addr_object_size): Adjust.
11009         (pass_through_call): Adjust.
11010         (pass_object_sizes::execute): Adjust.
11011         * tree-object-size.h (fini_object_sizes): Declare.
11013 2017-01-10  Martin Sebor  <msebor@redhat.com>
11015         PR tree-optimization/78775
11016         * builtins.c (get_size_range): Move...
11017         * calls.c: ...to here.
11018         (alloc_max_size): Accept zero argument.
11019         (operand_signed_p): Remove.
11020         (maybe_warn_alloc_args_overflow): Call get_size_range.
11021         * calls.h (get_size_range): Declare.
11023 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
11025         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
11026         from TI's devices.csv file as of September 2016.
11027         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
11029 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
11031         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
11032         * doc/invoke.texi: Likewise.
11033         * doc/md.texi: Likewise.
11034         * doc/objc.texi: Likewise.
11036 2017-01-10  Joshua Conner  <joshconner@google.com>
11038         * config/arm/fuchsia-elf.h: New file.
11039         * config/fuchsia.h: New file.
11040         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
11041         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
11042         targets.
11043         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
11045 2016-01-10  Richard Biener  <rguenther@suse.de>
11047         PR tree-optimization/79034
11048         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11049         Propagate out degenerate PHIs in the joiner.
11051 2017-01-10  Martin Liska  <mliska@suse.cz>
11053         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
11054         (sort_congruence_classes_by_decl_uid): Likewise.
11055         (sort_congruence_class_groups_by_decl_uid): Likewise.
11056         (sem_item_optimizer::merge_classes): Sort class, groups in these
11057         classes and members in the groups by DECL_UID of declarations.
11058         This would make merge operations stable.
11060 2017-01-10  Martin Liska  <mliska@suse.cz>
11062         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
11063         usage of m_classes_vec.
11064         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
11065         (sem_item_optimizer::get_group_by_hash): Likewise.
11066         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
11067         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
11068         (sem_item_optimizer::verify_classes): Likewise.
11069         (sem_item_optimizer::process_cong_reduction): Likewise.
11070         (sem_item_optimizer::dump_cong_classes): Likewise.
11071         (sem_item_optimizer::merge_classes): Likewise.
11072         * ipa-icf.h (congruence_class_hash): Rename from
11073         congruence_class_group_hash.  Remove declaration of m_classes_vec.
11075 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
11077         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
11078         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
11079         * config.gcc: Add avx512vpopcntdqintrin.h.
11080         * config/i386/avx512vpopcntdqintrin.h: New.
11081         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
11082         * config/i386/i386-builtin-types.def: Add new types.
11083         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
11084         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
11085         __builtin_ia32_vpopcountq_v8di_mask): New.
11086         * config/i386/i386-c.c (ix86_target_macros_internal): Define
11087         __AVX512VPOPCNTDQ__.
11088         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
11089         (PTA_AVX512VPOPCNTDQ): Define.
11090         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
11091         TARGET_AVX512VPOPCNTDQ_P): Define.
11092         * config/i386/i386.opt: Add mavx512vpopcntdq.
11093         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
11094         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
11096 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11098         PR middle-end/77484
11099         * predict.def (PRED_CALL): Set to 67.
11101 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
11103         * expr.c (store_field): In the bitfield case, if the value comes from
11104         a function call and is of an aggregate type returned in registers, do
11105         not modify the field mode; extract the value in all cases if the mode
11106         is BLKmode and the size is not larger than a word.
11108 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
11110         PR target/71017
11111         * config/i386/cpuid.h: Fix undefined behavior.
11113 2017-01-04  Jeff Law  <law@redhat.com>
11115         PR tree-optimization/79007
11116         PR tree-optimization/67955
11117         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
11118         conservative for pt.null when flag_non_call_exceptions is on.
11120 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11122         PR translation/79019
11123         PR translation/79020
11124         * params.def (PARAM_INLINE_MIN_SPEEDUP,
11125         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
11126         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
11127         in descriptions.
11128         * config/avr/avr.opt (maccumulate-args): Likewise.
11129         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
11130         * common.opt (freport-bug): Likewise.
11131         * cif-code.def (CIF_FINAL_ERROR): Likewise.
11132         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
11133         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
11134         translatable string.
11135         * config/i386/i386.c (function_value_32): Likewise.
11136         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
11137         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
11138         Likewise.
11139         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
11140         * common/config/msp430/msp430-common.c (msp430_handle_option):
11141         Likewise.
11142         * symtab.c (symtab_node::verify_base): Likewise.
11143         * opts.c (set_debug_level): Likewise.
11144         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
11145         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11146         missing whitespace to translatable strings.
11147         * config/avr/avr.md (bswapsi2): Fix typo in comment.
11148         * config/sh/superh.h: Likewise.
11149         * config/i386/xopintrin.h: Likewise.
11150         * config/i386/znver1.md: Likewise.
11151         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
11152         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
11153         * double-int.h (struct double_int): Likewise.
11154         * double-int.c (div_and_round_double): Likewise.
11155         * wide-int.cc: Likewise.
11156         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
11157         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
11158         * cfgcleanup.c (crossjumps_occured): Renamed to ...
11159         (crossjumps_occurred): ... this.
11160         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
11161         Adjust all uses.
11163         PR tree-optimization/78899
11164         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
11165         returning bool return struct loop *, NULL for failure and the new
11166         loop on success.
11167         (versionable_outer_loop_p): Don't version outer loop if it has
11168         dont_vectorized bit set.
11169         (tree_if_conversion): When versioning outer loop, ensure
11170         tree_if_conversion is performed also on the inner loop of the
11171         non-vectorizable outer loop copy.
11172         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
11173         LOOP_VECTORIZED in inner loop of the scalar outer loop and
11174         prevent vectorization of it.
11175         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
11176         the outer loop vectorization of the non-scalar version is attempted
11177         before vectorization of the inner loop in scalar version.  If
11178         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
11179         vectorization of its inner loop.
11180         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
11181         has 2 inner loops, rename also on edges from bb whose single pred
11182         is outer_loop->header.  Fix typo in function comment.
11184 2017-01-09  Martin Sebor  <msebor@redhat.com>
11186         PR bootstrap/79033
11187         * asan.c (asan_emit_stack_protection): Increase local buffer size
11188         to avoid snprintf truncation warning.
11190 2017-01-09  Andrew Pinski  <apinski@cavium.com>
11192         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
11193         to reference thunderx2t99 for the tuning structure
11194         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
11195         Rename to ...
11196         (thunderx2t99_extra_costs): This.
11197         * config/aarch64/aarch64-tune.md: Regenerate.
11198         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
11199         (vulcan_addrcost_table): This.
11200         (vulcan_regmove_cost): Rename to ...
11201         (thunderx2t99_regmove_cost): This.
11202         (vulcan_vector_cost): Rename to ...
11203         (thunderx2t99_vector_cost): this.
11204         (vulcan_branch_cost): Rename to ...
11205         (thunderx2t99_branch_cost): This.
11206         (vulcan_tunings): Rename to ...
11207         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
11208         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
11210 2017-01-09  Martin Jambor  <mjambor@suse.cz>
11212         PR ipa/78365
11213         PR ipa/78599
11214         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
11215         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
11216         (propagate_vr_accross_jump_function): Use the above function for all
11217         value range computations for pass-through jump functions and type
11218         converasion from explicit value range values.
11219         (ipcp_propagate_stage): Do not attempt to deduce types of formal
11220         parameters from TYPE_ARG_TYPES.
11221         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
11222         (ipa_write_node_info): Stream type of the actual argument.
11223         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
11225 2017-01-09  Martin Liska  <mliska@suse.cz>
11227         PR pch/78970
11228         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
11229         (lookup_compiler): Do not show error message with have_E.
11231 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
11233         PR tree-optimization/78938
11234         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
11235         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
11236         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
11237         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
11238         fixes.
11240 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11242         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
11243         is const0_rtx.
11245 2017-01-09  Richard Biener  <rguenther@suse.de>
11247         PR tree-optimization/78997
11248         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
11249         name condition properly.
11251 2017-01-09  Richard Biener  <rguenther@suse.de>
11253         PR debug/79000
11254         * dwarf2out.c (is_cxx): New overload with context.
11255         (is_naming_typedef_decl): Use it.
11257 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11259         * invoke.texi (Option Summary): Correct spacing in option lists
11260         and add line breaks to fix over-long lines.
11262 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11264         PR middle-end/17660
11266         * extend.texi (Common Variable Attributes): Add xref to GCC
11267         Internals manual to explain mode attribute keywords.
11269 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
11271         PR other/16519
11272         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
11273         and Preprocessor Options.
11274         (Options for Linking): Document -pthread here....
11275         (RS/6000 and PowerPC Options): ...not here.
11276         (Solaris 2 Options): ...or here.
11277         * doc/cppopts.texi: Document -pthread.
11279 2017-01-08  Martin Sebor  <msebor@redhat.com>
11281         PR middle-end/77708
11282         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
11283         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
11284         New member functions.
11285         (format_directive): Used them.
11286         (add_bytes): Same.
11287         (pass_sprintf_length::handle_gimple_call): Same.
11288         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
11289         to avoid truncation for any argument.
11290         (extract_affine_mul): Same.
11291         * tree.c (get_file_function_name): Same.
11293 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11295         PR middle-end/77484
11296         * predict.def (PRED_INDIR_CALL): Set to 86.
11298 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11300         PR preprocessor/54124
11301         * doc/cppopts.texi: Reformat -d subtable to list the full name
11302         of the options.  Add cross-reference to the docs for the general
11303         compiler -d options.
11304         * doc/invoke.texi (Developer Options): Add cross-reference to the
11305         preprocessor-specific -d option documentation.
11307 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11309         PR preprocessor/13498
11310         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
11311         redudant material, and reflect new command-line options.
11312         (System Headers): Likewise.
11314 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11316         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
11317         -isystem, and -idirafter.  Copy-edit.
11318         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
11319         default for -ftrack-macro-expansion.  Delete obsolete and
11320         badly-formatted implementation details about -fdebug-cpp output.
11321         * doc/cppwarnopts.texi: Copy-edit.
11323 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
11325         PR c++/72803
11326         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11327         that the transition from a max line width >= 1<<10 to narrower
11328         lines works correctly.
11330 2017-01-07  Alexandre Oliva <aoliva@redhat.com>
11332         * doc/options.texi (PerFunction): New.
11333         * opt-functions.awk (switch_flags): Map both Optimization and
11334         PerFunction to CL_OPTIMIZATION.
11335         * opth-gen.awk: Test for PerFunction flag along with
11336         Optimization.
11337         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
11338         it only when the latter is present.  Skip those that don't in
11339         the hash function generator.
11340         * common.opt (fvar-tracking): Mark as PerFunction instead of
11341         Optimization.
11342         (fvar-tracking-assignments): Likewise.
11343         (fvar-tracking-assignments-toggle): Likewise.
11344         (fvar-tracking-uninit): Likewise.
11346 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
11348         PR translation/79018
11349         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
11350         the and store.
11352 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
11354         PR target/57583
11355         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
11356         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
11357         TARGET_LONG_JUMP_TABLE_OFFSETS.
11358         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
11359         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
11360         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
11361         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
11362         * config/m68k/m68k.md (tablejump expander): Likewise.
11363         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
11364         TARGET_LONG_JUMP_TABLE_OFFSETS.
11365         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
11366         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
11368 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11369             David Holsgrove <david.holsgrove@xilinx.com>
11371         * common/config/microblaze/microblaze-common.c
11372         (TARGET_EXCEPT_UNWIND_INFO): Remove.
11373         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
11374         New prototype.
11375         * config/microblaze/microblaze.c (microblaze_must_save_register)
11376         (microblaze_expand_epilogue, microblaze_return_addr): Handle
11377         calls_eh_return.
11378         (microblaze_eh_return): New function.
11379         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
11380         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
11381         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
11382         * config/microblaze/microblaze.md (eh_return): New pattern.
11384 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
11386         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
11387         GCC_DIAGNOSTIC_STRINGIFY): Define.
11389         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
11391 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11393         * config/arm/arm.md (<mcrr>): New.
11394         (<mrrc>): New.
11395         * config/arm/arm.c (arm_arch5te): New.
11396         (arm_option_override): Set arm_arch5te.
11397         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
11398         and mrrc2.
11399         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
11400         (arm_mcrr_qualifiers): ... this. New.
11401         (MRRC_QUALIFIERS): Define to...
11402         (arm_mrrc_qualifiers): ... this. New.
11403         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
11404         __arm_mrrc2): New.
11405         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
11406         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
11407         (MRRCI, mrrc, MRRC): New.
11408         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
11409         VUNSPEC_MRRC2): New.
11411 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11413         * config/arm/arm.md (<mcr>): New.
11414         (<mrc>): New.
11415         * config/arm/arm.c (arm_coproc_builtin_available): Add
11416         support for mcr, mrc, mcr2 and mrc2.
11417         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
11418         (arm_mcr_qualifiers): ... this. New.
11419         (MRC_QUALIFIERS): Define to ...
11420         (arm_mrc_qualifiers): ... this. New.
11421         (MCR_QUALIFIERS): Define to ...
11422         (arm_mcr_qualifiers): ... this. New.
11423         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
11424         __arm_mrc2): New.
11425         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
11426         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
11427         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
11428         VUNSPEC_MRC2): New.
11430 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11432         * config/arm/arm.md (*ldc): New.
11433         (*stc): New.
11434         (<ldc>): New.
11435         (<stc>): New.
11436         * config/arm/arm.c (arm_coproc_builtin_available): Add
11437         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
11438         (arm_coproc_ldc_stc_legitimate_address): New.
11439         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
11440         'qualifier_const_pointer'.
11441         (LDC_QUALIFIERS): Define to...
11442         (arm_ldc_qualifiers): ... this. New.
11443         (STC_QUALIFIERS): Define to...
11444         (arm_stc_qualifiers): ... this. New.
11445         * config/arm/arm-protos.h
11446         (arm_coproc_ldc_stc_legitimate_address): New.
11447         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
11448         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
11449         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
11450         stc2, stcl, stc2l): New.
11451         * config/arm/constraints.md (Uz): New.
11452         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
11453         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
11454         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
11455         VUNSPEC_STC2L): New.
11457 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11459         * config/arm/arm.md (<cdp>): New.
11460         * config/arm/arm.c (neon_const_bounds): Rename this ...
11461         (arm_const_bounds): ... this.
11462         (arm_coproc_builtin_available): New.
11463         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
11464         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
11465         (CDP_QUALIFIERS): Define to...
11466         (arm_cdp_qualifiers): ... this. New.
11467         (void_UP): Define.
11468         (arm_expand_builtin_args): Add case for 6 arguments.
11469         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
11470         (arm_const_bounds): ... this.
11471         (arm_coproc_builtin_available): New.
11472         * config/arm/arm_acle.h (__arm_cdp): New.
11473         (__arm_cdp2): New.
11474         * config/arm/arm_acle_builtins.def (cdp): New.
11475         (cdp2): New.
11476         * config/arm/iterators.md (CDPI,CDP,cdp): New.
11477         * config/arm/neon.md: Rename all 'neon_const_bounds' to
11478         'arm_const_bounds'.
11479         * config/arm/types.md (coproc): New.
11480         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
11481         * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
11482         * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
11483         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
11485 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11487         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
11488         (UBINOP_QUALIFIERS): New.
11489         (si_UP): Define.
11490         (acle_builtin_data): New. Change comment.
11491         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
11492         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
11493         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
11494         arm_acle_builtins.def.
11495         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
11496         (arm_init_acle_builtins): New.
11497         (CRC32_BUILTIN): Remove.
11498         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
11499         crc32cb, crc32ch and crc32cw.
11500         (arm_init_crc32_builtins): Remove.
11501         (arm_init_builtins): Use arm_init_acle_builtins rather
11502         than arm_init_crc32_builtins.
11503         (arm_expand_acle_builtin): New.
11504         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
11505         * config/arm/arm_acle_builtins.def: New.
11507 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
11509         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
11510         (arm_builtin_datum): ... this.
11511         (arm_init_neon_builtin): Rename to ...
11512         (arm_init_builtin): ... this. Add a new parameters PREFIX
11513         and USE_SIG_IN_NAME.
11514         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
11515         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
11516         'arm_builtin_datum'.
11517         (arm_init_vfp_builtins): Likewise.
11518         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
11519         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
11520         (arm_expand_neon_args): Rename to ...
11521         (arm_expand_builtin_args): ... this. Rename builtin_arg
11522         enum values and differentiate between ARG_BUILTIN_MEMORY
11523         and ARG_BUILTIN_NEON_MEMORY.
11524         (arm_expand_neon_builtin_1): Rename to ...
11525         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
11526         values, arm_expand_builtin_args and add bool parameter NEON.
11527         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
11528         (arm_expand_vfp_builtin): Likewise.
11529         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
11531 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11533         PR middle-end/77484
11534         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
11535         * predict.c (tree_estimate_probability_bb): Reverse direction of
11536         polymorphic call predictor.
11538 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
11540         * passes.c (execute_one_pass): Split out pass-skipping logic into...
11541         (determine_pass_name_match): ...this new function and...
11542         (should_skip_pass_p): ...this new function.
11544 2017-01-06  Nathan Sidwell  <nathan@acm.org>
11546         * ipa-visibility.c (function_and_variable_visibility): Reformat
11547         comments and long lines.  Remove extrneous if.
11548         * symtab.c (symtab_node::make_decl_local): Fix code format.
11549         (symtab_node::set_section_for_node): Fix comment typo.
11551 2017-01-06  Martin Liska  <mliska@suse.cz>
11553         PR bootstrap/79003
11554         * lra-constraints.c: Rename invariant to lra_invariant.
11555         * predict.c (set_even_probabilities): Initialize e to NULL.
11557 2017-01-05  Martin Sebor  <msebor@redhat.com>
11559         PR tree-optimization/78910
11560         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
11561         (format_integer): Correct off-by-one error in the handling
11562         of precision with negative numbers in signed conversions..
11564 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11566         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
11568 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
11570         PR tree-optimization/71016
11571         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
11572         factor_out_conditional_conversion.  Formatting fix.
11573         (factor_out_conditional_conversion): Add cond_stmt argument.
11574         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
11575         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
11576         Formatting fix.
11578 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
11580         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
11581         read-rtl-function.o, and selftest-rtl.o.
11582         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
11583         (selftest::aarch64_test_loading_full_dump): New function.
11584         (selftest::aarch64_run_selftests): New function.
11585         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
11586         selftest::aarch64_run_selftests.
11587         * config/i386/i386.c
11588         (selftest::ix86_test_loading_dump_fragment_1): New function.
11589         (selftest::ix86_test_loading_call_insn): New function.
11590         (selftest::ix86_test_loading_full_dump): New function.
11591         (selftest::ix86_test_loading_unspec): New function.
11592         (selftest::ix86_run_selftests): Call the new functions.
11593         * emit-rtl.c (maybe_set_max_label_num): New function.
11594         * emit-rtl.h (maybe_set_max_label_num): New decl.
11595         * function.c (instantiate_decls): Guard call to
11596         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
11597         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
11598         "static".
11599         * gensupport.c (gen_reader::gen_reader): Pass "false"
11600         for new "compact" param of rtx_reader.
11601         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
11602         rather than an empty string for NULL strings.
11603         * read-md.c: Potentially include config.h rather than bconfig.h.
11604         Wrap include of errors.h with #ifdef GENERATOR_FILE.
11605         (have_error): New global, copied from errors.c.
11606         (md_reader::read_name): Rename to...
11607         (md_reader::read_name_1): ...this, adding "out_loc" param,
11608         and converting "missing name or number" to returning false, rather
11609         than failing.
11610         (md_reader::read_name): Reimplement in terms of read_name_1.
11611         (md_reader::read_name_or_nil): New function.
11612         (md_reader::read_string): Handle "(nil)" by returning NULL.
11613         (md_reader::md_reader): Add new param "compact".
11614         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
11615         (md_reader::read_file): New method.
11616         * read-md.h (md_reader::md_reader): Add new param "compact".
11617         (md_reader::read_file): New method.
11618         (md_reader::is_compact): New accessor.
11619         (md_reader::read_name): Convert return type from void to file_location.
11620         (md_reader::read_name_or_nil): New decl.
11621         (md_reader::read_name_1): New decl.
11622         (md_reader::m_compact): New field.
11623         (noop_reader::noop_reader): Pass "false" for new "compact" param
11624         of rtx_reader.
11625         (rtx_reader::rtx_reader): Add new "compact" param.
11626         (rtx_reader::read_rtx_operand): Make virtual and convert return
11627         type from void to rtx.
11628         (rtx_reader::read_until): New decl.
11629         (rtx_reader::handle_any_trailing_information): New virtual function.
11630         (rtx_reader::postprocess): New virtual function.
11631         (rtx_reader::finalize_string): New virtual function.
11632         (rtx_reader::m_in_call_function_usage): New field.
11633         (rtx_reader::m_reuse_rtx_by_id): New field.
11634         * read-rtl-function.c: New file.
11635         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
11636         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
11637         (selftest::verify_three_block_rtl_cfg): New decl.
11638         * read-rtl-function.h: New file.
11639         * read-rtl.c: Potentially include config.h rather than bconfig.h.
11640         For host, include function.h, memmodel.h, and emit-rtl.h.
11641         (one_time_initialization): New function.
11642         (struct compact_insn_name): New struct.
11643         (compact_insn_names): New array.
11644         (find_code): Handle insn codes in compact dumps.
11645         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
11646         (bind_subst_iter_and_attr): Likewise.
11647         (add_condition_to_string): Likewise.
11648         (add_condition_to_rtx): Likewise.
11649         (apply_attribute_uses): Likewise.
11650         (add_current_iterators): Likewise.
11651         (apply_iterators): Likewise.
11652         (initialize_iterators): Guard usage of apply_subst_iterator with
11653         #ifdef GENERATOR_FILE.
11654         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
11655         (md_reader::read_mapping): Likewise.
11656         (add_define_attr_for_define_subst): Likewise.
11657         (add_define_subst_attr): Likewise.
11658         (read_subst_mapping): Likewise.
11659         (check_code_iterator): Likewise.
11660         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
11661         logic to...
11662         (one_time_initialization): New function.
11663         (rtx_reader::read_until): New method.
11664         (read_flags): New function.
11665         (parse_reg_note_name): New function.
11666         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
11667         Handle reuse_rtx ids.
11668         Wrap iterator lookup within #ifdef GENERATOR_FILE.
11669         Add parsing support for RTL dumps, mirroring the special-cases in
11670         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
11671         values, and calling handle_any_trailing_information.
11672         (rtx_reader::read_rtx_operand): Convert return type from void
11673         to rtx, returning return_rtx.  Handle case 'e'.  Call
11674         finalize_string on XSTR and XTMPL fields.
11675         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
11676          "(nil)" values were omitted.  Call the postprocess vfunc on the
11677         return_rtx.
11678         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
11679         class ctor.  Initialize m_in_call_function_usage.  Call
11680         one_time_initialization.
11681         * rtl-tests.c (selftest::test_uncond_jump): Call
11682         set_new_first_and_last_insn.
11683         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
11684         * selftest-rtl.c: New file.
11685         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
11686         (selftest::get_insn_by_uid): New decl.
11687         * selftest-run-tests.c (selftest::run_tests): Call
11688         read_rtl_function_c_tests.
11689         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
11690         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
11691         dumps.
11693 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
11695         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
11696         operands in a special way.  Assert that pos+len <= mode precision.
11698 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
11700         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
11701         3 argument Alias with unlimited for the negative form.
11702         (fno-vect-cost-model): Removed.
11704 2017-01-05  Martin Liska  <mliska@suse.cz>
11706         * hsa-gen.c (gen_hsa_divmod): New function.
11707         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
11709 2017-01-05  Martin Liska  <mliska@suse.cz>
11711         PR pch/78970
11712         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
11713         header.
11715 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11717         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
11718         small constant length operands.
11720 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11722         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
11723         between loop iterations.
11725 2017-01-05  Martin Liska  <mliska@suse.cz>
11727         PR sanitizer/78815
11728         * gimplify.c (gimplify_decl_expr): Compare to
11729         asan_poisoned_variables instread of checking flags.
11730         (gimplify_target_expr): Likewise.
11731         (gimplify_expr): Likewise.
11732         (gimplify_function_tree): Conditionally initialize
11733         asan_poisoned_variables.
11735 2017-01-04  Jeff Law  <law@redhat.com>
11737         PR tree-optimizatin/78812
11738         * rtl.h (contains_mem_rtx_p): Prototype.
11739         * ifcvt.c (containts_mem_rtx_p): Move from here to...
11740         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
11741         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
11742         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
11743         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
11745 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
11747         * input.c (assert_char_at_range): Default-initialize actual_range.
11749 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
11751         * df-scan.c (df_ref_create_structure): Make regno unsigned,
11752         to match the caller.
11754 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
11756         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
11757         insns after final jump in test to emit dummy move.
11759 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
11761         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
11762         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
11764 2017-01-04  Alexandre Oliva <aoliva@redhat.com>
11766         * multiple_target.c (create_dispatcher_calls): Init e_next.
11767         * tree-ssa-loop-split.c (split_loop): Init border.
11768         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
11769         scalar_type.
11771 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
11773         PR target/71977
11774         PR target/70568
11775         PR target/78823
11776         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
11777         (altivec_register_operand): Do not return true if the operand
11778         contains a SUBREG mixing SImode and SFmode.
11779         (vsx_register_operand): Likewise.
11780         (vsx_reg_sfsubreg_ok): New predicate.
11781         (vfloat_operand): Do not return true if the operand contains a
11782         SUBREG mixing SImode and SFmode.
11783         (vint_operand): Likewise.
11784         (vlogical_operand): Likewise.
11785         (gpc_reg_operand): Likewise.
11786         (int_reg_operand): Likewise.
11787         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
11788         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
11789         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
11790         SImode and SFmode.
11791         (rs6000_emit_move_si_sf_subreg): New helper function.
11792         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
11793         fixup SUBREGs involving SImode and SFmode.
11794         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
11795         numbers for the new peephole2 optimization.
11796         (peephole2 for SFmode unions): New peephole2 to optimize cases in
11797         the GLIBC math library that do AND/IOR/XOR operations on single
11798         precision floating point.
11799         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
11800         target macros to say whether we need to avoid SUBREGs mixing
11801         SImode and SFmode.
11802         (TARGET_ALLOW_SF_SUBREG): Likewise.
11803         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
11804         (UNSPEC_SI_FROM_SF): Likewise.
11805         (iorxor): Change spacing.
11806         (and_ior_xor): New iterator for AND, IOR, and XOR.
11807         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
11808         (movdi_from_sf_zero_ext): Likewise.
11809         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
11810         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
11811         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
11812         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
11813         (fms<mode>4): Likewise.
11814         (fnma<mode>4): Likewise.
11815         (fnms<mode>4): Likewise.
11816         (nfma<mode>4): Likewise.
11817         (nfms<mode>4): Likewise.
11819 2017-01-04  Marek Polacek  <polacek@redhat.com>
11821         PR c++/64767
11822         * doc/invoke.texi: Document -Wpointer-compare.
11824 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
11826         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
11827         RejectNegative.
11829         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
11830         descriptions for -gdwarf-5 and emit them as uleb128 instead of
11831         2-byte data.
11833 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11835         PR target/78056
11836         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
11837         documentation of the powerpc_popcntb_ok attribute.
11838         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
11839         code to issue warning messages if a requested CPU configuration is
11840         not supported by the binary (assembler and loader) toolchain.
11841         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
11842         made to define a built-in function that has been disabled.
11843         (paired_init_builtins): Add assertion to prevent ICE if attempt is
11844         made to define a built-in function that has been disabled.
11845         (altivec_init_builtins): Add comment explaining why definition
11846         of the DST built-in functions is not preceded by an assertion
11847         check.  Add assertions to prevent ICE if attempts are made to
11848         define an altivec predicate or an abs* built-in function that has
11849         been disabled.
11850         (htm_init_builtins): Add comment explaining why definition of the
11851         htm built-in functions is not preceded by an assertion check.
11853 2017-01-04  Jeff Law  <law@redhat.com>
11855         PR tree-optimizatin/67955
11856         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
11857         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
11858         the points-to solution does not include pt_null.  Use DECL_PT_UID
11859         unconditionally.
11861 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
11863         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
11864         Use gen_int_mode instead of gen_lopwart for const_int operands.
11866 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
11868         PR tree-optimization/71563
11869         * match.pd: Simplify X << Y into X if Y is known to be 0 or
11870         out of range value - has low bits known to be zero.
11872 2017-01-04  Alan Modra  <amodra@gmail.com>
11874         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
11875         * configure: Regenerate.
11876         * config.in: Regenerate.
11878 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
11880         PR bootstrap/77569
11881         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
11882         a substring of the message, but strcmp with the whole message.  Ifdef
11883         ENABLE_NLS, translate the message first using dgettext.
11885 2017-01-03  Jeff Law  <law@redhat.com>
11887         PR tree-optimizatin/78856
11888         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
11889         (mark_threaded_blocks): Remove code to truncate thread paths that
11890         cross multiple loop headers.  Instead invalidate the cached loop
11891         iteration information and handle case of a thread path walking
11892         into an irreducible region.
11894 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
11896         PR target/78900
11897         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
11898         assertions.  Add support for doing the signbit if the IEEE 128-bit
11899         floating point value is in a GPR.
11900         * config/rs6000/rs6000.md (Fsignbit): Delete.
11901         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
11902         Update the length attribute if the value is in a GPR.
11903         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
11904         the sign or zero extension instruction, since the value is always 0/1.
11905         (signbit<mode>2_dm2): Delete using <Fsignbit>.
11907         PR target/78953
11908         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
11909         extracting SImode to a GPR register so that we can generate a
11910         store, limit the vector to be in a traditional Altivec register
11911         for the vextuwrx instruction.
11913 2017-01-03  Ian Lance Taylor  <iant@google.com>
11915         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
11917 2017-01-03  Martin Sebor  <msebor@redhat.com>
11919         PR tree-optimization/78696
11920         * gimple-ssa-sprintf.c (format_floating): Correct handling of
11921         precision.  Use MPFR for %f for greater fidelity.  Correct handling
11922         of %g.
11923         (pass_sprintf_length::compute_format_length): Set width and precision
11924         specified by asrerisk to void_node for vararg functions.
11925         (try_substitute_return_value): Adjust dump output.
11927 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
11929         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
11931 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11933         * doc/invoke.texi (SPARC options): Document -mlra as the default.
11934         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
11935         -mlra/-mno-lra was passed to the compiler.
11937 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
11939         PR rtl-optimization/65618
11940         * emit-rtl.c (try_split): Move initialization of "before" and
11941         "after" to just before the call to emit_insn_after_setloc.
11943 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11945         * doc/md.texi (Standard Names): Remove reference to Java frontend.
11947 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
11949         * dwarf2out.c (gen_enumeration_type_die): When
11950         -gno-strict-dwarf, add a DW_AT_encoding attribute.
11952 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
11954         PR tree-optimization/78965
11955         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
11956         Change first argument from const call_info & to call_info &.  For %n
11957         set info.nowrite to false.
11959         PR middle-end/78901
11960         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
11961         possibly throwing calls.
11963         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
11964         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
11965         and fns handling, rather than in a separate case SSA_NAME.
11967 2017-01-02  Jeff Law  <law@redhat.com>
11969         * config/darwin-driver.c (darwin_driver_init): Const-correctness
11970         fixes for first_period and second_period variables.
11972 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
11974         PR target/78967
11975         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
11976         (*insvqi_1): New insn pattern.
11977         (*insvqi_1_mem_rex64): Ditto.
11978         (*insvqi_2): Ditto.
11979         (*insvqi_3): Rename from *insvqi.
11981         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
11983 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11985         * doc/cfg.texi (Edges): Remove reference to Java.
11986         (Maintaining the CFG): Ditto.
11988 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11990         PR middle-end/77674
11991         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
11992         transparent aliases.
11994 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
11996         PR middle-end/77484
11997         * predict.def (PRED_CALL): Update hitrate.
11998         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
11999         * predict.c (tree_estimate_probability_bb): Split CALL predictor
12000         into direct/indirect/polymorphic variants.
12002 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
12004         Update copyright years.
12006         * gcc.c (process_command): Update copyright notice dates.
12007         * gcov-dump.c (print_version): Ditto.
12008         * gcov.c (print_version): Ditto.
12009         * gcov-tool.c (print_version): Ditto.
12010         * gengtype.c (create_file): Ditto.
12011         * doc/cpp.texi: Bump @copying's copyright year.
12012         * doc/cppinternals.texi: Ditto.
12013         * doc/gcc.texi: Ditto.
12014         * doc/gccint.texi: Ditto.
12015         * doc/gcov.texi: Ditto.
12016         * doc/install.texi: Ditto.
12017         * doc/invoke.texi: Ditto.
12019 Copyright (C) 2017 Free Software Foundation, Inc.
12021 Copying and distribution of this file, with or without modification,
12022 are permitted in any medium without royalty provided the copyright
12023 notice and this notice are preserved.