* recog.c (rest_of_handle_split_after_reload): Delete.
[official-gcc.git] / gcc / ChangeLog
blobdaa2619b95b5c24741824fbeb16a9c0f68f563c8
1 2016-09-16  Eric Botcazou  <ebotcazou@adacore.com>
3         * recog.c (rest_of_handle_split_after_reload): Delete.
4         (pass_split_after_reload::gate): New method.
5         (pass_split_after_reload::execute): Call split_all_insns directly.
7 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
9         * doc/extend.texi (Integer Overflow Builtins): Fix type of out
10         parameters for functions taking long long arguments.
12 2016-09-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14         PR target/77613
15         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
16         splat with truncate.
18 2016-09-16  Jason Merrill  <jason@redhat.com>
20         * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
21         New.
22         * hwint.c (exact_log2): Use pow2p_hwi.
23         (ctz_hwi, ffs_hwi): Use least_bit_hwi.
24         * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
25         * builtins.c (get_object_alignment_2, get_object_alignment)
26         (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
27         least_bit_hwi.
28         * calls.c (compute_argument_addresses, store_one_arg): Use
29         least_bit_hwi.
30         * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
31         * combine.c (force_to_mode): Use least_bit_hwi.
32         (contains_muldiv, find_split_point, combine_simplify_rtx)
33         (simplify_if_then_else, simplify_set, force_to_mode)
34         (if_then_else_cond, simplify_and_const_int_1)
35         (simplify_compare_const): Use pow2p_hwi.
36         * cse.c (fold_rtx): Use pow2p_hwi.
37         * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
38         Use least_bit_hwi.
39         * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
40         (init_expmed_one_conv): Use pow2p_hwi.
41         * expr.c (is_aligning_offset): Use pow2p_hwi.
42         * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
43         (fold_binary_loc): Use pow2p_hwi.
44         * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
45         * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
46         * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
47         * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
48         Use least_bit_hwi.
49         * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
50         * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
51         * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
52         * omp-low.c (oacc_loop_fixed_partitions)
53         (oacc_loop_auto_partitions): Use least_bit_hwi.
54         * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
55         * stor-layout.c (place_field): Use least_bit_hwi.
56         * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
57         * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
58         * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
59         * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
60         * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
61         * tree-vect-data-refs.c (vect_analyze_group_access_1)
62         (vect_grouped_store_supported, vect_grouped_load_supported)
63         (vect_permute_load_chain, vect_shift_permute_load_chain)
64         (vect_transform_grouped_load): Use pow2p_hwi.
65         * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
66         * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
67         * tree-vect-stmts.c (vectorizable_mask_load_store): Use
68         least_bit_hwi.
69         * tsan.c (instrument_expr): Use least_bit_hwi.
70         * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
72 2016-09-16  Andreas Schwab  <schwab@suse.de>
74         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
75         OFFSET, not offset.
76         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
78 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
80         PR target/77526
81         * combine.c (rest_of_handle_combine): If any edges have been purged,
82         free dominators if available.
84 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
85             Eric Botcazou  <ebotcazou@adacore.com>
87         PR middle-end/77594
88         * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
89         through into expand_addsub_overflow after expand_neg_overflow.
91 2016-09-15  David Malcolm  <dmalcolm@redhat.com>
93         * diagnostic-show-locus.c
94         (selftest::test_fixit_insert_containing_newline): New function.
95         (selftest::test_fixit_replace_containing_newline): New function.
96         (selftest::diagnostic_show_locus_c_tests): Call the above.
98 2016-09-15  Bin Cheng  <bin.cheng@arm.com>
100         PR tree-optimization/77503
101         * tree-vect-loop.c (vectorizable_reduction): Record reduction
102         code for CONST_COND_REDUCTION at analysis stage and use it at
103         transform stage.
104         * tree-vectorizer.h (struct _stmt_vec_info): New field.
105         (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
106         * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
107         field.
109 2016-09-15  Richard Biener  <rguenther@suse.de>
111         PR middle-end/77544
112         * fold-const.c (split_tree): Do not split constant ~X.
114 2016-09-15  Jakub Jelinek  <jakub@redhat.com>
116         PR rtl-optimization/77425
117         * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
118         is NULL.
120         PR middle-end/77475
121         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
122         use %qs instead of %s where desirable, use argument instead of arg in
123         the diagnostic wording, add list of supported strategies and
124         spellcheck hint.
125         (ix86_option_override_internal): Emit target("m...") instead of
126         option("m...") in the diagnostic.  Use %qs instead of %s in invalid
127         -march/-mtune option diagnostic.  Add list of supported arches/tunings
128         and spellcheck hint.  Remove prefix, suffix and sw variables, use
129         main_args_p ? "..." : "..." in diagnostics to make translation
130         possible.
132 2016-09-15  Richard Biener  <rguenther@suse.de>
134         * dwarf2asm.h (dw2_asm_output_offset): Add overload with
135         extra offset argument.
136         * dwarf2asm.c (dw2_asm_output_offset): Implement that.
137         * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
138         to reflect new offset parameter.
139         * doc/tm.texi: Regenerate.
140         * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
141         * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
142         offset argument.
143         (darwin_asm_output_dwarf_offset): Likewise.
144         * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
145         argument.
146         (darwin_asm_output_dwarf_offset): Pass offset argument through.
147         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
148         * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
150 2016-09-15  Chung-Lin Tang  <cltang@codesourcery.com>
152         PR fortran/72743
153         * ipa-icf.c (set_alias_uids): New function.
154         (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
155         all the merged variable's referring aliases.
157 2016-09-15  Richard Biener  <rguenther@suse.de>
159         PR tree-optimization/77514
160         * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
161         only forced_stmts sequence.
163 2016-09-15  Kugan Vivekanandarajah  <kuganv@linaro.org>
165         * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
166         * cfgexpand.c (update_alias_info_with_stack_vars): Use
167         FOR_EACH_SSA_NAME to iterate over SSA variables.
168         (pass_expand::execute): Likewise.
169         * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
170         * tree-cfg.c (dump_function_to_file): Likewise.
171         * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
172         (update_ssa): Likewise.
173         * tree-ssa-alias.c (dump_alias_info): Likewise.
174         * tree-ssa-ccp.c (ccp_finalize): Likewise.
175         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
176         (create_outofssa_var_map): Likewise.
177         (coalesce_ssa_name): Likewise.
178         * tree-ssa-operands.c (dump_immediate_uses): Likewise.
179         * tree-ssa-pre.c (compute_avail): Likewise.
180         * tree-ssa-sccvn.c (init_scc_vn): Likewise.
181         (scc_vn_restore_ssa_info): Likewise.
182         (free_scc_vn): Likwise.
183         (run_scc_vn): Likewise.
184         * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
185         * tree-ssa-ter.c (new_temp_expr_table): Likewise.
186         * tree-ssa-copy.c (fini_copy_prop): Likewise.
187         * tree-ssa.c (verify_ssa): Likewise.
189 2016-09-14  Matthew Fortune  <matthew.fortune@imgtec.com>
191         * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
192         and mips64r2 as default 32-bit and 64-bit architectures.
193         (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
194         as default 32-bit and 64-bit architectures.
196 2016-09-14  Pat Haugen  <pthaugen@us.ibm.com>
198         * loop-unroll.c (unroll_loop_runtime_iterations): Set probability of succ edge.
200 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
202         * target.def (lra_p): Change commentary (for the manual) for the
203         new default.
204         * doc/tm.texi: Regenerate.
206 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
208         * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
209         * config/arm/arm.c (TARGET_LRA_P): Delete macro.
210         * config/i386/i386.c (TARGET_LRA_P): Delete macro.
211         * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
213 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
215         * targhooks.c (default_lra_p): Return true instead of false.
217 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
219         * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
220         hook_bool_void_false.
221         * config/avr/avr.c: Ditto.
222         * config/bfin/bfin.c: Ditto.
223         * config/c6x/c6x.c: Ditto.
224         * config/cr16/cr16.c: Ditto.
225         * config/cris/cris.c: Ditto.
226         * config/epiphany/epiphany.c: Ditto.
227         * config/fr30/fr30.c: Ditto.
228         * config/frv/frv.c: Ditto.
229         * config/h8300/h8300.c: Ditto.
230         * config/ia64/ia64.c: Ditto.
231         * config/iq2000/iq2000.c: Ditto.
232         * config/lm32/lm32.c: Ditto.
233         * config/m32c/m32c.c: Ditto.
234         * config/m32r/m32r.c: Ditto.
235         * config/m68k/m68k.c: Ditto.
236         * config/mcore/mcore.c: Ditto.
237         * config/microblaze/microblaze.c: Ditto.
238         * config/mmix/mmix.c: Ditto.
239         * config/mn10300/mn10300.c: Ditto.
240         * config/moxie/moxie.c: Ditto.
241         * config/msp430/msp430.c: Ditto.
242         * config/nios2/nios2.c: Ditto.
243         * config/nvptx/nvptx.c: Ditto.
244         * config/pa/pa.c: Ditto.
245         * config/pdp11/pdp11.c: Ditto.
246         * config/rl78/rl78.c: Ditto.
247         * config/sparc/sparc.c: Ditto.
248         * config/spu/spu.c: Ditto.
249         * config/stormy16/stormy16.c: Ditto.
250         * config/tilegx/tilegx.c: Ditto.
251         * config/tilepro/tilepro.c: Ditto.
252         * config/v850/v850.c: Ditto.
253         * config/vax/vax.c: Ditto.
254         * config/visium/visium.c: Ditto.
255         * config/xtensa/xtensa.c: Ditto.
257 2016-09-14  Jakub Jelinek  <jakub@redhat.com>
259         PR sanitizer/68260
260         * tsan.c: Include target.h.
261         (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
262         (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
263         (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
264         BUILT_IN_ATOMIC_TEST_AND_SET entries.
265         (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
267 2016-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
268             Martin Liska  <mliska@suse.cz>
270         PR middle-end/77574
271         * predict.c (force_edge_cold): Add braces to a condition.
273 2016-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
275         PR rtl-optimization/77289
276         * lra-constraints.c (get_final_hard_regno): Removed.
277         (get_hard_regno): Add new parameter final_p.
278         (get_reg_class): Directly call lra_get_elimination_hard_regno.
279         (operands_match_p): Adjust call to get_hard_regno.
280         (uses_hard_regs_p): Likewise.
281         (process_alt_operands): Likewise.
283 2016-09-13  Joe Seymour  <joe.s@somniumtech.com>
285         PR target/70713
286         * config/msp430/msp430.c (msp430_start_function): Emit an error
287         if a function is both weak and specifies an interrupt number.
289 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
291         PR tree-optimization/77454
292         * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
293         changing GIMPLE_COND.  Move update_stmt_if_modified call after this.
294         Formatting fix.
296 2016-09-13  Tamar Christina  <tamar.christina@arm.com>
298         * config/aarch64/aarch64-builtins.c 
299         (aarch64_init_simd_builtins): Fix builtin type signature printing.
301 2016-09-13  Uros Bizjak  <ubizjak@gmail.com>
303         * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
304         SFmode and SCmode arguments by reference.
306 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
308         * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
309         Rename to...
310         (selftest::test_one_liner_fixit_insert_before): ...this, and update
311         for renaming of add_fixit_insert to add_fixit_insert_before.
312         (selftest::test_one_liner_fixit_insert_after): New function.
313         (selftest::test_one_liner_fixit_validation_adhoc_locations):
314         Update for renaming of add_fixit_insert to add_fixit_insert_before.
315         (selftest::test_one_liner_many_fixits): Likewise.
316         (selftest::test_diagnostic_show_locus_one_liner): Update for
317         renaming, call new test function.
318         (selftest::test_diagnostic_show_locus_fixit_lines): Update for
319         renaming of add_fixit_insert to add_fixit_insert_before.
320         (selftest::test_fixit_consolidation): Likewise.
321         * diagnostic.c (selftest::test_print_parseable_fixits_insert):
322         Likewise.
323         * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
324         (selftest::test_applying_fixits_insert_before): ...this.
325         (selftest::test_applying_fixits_insert): Update for renaming of
326         add_fixit_insert to add_fixit_insert_before.
327         (selftest::test_applying_fixits_insert_after): New function.
328         (selftest::test_applying_fixits_insert_after_at_line_end): New
329         function.
330         (selftest::test_applying_fixits_insert_after_failure): New function.
331         (selftest::test_applying_fixits_multiple): Update for renaming of
332         add_fixit_insert to add_fixit_insert_before.
333         (selftest::change_line): Likewise.
334         (selftest::test_applying_fixits_unreadable_file): Likewise.
335         (selftest::test_applying_fixits_line_out_of_range): Likewise.
336         (selftest::test_applying_fixits_column_validation): Likewise.
337         (selftest::test_applying_fixits_column_validation): Likewise.
338         (selftest::edit_context_c_tests): Update for renamed test function;
339         call new test functions.
341 2016-09-13  Pat Haugen  <pthaugen@us.ibm.com>
343         PR tree-optimization/77536
344         PR rtl-optimization/68212
345         * config/rs6000/rs6000.md (div->recip splitter): Remove
346         optimize_insn_for_speed_p condition.
348 2016-09-13  Maciej W. Rozycki  <macro@imgtec.com>
350         * optabs.c (prepare_cmp_insn): Update documentation comment.
352 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
353             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
355         PR middle-end/77475
356         * opts.h (candidates_list_and_hint): Declare.
357         * opts-common.c (candidates_list_and_hint): New function.
358         (cmdline_handle_error): Use it.
360 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
362         * edit-context.c (edited_line::get_len): New accessor.
363         (edited_file::print_diff): Split out hunk-printing into...
364         (edited_file::print_diff_hunk): New method.
365         (edited_file::print_diff_line): New method.
367 2016-09-12  Andrew Pinski  <apinski@cavium.com>
369         * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
370         New tuning option.
371         * config/aarch64/aarch64.c (thunderx_tunings): Enable
372         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
373         (aarch64_operands_ok_for_ldpstp): Return false if
374         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
375         was SImode and the alignment is less than 8 byte.
376         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
378 2016-09-12  Orlando Arias  <oarias@knights.ucf.edu>
380         PR target/77570
381         * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
383 2016-09-12  Marek Polacek  <polacek@redhat.com>
385         * doc/extend.texi: Use lowercase "boolean".
386         * doc/invoke.texi: Likewise.
387         * doc/md.texi: Likewise.
388         * target.def: Likewise.
389         * doc/tm.texi: Regenerated.
391 2016-09-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
393         PR middle-end/77426
394         * expmed.c (synth_mult): Delete duplicate mode check.
396 2016-09-10  Tom de Vries  <tom@codesourcery.com>
398         PR C/71602
399         * builtins.c (std_canonical_va_list_type): Strictly return non-null for
400         va_list type only.
401         * config/i386/i386.c (ix86_canonical_va_list_type): Same.
402         * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
404 2016-09-09  Peter Bergner  <bergner@vnet.ibm.com>
406         PR rtl-optimization/77289
407         * lra-constraints.c (get_final_hard_regno): Add support for non hard
408         register numbers.  Remove support for subregs.
409         (get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
410         (get_reg_class): Delete removed get_final_hard_regno() argument.
411         (uses_hard_regs_p): Call get_final_hard_regno().
413 2016-09-09  Martin Sebor  <msebor@redhat.com>
415         PR c/77520
416         PR c/77521
417         * pretty-print.c (pp_quoted_string): New function.
418         (pp_format): Call it for %c and %s directives.
420 2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
422         * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
423         (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
424         INITIAL_ELIMINATION_OFFSET) : Update documentation.
425         * target.def (frame_pointer_required, can_eliminate): Likewise.
426         * doc/tm.texi: Regenerated.
427         * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
428         ELIMINABLE_REGS.
429         * df-scan.c (df_hard_reg_init): Likewise.
430         * ira.c (ira_setup_eliminable_regset): Likewise.
431         * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
432         init_elim_table): Likewise.
433         * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
434         set_initial_elim_offsets, update_eliminables,
435         init_elim_table): Likewise.
436         * rtlanal.c (get_initial_register_offset): Likewise.
437         * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
438         * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
439         * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
440         * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
441         * config/fr30/fr30.h: Fix comment.
442         * config/frv/frv.c: Likewise.
443         * config/frv/frv.h: Likewise.
444         * config/ft32/ft32.h: Likewise.
445         * config/visium/visium.h: Likewise.
446         * config/pa/pa64-linux.h: Likewise.
447         * config/v850/v850.h: Likewise.
448         * config/cris/cris.c: Likewise.
449         * config/ia64/ia64.h: Likewise.
450         * config/moxie/moxie.h: Likewise.
451         * config/m32r/m32r.h: Likewise.
453 2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
455         PR target/77267
456         * config.in: Regenerate.
457         * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
458         New macro.
459         (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
460         (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
461         static-libmpxwrappers case.
462         (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
463         MPX_LD_AS_NEEDED_GUARD_POP.
464         * configure: Regenerate.
465         * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
466         defined if linker support "--push-state"/"--pop-state".
468 2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
470         * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
472 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
474         * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
475         (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
476         (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
477         (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
478         (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
479         (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
480         (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
481         Document.
482         * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
483         width macros from TS 18661-1.
484         * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
486 2016-09-08  Jakub Jelinek  <jakub@redhat.com>
488         PR fortran/77516
489         * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
490         OMP_CLAUSE_SAFELEN_EXPR.
492 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
494         * Makefile.in (OBJS): Add substring-locations.o.
495         * langhooks-def.h (class substring_loc): New forward decl.
496         (lhd_get_substring_location): New decl.
497         (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
498         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
499         * langhooks.c (lhd_get_substring_location): New function.
500         * langhooks.h (class substring_loc): New forward decl.
501         (struct lang_hooks): Add field get_substring_location.
502         * substring-locations.c: New file, taking definition of
503         format_warning_va and format_warning_at_substring from
504         c-family/c-format.c, making them non-static.
505         * substring-locations.h (class substring_loc): Move class here
506         from c-family/c-common.h.  Add and rewrite comments.
507         (format_warning_va): New decl.
508         (format_warning_at_substring): New decl.
509         (get_source_location_for_substring): Add comment.
511 2016-09-07  Eric Gallager  <egall@gwmail.gwu.edu>
513         * config/i386/i386.c: Add 'U' suffix to processor feature bits
514         to avoid -Wnarrowing warning.
515         * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
516         * opts.c: Likewise for SANITIZER_OPT bitmasks.
518 2016-09-07  Wilco Dijkstra  <wdijkstr@arm.com>
520         * config/aarch64/aarch64.c (aarch64_legitimize_address):
521         Avoid use of base_offset if offset already in range.
523 2016-09-07  Kaz Kojima  <kkojima@gcc.gnu.org>
525         * config/sh/sh-protos.h (struct sh_atomic_model,
526         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
527         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
528         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
529         * config/sh/sh.h (struct sh_atomic_model,
530         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
531         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
532         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
533         Guard with __cplusplus.
535 2016-09-06  Jakub Jelinek  <jakub@redhat.com>
537         PR target/69255
538         * config/i386/i386.c (ix86_expand_builtin): For builtin with
539         unsupported or unknown ISA, use expand_call.
541 2016-09-06  Martin Liska  <mliska@suse.cz>
543         PR gcov-profile/77378
544         PR gcov-profile/77466
545         * tree-profile.c (tree_profiling): Detect whether target can use
546         -fprofile-update=atomic.
548 2016-09-06  Richard Biener  <rguenther@suse.de>
550         PR tree-optimization/77479
551         * tree-vrp.c (update_value_range): Extend overflow handling to
552         VARYING.
554 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
556         PR target/77476
557         * config/i386/i386.md (isa): Add x64_avx512bw.
558         (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
559         (kmov_isa): New mode attr.
560         (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
561         (*zero_extend<mode>si2): Likewise.
562         (*zero_extendqihi2): Use avx512dq isa for the last alternative.
564 2016-09-05  Gerald Pfeifer  <gerald@pfeifer.com>
566         * doc/invoke.texi (SPU Options): nops -> NOPs.
567         (x86 Options): Ditto.
569 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
571         PR middle-end/77475
572         * toplev.c (process_options): Temporarily set input_location
573         to UNKNOWN_LOCATION around targetm.target_option.override () call.
575 2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
577         PR rtl-optimization/77452
578         * explow.c (plus_constant) <case MEM>: Extract scalar constant from
579         inner-mode reference to a CONST_VECTOR constant in the constant pool.
581 2016-09-05  Marek Polacek  <polacek@redhat.com>
583         PR c/77423
584         * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
586 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
588         PR other/77421
589         * gensupport.c (alter_output_for_subst_insn): Remove redundant
590         *insn_out == '*' test.  Don't copy unnecessary to yet another
591         memory buffer, and don't leak it.
593         PR rtl-optimization/77425
594         * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
596 2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
598         * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
600 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
602         * common.opt (fdiagnostics-generate-patch): New option.
603         * diagnostic.c: Include "edit-context.h".
604         (diagnostic_initialize): Initialize context->edit_context_ptr.
605         (diagnostic_finish): Delete context->edit_context_ptr.
606         (diagnostic_report_diagnostic): Add fix-it hints from the
607         diagnostic to context->edit_context_ptr, if any.
608         * diagnostic.h (class edit_context): Add forward decl.
609         (struct diagnostic_context): Add field "edit_context_ptr".
610         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
611         -fdiagnostics-generate-patch.
612         (-fdiagnostics-generate-patch): New item.
613         * toplev.c: Include "edit-context.h".
614         (process_options): Set global_dc->edit_context_ptr to a new
615         edit_context if the options need one.
616         (toplev::main): Handle -fdiagnostics-generate-patch by using
617         global_dc->edit_context_ptr.
619 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
621         PR c/65467
622         * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
623         map and firstprivate clauses on target construct for _Atomic
624         qualified decls.
625         (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
626         on target construct for _Atomic qualified decls.
627         * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
628         decls.
629         * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
630         _Atomic qualified arguments not mentioned in uniform clause.
632 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
634         * Makefile.in (OBJS-libcommon): Add edit-context.o.
635         * diagnostic-color.c (color_dict): Add "diff-filename",
636         "diff-hunk", "diff-delete", and "diff-insert".
637         (parse_gcc_colors): Update default value of GCC_COLORS in comment
638         to reflect above changes.
639         * doc/invoke.texi (-fdiagnostics-color): Update description of
640         default GCC_COLORS, and of the supported capabilities.
641         * edit-context.c: New file.
642         * edit-context.h: New file.
643         * input.c (struct fcache): Add field "missing_trailing_newline".
644         (diagnostics_file_cache_forcibly_evict_file): Initialize it to
645         true.
646         (add_file_to_cache_tab): Likewise.
647         (fcache::fcache): Likewise.
648         (get_next_line): Update c->missing_trailing_newline.
649         (location_missing_trailing_newline): New function.
650         * input.h (location_missing_trailing_newline): New decl.
651         * selftest-run-tests.c (selftest::run_tests): Call
652         edit_context_c_tests.
653         * selftest.h (edit_context_c_tests): New decl.
655 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
656             Richard Biener  <rguenth@suse.de>
658         PR tree-optimization/77444
659         * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
660         as steptype, remove redundant initialization.
662 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
664         PR sanitizer/77396
665         * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
666         (sanopt_optimize_walker): Optimize away
667         __asan_before_dynamic_init (...) followed by
668         __asan_after_dynamic_init () without intervening memory loads/stores.
669         * ipa-pure-const.c (special_builtin_state): Handle
670         BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
671         BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
673 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
675         * cfg.c (free_original_copy_tables): Replace second assignment of
676         bb_copy = NULL by bb_original = NULL. 
678 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
680         PR other/77421
681         * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
682         assignment added in r216794.
684 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
686         * Makefile.in (OBJS): Add typed-splay-tree.o.
687         * selftest-run-tests.c (selftest::run_tests): Call
688         typed_splay_tree_c_tests.
689         * selftest.h (typed_splay_tree_c_tests): New decl.
690         * typed-splay-tree.c: New file.
691         * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
692         (typed_splay_tree::max): New method.
693         (typed_splay_tree::min): New method.
694         (typed_splay_tree::foreach): New method.
695         (typed_splay_tree::closure): New struct.
696         (typed_splay_tree::inner_foreach_fn): New function.
698 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
700         * ipa-cp.c (ipcp_store_bits_results): Change option name from
701         -fipa-cp-bit to -fipa-bit-cp.
703 2016-09-01  Martin Sebor  <msebor@redhat.com>
705         PR tree-optimization/71831
706         * tree-object-size.h: Return bool instead of the size and add
707         argument for the size.
708         * tree-object-size.c (compute_object_offset): Update signature.
709         (addr_object_size): Same.
710         (compute_builtin_object_size): Return bool instead of the size
711         and add argument for the size.  Handle POINTER_PLUS_EXPR when
712         optimization is disabled.
713         (expr_object_size): Adjust.
714         (plus_stmt_object_size): Adjust.
715         (pass_object_sizes::execute): Adjust.
716         * builtins.c (fold_builtin_object_size): Adjust.
717         * doc/extend.texi (Object Size Checking): Update.
718         * ubsan.c (instrument_object_size): Adjust.
720 2016-09-01  Martin Sebor  <msebor@redhat.com>
722         * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
723         it fits the output of the formatted function regardless of its
724         arguments.
725         * gcc/genmodes.c (parser::parse_expr): Same.
726         * gimplify.c (gimplify_asm_expr): Same.
727         * passes.c (pass_manager::register_one_dump_file): Same.
728         * print-tree.c (print_node): Same.
730 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
732         * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
734 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
736         * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
738 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
740         * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
741         * config/rs6000/vector.md: Ditto.
742         * config/rs6000/vsx.md: Ditto.
744 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
746         * ipa-inline-analysis.c (param_change_prob): Get to the base object
747         first in all cases.
749 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
751         * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
752         *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
753         *return_and_restore_gpregs_<mode>_r11,
754         *return_and_restore_gpregs_<mode>_r12,
755         *return_and_restore_gpregs_<mode>_r1,
756         *return_and_restore_fpregs_<mode>_r11,
757         *return_and_restore_fpregs_<mode>_r12,
758         *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
759         directly instead of via the "l" constraint.  Renumber operands.
760         Fix whitespace.
762 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
764         * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
765         save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
766         *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
767         * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
768         load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
769         *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
770         *call_value_nonlocal_darwin64, reload_macho_picbase,
771         reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
772         * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
773         * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
774         *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
775         *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
776         *save_fpregs_<mode>_r1): Ditto.
777         * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
778         *return_and_restore_gpregs_spe): Ditto.
780 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
782         * config/rs6000/rs6000.md
783         (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
784         the use of the link register.
785         (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
787 2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
788             Michael Meissner  <meissner@linux.vnet.ibm.com>
790         PR target/72827
791         * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
792         reg+reg addressing for TImode.
793         (rs6000_legitimate_address_p): Only allow register indirect
794         addressing for TImode, even without TARGET_QUAD_MEMORY.
796 2016-09-01  Richard Biener  <rguenther@suse.de>
798         PR middle-end/77436
799         * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
800         check whether the result fits the desired result type.
802 2016-09-01  Nathan Sidwell  <nathan@acm.org>
804         * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
806 2016-09-01  Wilco Dijkstra  <wdijkstr@arm.com>
808         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
809         New function.
810         (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
812 2016-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
814         * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
815         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
816         for comparisons of integer ZERO_EXTEND against zero.
818 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
820         * config/i386/i386.c (ix86_option_override_internal): Also disable the
821         STV pass if -mstackrealign is enabled.
823 2016-08-31  Ilya Verbin  <iverbin@gmail.com>
825         * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
826         AVX512IFMA.
828 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
830         * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
831         (layout_range::intersects_line_p): New method.
832         (test_range_contains_point_for_single_point): Rename to...
833         (test_layout_range_for_single_point): ...this, and add testing
834         for layout_range::intersects_line_p.
835         (test_range_contains_point_for_single_line): Rename to...
836         (test_layout_range_for_single_line): ...this,  and add testing
837         for layout_range::intersects_line_p.
838         (test_range_contains_point_for_multiple_lines): Rename to...
839         (test_layout_range_for_multiple_lines): ...this,  and add testing
840         for layout_range::intersects_line_p.
841         (layout::layout): Populate m_fixit_hints.
842         (layout::get_expanded_location): Handle the case of a line-span
843         for a fix-it hint.
844         (layout::validate_fixit_hint_p): New method.
845         (get_line_span_for_fixit_hint): New function.
846         (layout::calculate_line_spans): Add spans for fixit-hints.
847         (layout::should_print_annotation_line_p): New method.
848         (layout::print_any_fixits): Drop param "richloc", instead using
849         validated fixits in m_fixit_hints.  Add "const" to hint pointers.
850         (diagnostic_show_locus): Avoid printing blank annotation lines.
851         (selftest::test_diagnostic_context::test_diagnostic_context):
852         Initialize show_column and start_span.
853         (selftest::test_diagnostic_context::start_span_cb): New static
854         function.
855         (selftest::test_diagnostic_show_locus_fixit_lines): New function.
856         (selftest::diagnostic_show_locus_c_tests): Update for function
857         renamings.  Call test_diagnostic_show_locus_fixit_lines.
859 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
861         PR tree-optimization/73714
862         * match.pd (a * (1 << b)): Revert change from 2016-05-23.
864 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
866         * selftest.c: Move "namespace selftest {" to top of file,
867         removing explicit "selftest::" qualifiers throughout.
869 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
871         * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
872         New types.
873         (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
874         _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
875         Replace builtin with vector extension.
876         * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
877         New types.
878         (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
879         _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
880         Replace builtin with vector extension.
881         * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
882         (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
883         Replace builtin with vector extension.
884         * config/i386/xmmintrin.h (__m128_u): New type.
885         (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
886         (_mm_load_ps, _mm_store_ps): Simplify.
888 2016-08-31  Eric Botcazou  <ebotcazou@adacore.com>
890         * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
892 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
894         * diagnostic-show-locus.c (colorizer::begin_state): Support more
895         than 3 ranges per diagnostic by alternating between color 1 and
896         color 2.
897         (layout::layout): Replace use of rich_location::MAX_RANGES
898         with richloc->get_num_locations ().
899         (layout::calculate_line_spans): Replace use of
900         rich_location::MAX_RANGES with m_layout_ranges.length ().
901         (layout::print_annotation_line): Handle arbitrary numbers of
902         ranges in caret-printing by defaulting to '^'.
903         (selftest::test_one_liner_many_fixits): New function.
904         (test_diagnostic_show_locus_one_liner): Call it.
905         * diagnostic.c (diagnostic_initialize): Update for renaming
906         of rich_location::MAX_RANGES to
907         rich_location::STATICALLY_ALLOCATED_RANGES.
908         * diagnostic.h (struct diagnostic_context): Likewise.
910 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
912         * selftest.c (selftest::named_temp_file::named_temp_file): New
913         ctor.
914         (selftest::temp_source_file::~temp_source_file): Move to...
915         (selftest::named_temp_file::~named_temp_file): ...here.
916         (selftest::test_named_temp_file): New function.
917         (selftest::selftest_c_tests): Call test_named_temp_file.
918         * selftest.h (class named_temp_file): New class.
919         (class temp_source_file): Convert to a subclass of named_temp_file.
921 2016-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
923         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
924         USEs of LR_REGNO in returns and sibcalls.
925         (rs6000_output_mi_thunk): Similar.
926         (rs6000_sibcall_aix): Similar.
927         * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
928         sibcall_local64, sibcall_value_local32, sibcall_value_local64,
929         sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
930         Remove the USE of LR_REGNO from the patterns as well.  Delete an
931         obsolete comment.
932         (return_internal_<mode>): Delete.
934 2016-08-30  Tamar Christina  <tamar.christina@arm.com>
936         * gcc/config/aarch64/aarch64-simd.md
937         (aarch64_ld2<mode>_dreg_le): New.
938         (aarch64_ld2<mode>_dreg_be): New.
939         (aarch64_ld2<mode>_dreg): Removed.
940         (aarch64_ld3<mode>_dreg_le): New.
941         (aarch64_ld3<mode>_dreg_be): New.
942         (aarch64_ld3<mode>_dreg): Removed.
943         (aarch64_ld4<mode>_dreg_le): New.
944         (aarch64_ld4<mode>_dreg_be): New.
945         (aarch64_ld4<mode>_dreg): Removed.
946         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
948 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
950         * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
951         redundant location param.
952         (test_one_liner_fixit_remove): Likewise.
953         (test_one_liner_fixit_replace): Likewise.
954         (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
955         * gcc-rich-location.c
956         (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
957         get_range_from_loc.  Drop overload taking a const char *.
958         * gcc-rich-location.h
959         (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
960         a const char *.
962 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
964         * config/linux.c (linux_libc_has_function): Return true on musl.
966 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
968         * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
970 2016-08-30  Eric Botcazou  <ebotcazou@adacore.com>
972         * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
973         used for abnormal egdes.
975 2016-08-30  Jakub Jelinek  <jakub@redhat.com>
977         PR tree-optimization/72866
978         * tree-vect-patterns.c (search_type_for_mask): Turn into
979         a small wrapper, move all code to ...
980         (search_type_for_mask_1): ... this new function.  Add caching
981         and adjust recursive calls.
983         PR debug/77363
984         * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
985         instead of lookup_type_die (type_main_variant (type)) even for array
986         types.
988         PR middle-end/77377
989         * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
990         constant pool reference return x instead of c.
992 2016-08-29  Segher Boessenkool  <segher@kernel.crashing.org>
994         * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
995         include MQ.
997 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
999         * input.c
1000         (selftest::test_make_location_nonpure_range_endpoints): Fix
1001         header comment.
1003 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
1005         * diagnostic-show-locus.c
1006         (selftest::test_one_liner_fixit_validation_adhoc_locations): New
1007         function.
1008         (selftest::test_diagnostic_show_locus_one_liner): Call it.
1009         * input.c (get_pure_location): Move to libcpp/line-map.c.
1010         * input.h (get_pure_location): Convert decl to an inline function
1011         calling implementation in libcpp.
1013 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
1015         PR target/77403
1016         * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
1017         template for intel asm dialect.
1018         (vec_set_hi_<mode><mask_name>): Ditto.
1020 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
1022         * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
1023         (selftest::fail_formatted): Likewise.
1025 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
1027         * input.c (make_location): Call get_start and get_finish
1028         on the endpoints to avoid storing packed ranges or ad-hoc
1029         ranges in them.
1030         (selftest::test_make_location_nonpure_range_endpoints): New function.
1031         (selftest::input_c_tests): Call it.
1032         * input.h (get_start): New inline function.
1034 2016-08-29  Tom de Vries  <tom@codesourcery.com>
1036         PR c/77398
1037         * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
1038         with assert.
1040 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
1042         * Makefile.in (gcov-iov.h): Add dummy recipe.
1044 2016-08-29  Nathan Sidwell  <nathan@acm.org>
1046         * config/nvptx/nvptx.c: #include tree-vrp.h.
1048 2016-08-28  Eric Botcazou  <ebotcazou@adacore.com>
1050         PR target/77324
1051         * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
1052         HIGH+LO construct during reload.
1054 2016-08-28  Tom de Vries  <tom@codesourcery.com>
1056         PR lto/70955
1057         * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
1058         'sysv_abi va_list' attribute.
1059         (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
1060         (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
1061         attributes.
1063 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1065         * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
1066         * emit-rtl.c (unshare_all_rtl_1): Adjust.
1067         (unshare_all_rtl_again): Likewise.
1068         * function.c (assign_stack_local_1): Likewise.
1069         (assign_stack_temp_for_type): Likewise.
1071 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1073         * cfgbuild.c (make_edges): Adjust.
1074         * cfgrtl.c (can_delete_label_p): Likewise.
1075         * dwarf2cfi.c (create_trace_edges): Likewise.
1076         * except.c (sjlj_emit_dispatch_table): Likewise.
1077         * function.h (struct expr_status): make x_forced_labels a vector.
1078         * jump.c (rebuild_jump_labels_1): Adjust.
1079         * reload1.c (set_initial_label_offsets): Likewise.
1080         * stmt.c (force_label_rtx): Likewise.
1081         (expand_label): Likewise.
1083 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1085         * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
1087 2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
1089         PR tree-optimization/71077
1090         PR tree-optimization/68542
1091         * fold-const.c (fold_relational_const): Fix folding of
1092         VECTOR_CST comparisons that have a scalar boolean result type.
1093         (selftest::test_vector_folding): New static function.
1094         (selftest::fold_const_c_tests): Call it.
1096 2016-08-27  Gerald Pfeifer  <gerald@pfeifer.com>
1098         * doc/extend.texi (SPU Built-in Functions): Remove stale
1099         references to material formerly at IBM and Sony.
1101 2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
1103         PR target/77349
1104         * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
1106 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
1108         * diagnostic-show-locus.c
1109         (selftest::test_fixit_consolidation): New function.
1110         (selftest::diagnostic_show_locus_c_tests): Call it.
1111         * gcc-rich-location.h (gcc_rich_location): Eliminate unused
1112         constructor based on source_range.
1114 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
1116         * diagnostic-color.c (color_dict): Add "fixit-insert" and
1117         "fixit-delete".
1118         (parse_gcc_colors): Update description of default GCC_COLORS.
1119         * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
1120         (colorizer::set_fixit_insert): New method.
1121         (colorizer::set_fixit_delete): New method.
1122         (colorizer::get_color_by_name): New method.
1123         (colorizer::STATE_FIXIT_INSERT): New constant.
1124         (colorizer::STATE_FIXIT_DELETE): New constant.
1125         (class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
1126         fields in favor of new field "m_stop_color".  Add fields
1127         "m_fixit_insert" and "m_fixit_delete".
1128         (colorizer::colorizer): Update for above changes.  Replace
1129         colorize_start calls with calls to get_color_by_name.
1130         (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
1131         STATE_FIXIT_DELETE.  Update for field renamings.
1132         (colorizer::finish_state): Simplify by using m_stop_color,
1133         rather than multiple identical "*_ce" fields.
1134         (colorizer::get_color_by_name): New method.
1135         (layout::print_any_fixits): Print insertions and replacements
1136         using the "fixit-insert" color, and deletions using the
1137         "fixit-delete" color.
1138         * doc/invoke.texi (-fdiagnostics-color): Update description of
1139         default GCC_COLORS, and of the supported capabilities.
1141 2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
1143         * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
1144         current_function_static_stack_size variable with the static
1145         stack frame size of the current function when
1146         flag_stack_usage_info is enabled.
1148 2016-08-26  Nathan Sidwell  <nathan@acm.org>
1150         * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
1151         assignment inside if condition.
1153 2016-08-26  Richard Biener  <rguenther@suse.de>
1155         PR tree-optimization/69047
1156         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
1157         extracts similar to what FRE does.
1158         (non_rewritable_mem_ref_base): Likewise.
1160 2016-08-26  Joseph Myers  <joseph@codesourcery.com>
1162         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
1163         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
1164         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1165         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1166         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
1167         Likewise.
1168         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1169         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1170         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1171         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
1172         * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1174 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1176         PR target/70473
1177         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
1178         reservation duration to 15 cycles.
1179         (cortex_a8_vfp_macs): Likewise.
1180         (cortex_a8_vfp_macd): Likewise.
1181         (cortex_a8_vfp_divs): Likewise.
1182         (cortex_a8_vfp_divd): Likewise.
1184 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1186         * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
1187         (aarch_macro_fusion_pair_p): Use above to avoid early return.
1189 2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
1190             Martin Jambhor  <mjambor@suse.cz>
1192         * common.opt: New option -fipa-bit-cp.
1193         * doc/invoke.texi: Document -fipa-bit-cp.
1194         * opts.c (default_options_table): Add entry for -fipa-bit-cp.
1195         (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
1196         * tree-ssa-ccp.h: New header file.
1197         * tree-ssa-ccp.c: Include tree-ssa-ccp.h
1198         (bit_value_binop_1): Change to bit_value_binop_1 and export it.
1199         Replace all occurences of tree parameter by two new params: signop, int.
1200         (bit_value_unop_1): Change to bit_value_unop and export it.
1201         Replace all occurences of tree parameter by two new params: signop,
1202         int.
1203         (bit_value_binop): Change call from bit_value_binop_1 to
1204         bit_value_binop.
1205         (bit_value_assume_aligned): Likewise.
1206         (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
1207         (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
1208         to ccp_finalize.
1209         (ccp_finalize): Skip processing if val->mask == 0.
1210         * ipa-cp.c: Include tree-ssa-ccp.h
1211         (ipcp_bits_lattice): New class.
1212         (ipcp_param_lattice (bits_lattice): New member.
1213         (print_all_lattices): Call ipcp_bits_lattice::print.
1214         (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
1215         (initialize_node_lattices): Likewise.
1216         (propagate_bits_accross_jump_function): New function.
1217         (propagate_constants_accross_call): Call
1218         propagate_bits_accross_jump_function.
1219         (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
1220         (ipcp_store_bits_results): New function.
1221         (ipcp_driver): Call ipcp_store_bits_results.
1222         * ipa-prop.h (ipa_bits): New struct.
1223         (ipa_jump_func): Add new member bits of type ipa_bits.
1224         (ipa_param_descriptor): Change decl to decl_or_type.
1225         (ipa_get_param): Change decl to decl_or_type and assert on
1226         PARM_DECL.
1227         (ipa_get_type): New function.
1228         (ipcp_transformation_summary): New member bits.
1229         * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
1230         (ipa_populate_param_decls): Likewise.
1231         (ipa_dump_param): Likewise.
1232         (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
1233         function.
1234         (ipa_set_jf_unknown): Set ipa_bits::known to false.
1235         (ipa_compute_jump_functions_for_edge): Compute jump function for bits
1236         propagation.
1237         (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
1238         (ipa_write_jump_function): Add streaming for ipa_bits.
1239         (ipa_read_jump_function): Add support for reading streamed ipa_bits.
1240         (write_ipcp_transformation_info): Add streaming for ipa_bits
1241         summary for ltrans.
1242         (read_ipcp_transfomration_info): Add support for reading streamed
1243         ipa_bits.
1244         (ipcp_update_bits): New function.
1245         (ipcp_transform_function): Call ipcp_update_bits.
1247 2016-08-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1249         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
1250         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
1252 2016-08-25  David Edelsohn  <dje.gcc@gmail.com>
1254         * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
1256 2016-08-25  Richard Biener  <rguenther@suse.de>
1258         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
1259         Only add locations in late dwarf.
1260         (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
1261         (dwarf2out_early_finish): But do it here.
1263 2016-08-24  Michael Collison  <michael.collison@linaro.org>
1264             Michael Collison  <michael.collison@arm.com>
1266         * config/arm/arm-modes.def: Add new condition code mode CC_V
1267         to represent the overflow bit.
1268         * config/arm/arm.c (maybe_get_arm_condition_code):
1269         Add support for CC_Vmode.
1270         (arm_gen_unlikely_cbranch): New function to generate common
1271         rtl conditional branches for overflow patterns.
1272         * config/arm/arm-protos.h: Add prototype for
1273         arm_gen_unlikely_cbranch.
1274         * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
1275         addsi3_compareV_upper): New patterns to support signed
1276         builtin overflow add operations.
1277         (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
1278         New patterns to support unsigned builtin add overflow operations.
1279         (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
1280         builtin overflow subtract operations,
1281         (usubv<mode>4): New patterns to support unsigned builtin subtract
1282         overflow operations.
1283         (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
1284         to support builtin overflow negate operations.
1286 2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1288         Revert
1289         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1291         * explow.c (get_dynamic_stack_size): Take known alignment of stack
1292         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1293         needed.
1295 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1297         * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
1298         MULTILIB_OPTIONS should be used.  Small wording fixes.
1299         * genmultilib: Memorize set of all option combinations in
1300         combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
1301         found in MULTILIB_OPTIONS by checking if option set is listed in
1302         combination_space.  Output new and existing error message to stderr.
1304 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1306         * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
1307         -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
1308         Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
1309         (MULTILIB_REUSE): Remove reuse rules for option set including
1310         -mfpu=fp-armv8 and -mfpu=vfpv4
1312 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
1314         * config/arm/t-rtems: Add vfp multilib.
1316 2016-08-23  Ian Lance Taylor  <iant@golang.org>
1318         * config/s390/s390.c (s390_asm_file_start): Call
1319         default_file_start.
1321 2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
1323         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
1324         initialization of all 0's to the 0 constant, instead of directly
1325         generating XOR.  Add support for V4SImode vector initialization on
1326         64-bit systems with direct move, and rework the ISA 3.0 V4SImode
1327         initialization.  Change variables used in V4SFmode vector
1328         intialization.  For V4SFmode vector splat on ISA 3.0, make sure
1329         any memory addresses are in index form.  Add support for using
1330         VSPLTH/VSPLTB to initialize vector short and vector char vectors
1331         with all of the same element.
1332         (regno_or_subregno): New helper function to return a register
1333         number for either REG or SUBREG.
1334         (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
1335         Use regno_or_subregno where possible.
1336         (rs6000_split_v4si_init_di_reg): New helper function to build up a
1337         DImode value from two SImode values in order to generate V4SImode
1338         vector initialization on 64-bit systems with direct move.
1339         (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
1340         initialization.
1341         (rtx_is_swappable_p): V4SImode vector initialization insn is not
1342         swappable.
1343         * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
1344         declaration.
1345         * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
1346         attributes to initialize V8HImode and V16QImode vectors with the
1347         same element.
1348         (VSX_SPLAT_COUNT): Likewise.
1349         (VSX_SPLAT_SUFFIX): Likewise.
1350         (UNSPEC_VSX_VEC_INIT): New unspec.
1351         (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
1352         Allow SFmode values to come from Altivec registers.
1353         (vsx_init_v4si): New insn/split for V4SImode vector initialization
1354         on 64-bit systems with direct move.
1355         (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
1356         vector initializations, to allow V4SImode vector initializations
1357         on 64-bit systems with direct move.
1358         (vsx_splat_v4si): Likewise.
1359         (vsx_splat_v4si_di): Likewise.
1360         (vsx_splat_v4sf): Likewise.
1361         (vsx_splat_v4sf_internal): Likewise.
1362         (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
1363         register classes.
1364         (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
1365         (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
1366         initializing V8HImode and V16QImode vectors with the same
1367         element.
1368         * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
1369         optimization if -maltivec=be.
1371 2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>
1373         * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
1374         attribute for alternatives 3 and 4.
1376 2016-08-23  David Malcolm  <dmalcolm@redhat.com>
1378         * selftest.c (selftest::assert_str_contains): New function.
1379         (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
1380         * selftest.h (selftest::assert_str_contains): New decl.
1381         (ASSERT_STR_CONTAINS): New macro.
1383 2016-08-23  Richard Biener  <rguenther@suse.de>
1385         PR tree-optimization/77286
1386         * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
1387         the CFG here.
1388         (vect_transform_loop): Split exit edges of loop and scalar
1389         loop if required and at the appropriate time.
1391 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1393         * explow.c (get_dynamic_stack_size): Take known alignment of stack
1394         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1395         needed.
1396         Correct a typo in a comment.
1398 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1400         * config/s390/s390.md ("*andc_split"): New splitter for and with
1401         complement.
1403 2016-08-23  Richard Biener  <rguenther@suse.de>
1405         PR tree-optimization/27336
1406         * tree-vrp.c (infer_value_range): Handle stmts that can throw
1407         by looking for a non-EH edge.
1408         (process_assert_insertions_for): Likewise.
1410 2016-08-23  Richard Biener  <rguenther@suse.de>
1412         PR middle-end/77305
1413         * statistics.c (statistics_counter_event): Robustify against
1414         NULL current_pass.
1416 2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1418         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
1419         for targets amdfam10 and barcelona.
1421 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
1423         * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
1424         (zero_extend<mode>di2): Ditto.
1425         (*zero_extend<mode>si2): Ditto.
1426         (*zero_extendqihi2): Ditto.
1428 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
1430         PR middle-end/77269
1431         * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
1432         (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
1434 2016-08-22  Patrick Palka  <ppalka@gcc.gnu.org>
1436         * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
1437         identical consecutive elements.
1438         [SSA_NAME]: Print the name's def stmt on its own line.  When printing
1439         the node's def stmt, avoid printing an unwanted trailing newline by
1440         replacing the call to print_gimple_stmt() with its inlined body and
1441         adjusting it to not set pp_needs_newline and to call pp_flush()
1442         instead of pp_newline_and_flush().
1444 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
1446         * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
1447         (float32_type_node, float64_type_node, float32x_type_node)
1448         (float128x_type_node): New macros.
1449         * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
1450         (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
1451         (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
1452         (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
1453         (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
1454         (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
1455         (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
1456         (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
1457         (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
1458         (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
1459         (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
1460         (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
1461         (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
1462         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
1463         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
1464         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
1465         * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
1466         (copysign, fabs, huge_val, inf, nan, nans): Use it.
1467         * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
1468         and copysign.
1469         (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
1470         (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
1471         * doc/extend.texi (Other Builtins): Document these built-in
1472         functions.
1473         * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
1474         for nan and nans.
1476 2016-08-22  Gerald Pfeifer  <gerald@pfeifer.com>
1478         * doc/install.texi (Binaries): www.opencsw.org now uses https.
1480 2016-08-22  Richard Biener  <rguenther@suse.de>
1482         * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
1484 2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
1486         PR target/77270
1487         * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
1488         TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
1489         non-SSE2 athlons only, otherwise prefer SSE prefetches.
1491 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
1493         * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
1494         (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
1495         (vrp_visit_switch_stmt): Likewise.
1496         (extract_range_from_stmt): Factored out from vrp_visit_stmt.
1497         (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
1498         (vrp_visit_stmt): Use extract_range_from_stmt.
1499         (vrp_visit_phi_node): Use extract_range_from_phi_node.
1501 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
1503         * Makefile.in: Add tree-vrp.h to GTFILES.
1504         * gengtype.c (open_base_files): Add tree-vrp.h.
1505         * asan.c: Add tree-vrp.h which now has the definition value_range_type.
1506         * builtins.c: Likewise.
1507         * fold-const.c: Likewise.
1508         * gimple-builder.c: Likewise.
1509         * gimple-laddress.c: Likewise.
1510         * hsa-gen.c: Likewise.
1511         * internal-fn.c: Likewise.
1512         * ssa.h: Likewise.
1513         * targhooks.c: Liewise,
1514         * tree-ssa-address.c: Likewise.
1515         * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
1516         * tree-vrp.c (struct value_range): Move to tree-vrp.h
1517         * tree-vrp.h: New file.
1519 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
1521         PR tree-optimization/61839
1522         * tree-vrp.c (two_valued_val_range_p): New.
1523         (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
1524         two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
1525         Also Convert VAR BINOP CST where VAR is two-valued to
1526         VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
1528 2016-08-19  David Malcolm  <dmalcolm@redhat.com>
1530         * diagnostic-show-locus.c
1531         (layout::annotation_line_showed_range_p): New method.
1532         (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
1533         Reimplement case fixit_hint::REPLACE to cover removals, and
1534         replacements where the range of the replacement isn't one
1535         of the ranges in the rich_location.
1536         (test_one_liner_fixit_replace): Likewise.
1537         (selftest::test_one_liner_fixit_replace_non_equal_range): New
1538         function.
1539         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
1540         New function.
1541         (selftest::test_diagnostic_show_locus_one_liner): Call the new
1542         functions.
1543         * diagnostic.c (print_parseable_fixits): Remove case
1544         fixit_hint::REMOVE.
1546 2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
1548         PR target/77270
1549         * config/i386/i386.c (ix86_option_override_internal): Remove
1550         PTA_PRFCHW from entries that also have PTA_3DNOW flag.
1551         Enable SSE prefetch also for TARGET_PREFETCHWT1.
1552         Do not try to enable TARGET_PRFCHW ISA flag here.
1553         * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
1554         Rewrite expander function body.
1555         (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
1557 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
1559         PR c/32187
1560         * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
1561         (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
1562         (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
1563         (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
1564         (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
1565         (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
1566         (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
1567         (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
1568         (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
1569         tree_index values.
1570         (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
1571         macros.
1572         (struct floatn_type_info): New structure type.
1573         (floatn_nx_types): New variable declaration.
1574         * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
1575         (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
1576         (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
1577         * tree.c (floatn_nx_types): New variable.
1578         (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
1579         corresponding complex types.
1580         * target.def (floatn_mode): New hook.
1581         * targhooks.c: Include "real.h".
1582         (default_floatn_mode): New function.
1583         * targhooks.h (default_floatn_mode): New prototype.
1584         * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
1585         types.
1586         * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
1587         effective-target and dg-add-options keywords.
1588         (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
1589         Document new effective-target keywords.
1590         * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
1591         * doc/tm.texi: Regenerate.
1592         * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
1593         __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
1594         [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
1595         18661-3.
1596         * real.h (struct real_format): Add field ieee_bits.
1597         * real.c (ieee_single_format, mips_single_format)
1598         (motorola_single_format, spu_single_format, ieee_double_format)
1599         (mips_double_format, motorola_double_format)
1600         (ieee_extended_motorola_format, ieee_extended_intel_96_format)
1601         (ieee_extended_intel_128_format)
1602         (ieee_extended_intel_96_round_53_format, ibm_extended_format)
1603         (mips_extended_format, ieee_quad_format, mips_quad_format)
1604         (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
1605         (decimal_double_format, decimal_quad_format, ieee_half_format)
1606         (arm_half_format, real_internal_format: Initialize ieee_bits
1607         field.
1608         * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
1609         float128_type_node.  Set float80_type_node to float64x_type_node
1610         if appropriate and long_double_type_node not appropriate.
1611         * config/ia64/ia64.c (ia64_init_builtins): Likewise.
1612         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
1613         Initialize ieee_bits field.
1614         * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
1615         (rs6000_init_builtins): Set ieee128_float_type_node to
1616         float128_type_node.
1617         (rs6000_floatn_mode): New function.
1619 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
1621         * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
1622         _rdseed64_step): Uglify argument names and/or local variable names
1623         in inline functions.
1624         * config/i386/rtmintrin.h (_xabort): Likewise.
1625         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
1626         _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
1627         _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
1628         _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
1629         _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
1630         _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
1631         _mm_maskz_ternarylogic_epi32): Likewise.
1632         * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
1633         __lwpins32, __lwpins64): Likewise.
1634         * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
1635         _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
1636         _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
1637         _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
1638         _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
1639         _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
1640         _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
1641         _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
1642         _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
1643         _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
1644         _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
1645         _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
1646         _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
1647         _mm256_mask_i64gather_epi32): Likewise.
1648         * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1649         * config/i386/ia32intrin.h (__writeeflags): Likewise.
1650         * config/i386/pkuintrin.h (_wrpkru): Likewise.
1651         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
1652         _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
1653         _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
1654         _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
1655         _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
1656         _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
1657         _mm512_mask_prefetch_i64scatter_ps): Likewise.
1658         * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1659         * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
1660         _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
1661         _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
1662         _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
1663         _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
1664         _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
1665         _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
1667         * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
1668         returning void.
1669         (_fxrstor, _fxsave64, _fxrstor64): Likewise.
1670         * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
1671         Likewise.
1672         * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
1673         * config/i386/pkuintrin.h (_wrpkru): Likewise.  Add space after
1674         function name.
1675         (_rdpkru_u32): Add space after function name.
1677         * config/i386/t-i386 (i386-c.o): Don't depend on
1678         i386-builtin-types.inc.
1679         (i386.o): Depend on i386-builtin-types.inc.
1681 2016-08-19  Matthew Wahab  <matthew.wahab@arm.com>
1683         PR target/77281
1684         * config/arm/arm.c (neon_valid_immediate): Delete declaration.
1685         Use const_vec_duplicate to check for duplicated elements.
1687 2016-08-19  Richard Biener  <rguenther@suse.de>
1689         PR tree-optimization/77290
1690         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1691         Fix flag_tree_parallelize_loops check.
1693 2016-08-19  Richard Biener  <rguenther@suse.de>
1695         * match.pd (x | 0 -> x): Add.
1697 2016-08-19  Richard Biener  <rguenther@suse.de>
1699         PR tree-optimization/77286
1700         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
1701         Deal with virtual PHIs being out-of-order.
1703 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1705         * doc/invoke.texi (fverbose-asm): Note that source code lines
1706         are emitted, and provide an example.
1707         * final.c (asm_show_source): New function.
1708         (final_scan_insn): Call asm_show_source.
1710 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1712         * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
1713         param with diagnostic_kind.
1714         (class colorizer): Similarly replace field m_diagnostic with
1715         m_diagnostic_kind.
1716         (colorizer::colorizer): Replace diagnostic
1717         param with diagnostic_kind.
1718         (colorizer::begin_state): Update for above field change.
1719         (layout::layout): Replace diagnostic param with rich_location *
1720         and diagnostic_kind.
1721         (diagnostic_show_locus): Replace diagnostic param with richloc
1722         and diagnostic_kind.
1723         (class selftest::test_diagnostic_context): New class.
1724         (selftest::test_diagnostic_show_locus_unknown_location): New
1725         function.
1726         (selftest::test_one_liner_simple_caret): New function.
1727         (selftest::test_one_liner_caret_and_range): New function.
1728         (selftest::test_one_liner_multiple_carets_and_ranges): New
1729         function.
1730         (selftest::test_one_liner_fixit_remove): New function.
1731         (selftest::test_one_liner_fixit_replace): New function.
1732         (selftest::test_diagnostic_show_locus_one_liner): New function.
1733         (selftest::diagnostic_show_locus_c_tests): Call the new test
1734         functions.
1735         * diagnostic.c (diagnostic_initialize): Initialize
1736         colorize_source_p, show_ruler_p and parseable_fixits_p.
1737         (default_diagnostic_finalizer): Update for change to
1738         diagnostic_show_locus.
1739         (diagnostic_append_note): Likewise.
1740         * diagnostic.h (diagnostic_show_locus): Replace
1741         const diagnostic_info * param with location * and diagnostic_t.
1743 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1745         * input.c (saved_line_table): New global.
1746         (class selftest::temp_line_table): Rename to line_table_test and
1747         move declaration to selftest.h, and drop field m_old_line_table.
1748         (selftest::temp_line_table::temp_line_table): Rename ctor to...
1749         (selftest::line_table_test::line_table_test): ...this.  Add a
1750         default ctor.  Store current value of line_table within
1751         saved_line_table.
1752         (selftest::temp_line_table::~temp_line_table): Rename dtor to...
1753         (selftest::line_table_test::~line_table_test): ...this, and
1754         restore line_table from the saved_line_table, rather than
1755         m_old_line_table.
1756         (selftest::test_accessing_ordinary_linemaps): Update for above
1757         renaming.
1758         (selftest::test_lexer): Likewise.
1759         (struct selftest::lexer_test): Likewise.
1760         (selftest::lexer_test::lexer_test): Likewise.
1761         (selftest::input_c_tests): Move the looping over test cases from
1762         here into...
1763         (selftest::for_each_line_table_case): New function.
1764         * input.h (saved_line_table): New decl.
1765         * selftest.h (struct selftest::line_table_case): New forward decl.
1766         (class selftest::line_table_test): New class, moved here from
1767         selftest::temp_line_table in input.c, and renamed.
1768         (selftest::for_each_line_table_case): New decl.
1770 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
1772         PR target/72839
1773         * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
1775 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
1777         PR middle-end/70895
1778         * gimplify.c (omp_add_variable): Adjust/add variable mapping on
1779         enclosing parallel construct for reduction variables on OpenACC loop
1780         directives.
1782 2016-08-18  Pierre-Marie de Rodat  <derodat@adacore.com>
1784         * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
1785         (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
1786         -gdwarf-3.
1787         (function_to_dwarf_procedure): Update comment.
1789 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
1791         * input.c (diagnostics_file_cache_forcibly_evict_file): New
1792         function.
1793         * input.h (diagnostics_file_cache_forcibly_evict_file): New
1794         declaration.
1795         * selftest.c (selftest::temp_source_file::~temp_source_file):
1796         Evict m_filename from the diagnostic file cache.
1798 2016-08-18  Richard Biener  <rguenther@suse.de>
1800         * tree-pass.h (make_pass_materialize_all_clones): Declare.
1801         * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
1802         make_pass_materialize_all_clones): New simple IPA pass encapsulating
1803         clone materialization.
1804         * passes.def (all_late_ipa_passes): Start with
1805         pass_materialize_all_clones.
1806         * cgraphunit.c (symbol_table::compile): Remove call to
1807         materialize_all_clones.
1808         * tree-into-ssa.c: Include statistics.h.
1809         (update_ssa): Count number of times we do incremental/rewrite
1810         SSA update.
1812 2016-08-18  Richard Biener  <rguenther@suse.de>
1814         PR tree-optimization/77282
1815         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1816         When doing auto-parallelizing also prevent use of PHIs that
1817         carry dependences across loop backedges.
1819 2016-08-18  Tamar Christina  <tamar.christina@arm.com>
1820             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1822         * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
1824 2016-08-18  Richard Biener  <rguenther@suse.de>
1826         * ssa-iterators.h (ssa_vuse_operand): New inline.
1827         * tree-if-conv.c (ifc_temp_var): Update virtual operand.
1828         (predicate_all_scalar_phis): Use remove_phi_node to remove
1829         phi nodes predicated.  Delay removing virtual PHIs.
1830         (predicate_mem_writes): Update virtual operands.
1831         (combine_blocks): Likewise.  Propagate out remaining virtual PHIs.
1832         (tree_if_conversion): Do not rewrite virtual SSA form.
1833         * tree-phinodes.c (release_phi_node): Make static.
1834         * tree-phinodes.h (release_phi_node): Remove.
1836 2016-08-18  Jakub Jelinek  <jakub@redhat.com>
1838         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
1839         codes that appear in bdesc_* arrays, instead include i386-builtin.def
1840         twice to define those.
1841         (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
1842         bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
1843         bdesc_multi_arg): Define by including i386-builtin.def the third time.
1844         * config/i386/i386-builtin.def: New file.
1846 2016-08-17  David Malcolm  <dmalcolm@redhat.com>
1848         * input.c (get_source_range_for_char): Rename to...
1849         (selftest::get_source_range_for_char): ...this, and move within
1850         the #if CHECKING_P guard.
1851         (get_num_source_ranges_for_substring): Rename to...
1852         (selftest::get_num_source_ranges_for_substring): ...this, move
1853         within the #if CHECKING_P guard, and make static.
1854         (selftest::assert_num_substring_ranges): Initialize
1855         actual_num_ranges.
1857 2016-08-18  Alan Modra  <amodra@gmail.com>
1859         PR rtl-optimization/72771
1860         * reload.c (find_reloads): Don't assume that a subreg mem is OK
1861         when find_reloads_toplev returns address_reloaded==-1.
1862         (alternative_allows_const_pool_ref): Update comment.
1864 2015-08-17  Alan Hayward  <alan.hayward@arm.com>
1866         PR tree-optimization/71752
1867         * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
1868         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
1870 2016-08-17  Jakub Jelinek  <jakub@redhat.com>
1872         * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
1873         instead of testing ECF_NORETURN bit in gimple_call_flags.
1874         * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
1875         * predict.c (tree_bb_level_predictions): Likewise.
1876         * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
1878         PR middle-end/77259
1879         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
1880         turning a call into __builtin_unreachable-like noreturn call, adjust
1881         gimple_call_set_fntype.
1882         * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
1883         gimple_call_fntype has void return type.
1885 2016-08-17  Chung-Lin Tang  <cltang@codesourcery.com>
1887         * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
1888         maybe_lookup_decl, to handle nested acc loop directives.
1890 2016-08-17  Richard Biener  <rguenther@suse.de>
1892         PR tree-optimization/76490
1893         * tree-vrp.c (update_value_range): Preserve overflow infinities
1894         when intersecting with ranges from get_range_info.
1895         (operand_less_p): Handle overflow infinities correctly.
1896         (value_range_constant_singleton): Use vrp_operand_equal_p
1897         to handle overflow max/min correctly.
1898         (vrp_valueize): Likewise.
1899         (union_ranges): Likewise.
1900         (intersect_ranges): Likewise.
1901         (vrp_visit_phi_node): Improve iteration limitation to only
1902         apply when we'll possibly re-visit the PHI via a changed argument
1903         on the backedge.
1905 2016-08-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1907         * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
1908         (MULTILIB_REQUIRED): This by specifying multilib needing to be built
1909         rather than those that should not be built.
1911 2016-08-17  Stanislaw Halik  <sthalik@misaki.pl>
1913         PR target/66488
1914         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
1916 2016-08-17  Richard Biener  <rguenther@suse.de>
1918         * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
1919         (verify_vssa): New function verifying virtual SSA form.
1920         (verify_ssa): Call it.
1921         * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
1922         Do not apply loop-closed SSA handling to virtuals.
1923         * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
1924         * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
1925         when rewriting their symbol.
1926         (prepare_def_site_for): Likewise.
1927         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
1928         operands of moved stmts.
1930 2016-08-17  Richard Biener  <rguenther@suse.de>
1932         PR tree-optimization/23855
1933         * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
1934         (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
1935         find guards to hoist.  Do not update SSA form but rewrite virtuals
1936         into loop closed SSA.
1937         (find_loop_guard): Adjust to skip already hoisted guards.  Do
1938         not mark virtuals for renaming or update SSA form.
1940 2016-08-17  Martin Liska  <mliska@suse.cz>
1942         * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
1943         a LONG_LONG_TYPE_SIZE comparison.
1944         * gcov-io.h: Remove macro definitions.
1945         * tree-profile.c (gimple_gen_edge_profiler): Replace usage
1946         of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
1947         comparison.
1949 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
1951         * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
1952         that builtins not mentioned in bdesc_* arrays come first, then
1953         the ones mentioned in bdesc_* arrays in the order they appear in
1954         the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
1955         IX86_BUILTIN__BDESC_*_LAST enumerator.
1956         (bdesc_mpx): Fix up a comment typo.
1957         (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
1958         __builtin_ia32_vpcomneu[bwdq] builtins.
1959         (BDESC_VERIFY, BDESC_VERIFYS): Define.
1960         (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
1961         enum ix86_builtins ordering.
1962         (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
1963         for direct bdesc_* array member access instead of searching all the
1964         arrays until an fcode match is found.
1966 2016-08-16  Uros Bizjak  <ubizjak@gmail.com>
1968         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
1969         pattern as define_insn_and_split.  Split insn before reload to
1970         ashl<mode>3_1.
1971         (*<shift_insn><mode>3_mask): Ditto.  Split insn before reload to
1972         <shift_insn><mode>3_1.
1973         (*<rotate_insn><mode>3_mask): Ditto.  Split insn before reload to
1974         <rotate_insn><mode>3_1.
1976 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
1978         PR c/72857
1979         * input.c (get_source_range_for_substring): Rename to...
1980         (get_source_location_for_substring): ...this, adding param
1981         "caret_idx", and converting output param from source_range * to
1982         location_t *.
1983         (get_source_range_for_char): New function.
1984         (get_num_source_ranges_for_substring): Update comment to reflect
1985         above renaming.
1986         (assert_char_at_range): Update to use get_source_range_for_char
1987         rather than get_source_range_for_substring.
1988         (test_lexer_string_locations_concatenation_2): Likewise.
1989         * substring-locations.h (get_source_range_for_substring): Rename
1990         to...
1991         (get_source_location_for_substring): ...this, and adding param
1992         "caret_idx", and converting output param from source_range * to
1993         location_t *.
1995 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
1997         * input.c (class selftest::temp_source_file): Move to
1998         selftest.h.
1999         (selftest::temp_source_file::temp_source_file): Move to
2000         selftest.c.
2001         (selftest::temp_source_file::~temp_source_file): Likewise.
2002         * selftest.c (selftest::temp_source_file::temp_source_file): Move
2003         here from input.c.
2004         (selftest::temp_source_file::~temp_source_file): Likewise.
2005         * selftest.h (class selftest::temp_source_file): Move here from
2006         input.c
2008 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
2010         PR target/71910
2011         * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before
2012         inlining, add cgraph edge for the added __builtin_unreachable call.
2014         PR middle-end/67485
2015         * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
2016         only cast it to SHWI for the final comparison.
2018 2016-08-16  Martin Liska  <mliska@suse.cz>
2020         PR gcov-profile/36412
2021         * doc/gcov.texi: Document --hash-filenames(-x).
2022         * gcov.c (print_usage): Add the option.
2023         (process_args): Process the option, sort options alphabetically.
2024         (md5sum_to_hex): New function.
2025         (make_gcov_file_name): Do the md5sum and append it to a
2026         filename.
2028 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
2030         PR tree-optimization/69848
2031         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
2032         and swtich operands to avoid additional NOT instruction.
2033         (vcond<v_cmp_mixed><mode>): Ditto.
2034         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2036 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
2038         * doc/install.texi (*-*-solaris2*): Adjust latest change.
2040 2016-08-16  Richard Biener  <rguenther@suse.de>
2042         PR tree-optimization/76783
2043         * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
2044         BB visited flags at start.
2046 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
2048         PR tree-optimization/72817
2049         PR tree-optimization/73450
2050         * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
2051         multiple_of_p for adjusted IV.base.
2053 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
2055         PR target/72867
2056         * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
2057         Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
2058         for !flag_finite_math_only or flag_signed_zeros.
2059         (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
2060         *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
2061         depend on flag_finite_math_only.
2062         (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
2063         New insn pattern.
2064         (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
2065         (*ieee_smin<mode>3): Ditto.
2066         (*ieee_smax<mode>3): Ditto.
2067         * config/i386/mmx.md (mmx_<code>v2sf3): Emit
2068         mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
2069         flag_signed_zeros.
2070         (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
2071         depend on flag_finite_math_only.
2072         (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
2073         (*mmx_<code>v2sf3): Remove.
2074         * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
2075         * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
2076         flag_signed_zeros instead of !flag_unsafe_math_optimizations.
2078 2016-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
2080         PR rtl-optimization/73650
2081         * lra-constraints.c (simple_move_p): If the insn is multiple_sets
2082         it is not a simple move.
2084 2016-08-15  Martin Liska  <mliska@suse.cz>
2086         PR driver/72765
2087         * gcc.c (do_spec_1): Call save_string with the right size.
2088         (save_string): Do an assert about string we copy.
2090 2016-08-15  Richard Biener  <rguenther@suse.de>
2092         * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
2093         * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
2094         TV_MACH_DEP.
2095         (pass_data_stv): Likewise.
2097 2016-08-15  Richard Biener  <rguenther@suse.de>
2099         PR tree-optimization/73434
2100         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
2101         TBAA info on the base when forwarding a non-invariant address.
2103 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
2105         * dwarf2out.c (struct checksum_attributes): Add
2106         at_string_length_bit_size and at_string_length_byte_size fields.
2107         (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
2108         and DW_AT_string_length_byte_size.
2109         (die_checksum_ordered): Handle at_string_length_bit_size and
2110         at_string_length_byte_size.
2111         (gen_array_type_die): For dwarf_version >= 5 emit
2112         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2113         (adjust_string_types): For dwarf_version >= 5 remove
2114         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2115         (resolve_addr): Likewise.
2117         PR debug/71906
2118         * dwarf2out.c (string_types): New variable.
2119         (gen_array_type_die): Change early_dwarf handling of
2120         DW_AT_string_length, create DW_OP_call4 referencing the
2121         length var temporarily.  Handle parameters that are pointers
2122         to string length.
2123         (adjust_string_types): New function.
2124         (gen_subprogram_die): Temporarily set string_types to local var,
2125         call adjust_string_types if needed.
2126         (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
2127         New functions.
2128         (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
2130 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
2132         * doc/install.texi (*-*-solaris2*): Fix version number and document
2133         requirement on GNU make for building libjava with the Solaris linker.
2135 2016-08-15  Martin Liska  <mliska@suse.cz>
2136             Jakub Jelinek  <jakub@redhat.com>
2138         PR tree-optimization/72824
2139         * tree-loop-distribution.c (const_with_all_bytes_same)
2140         <case VECTOR_CST>: Fix a typo.
2142 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
2144         PR target/76342
2145         * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
2146         Renamed from _mm512_undefined_si512.
2147         (_mm_undefined_si512): New definition.
2149 2016-08-13  Richard Biener  <rguenther@suse.de>
2151         * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
2152         into PHIs and update the lattice for its def.
2154 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
2156         PR c/71512
2157         * ubsan.c (instrument_si_overflow): Pass true instead of false
2158         to gsi_replace.
2159         (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
2160         of bbs.  Return TODO_cleanup_cfg if any returned true.
2162 2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
2164         * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
2165         ISA 3.0 MTVSRDD instruction.
2166         (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
2167         vecperm.
2169 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2171         PR tree-optimization/71083
2172         * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
2173         bitfield access when possible.
2175 2016-08-12  Patrick Palka  <ppalka@gcc.gnu.org>
2177         PR middle-end/71654
2178         * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
2179         sign-changing cast from a shorter unsigned type to a wider
2180         signed type.
2182 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
2184         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
2185         vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
2186         vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
2188 2016-08-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2190         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2191         Correct costs for vec_construct.
2193 2016-08-12  Bin Cheng  <bin.cheng@arm.com>
2195         PR tree-optimization/69848
2196         * tree-vectorizer.h (enum vect_def_type): New condition reduction
2197         type CONST_COND_REDUCTION.
2198         * tree-vect-loop.c (vectorizable_reduction): Support new condition
2199         reudction type CONST_COND_REDUCTION.
2201 2016-08-12  Richard Biener  <rguenther@suse.de>
2203         PR tree-optimization/57326
2204         * tree-ssa-pre.c (fully_constant_expression): Handle simplification
2205         returning an SSA name.
2206         (phi_translate_1): When fully_constant_expression returns a NAME
2207         make sure we have a leader for it.
2209 2016-08-12  Martin Liska  <mliska@suse.cz>
2210             Adam Fineman  <afineman@afineman.com>
2212         * gcov.c (process_file): Create .gcov file when .gcda
2213         file is missing.
2215 2016-08-12  Marek Polacek  <polacek@redhat.com>
2217         PR c/7652
2218         * alias.c (find_base_value): Adjust fall through comment.
2219         * cfgexpand.c (expand_debug_expr): Likewise.
2220         * combine.c (find_split_point): Likewise.
2221         (expand_compound_operation): Likewise.  Add FALLTHRU.
2222         (make_compound_operation): Adjust fall through comment.
2223         (canon_reg_for_combine): Add FALLTHRU.
2224         (force_to_mode): Adjust fall through comment.
2225         (simplify_shift_const_1): Likewise.
2226         (simplify_comparison): Likewise.
2227         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
2228         FALLTHRU.
2229         * config/aarch64/predicates.md: Likewise.
2230         * config/i386/i386.c (function_arg_advance_32): Likewise.
2231         (ix86_gimplify_va_arg): Likewise.
2232         (print_reg): Likewise.
2233         (ix86_print_operand): Likewise.
2234         (ix86_build_const_vector): Likewise.
2235         (ix86_expand_branch): Likewise.
2236         (ix86_sched_init_global): Adjust fall through comment.
2237         (ix86_expand_args_builtin): Add FALLTHRU.
2238         (ix86_expand_builtin): Likewise.
2239         (ix86_expand_vector_init_one_var): Likewise.
2240         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
2241         (rs6000_adjust_cost): Likewise.
2242         (insn_must_be_first_in_group): Likewise.
2243         * config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
2244         * dbxout.c (dbxout_symbol): Adjust fall through comment.
2245         * df-scan.c (df_uses_record): Likewise.
2246         * dojump.c (do_jump): Add FALLTHRU.
2247         * dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
2248         comment.
2249         (resolve_args_picking_1): Adjust fall through comment.
2250         (loc_list_from_tree_1): Likewise.
2251         * expmed.c (make_tree): Likewise.
2252         * expr.c (expand_expr_real_2): Add FALLTHRU.
2253         (expand_expr_real_1): Likewise.  Adjust fall through comment.
2254         * fold-const.c (const_binop): Adjust fall through comment.
2255         (fold_truth_not_expr): Likewise.
2256         (fold_cond_expr_with_comparison): Add FALLTHRU.
2257         (fold_binary_loc): Likewise.
2258         (contains_label_1): Adjust fall through comment.
2259         (multiple_of_p): Likewise.
2260         * gcov-tool.c (process_args): Add FALLTHRU.
2261         * genattrtab.c (check_attr_test): Likewise.
2262         (write_test_expr): Likewise.
2263         * genconfig.c (walk_insn_part): Likewise.
2264         * genpreds.c (validate_exp): Adjust fall through comment.
2265         (needs_variable): Likewise.
2266         * gensupport.c (get_alternatives_number): Add FALLTHRU.
2267         (subst_dup): Likewise.
2268         * gimple-pretty-print.c (dump_gimple_assign): Likewise.
2269         * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
2270         (gimplify_scan_omp_clauses): Add FALLTHRU.
2271         (goa_stabilize_expr): Likewise.
2272         * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
2273         through comment.
2274         * hsa-gen.c (get_address_from_value): Likewise.
2275         * ipa-icf.c (sem_function::hash_stmt): Likewise.
2276         * ira.c (ira_setup_alts): Add FALLTHRU.
2277         * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
2278         comment.
2279         * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
2280         * opts.c (common_handle_option): Likewise.
2281         * read-rtl.c (read_rtx_code): Likewise.
2282         * real.c (round_for_format): Likewise.
2283         * recog.c (asm_operand_ok): Likewise.
2284         * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
2285         * reload1.c (set_label_offsets): Likewise.
2286         (eliminate_regs_1): Likewise.
2287         (reload_reg_reaches_end_p): Likewise.
2288         * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
2289         (rtx_cost): Likewise.
2290         * sched-rgn.c (is_exception_free): Likewise.
2291         * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
2292         * stor-layout.c (int_mode_for_mode): Likewise.
2293         * toplev.c (print_to_asm_out_file): Likewise.
2294         (print_to_stderr): Likewise.
2295         * tree-cfg.c (gimple_verify_flow_info): Likewise.
2296         * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
2297         (chrec_fold_multiply): Likewise.
2298         (evolution_function_is_invariant_rec_p): Likewise.
2299         (for_each_scev_op): Likewise.
2300         * tree-data-ref.c (siv_subscript_p): Likewise.
2301         (get_references_in_stmt): Likewise.
2302         * tree.c (find_placeholder_in_expr): Adjust fall through comment.
2303         (substitute_in_expr): Likewise.
2304         (type_cache_hasher::equal): Likewise.
2305         (walk_type_fields): Likewise.
2306         * var-tracking.c (adjust_mems): Add FALLTHRU.
2307         (set_dv_changed): Adjust fall through comment.
2308         * varasm.c (default_function_section): Add FALLTHRU.
2310 2016-08-12  Marek Polacek  <polacek@redhat.com>
2312         PR c/7652
2313         * tree-complex.c (expand_complex_division): Add missing break.
2315 2016-08-12  Richard Biener  <rguenther@suse.de>
2317         * passes.c (execute_todo): Do not push/pop TV_TODO.
2318         (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
2319         (execute_one_pass): Likewise.
2320         * common.opt (ftime-report-details): New switch.
2321         * doc/invoke.texi (ftime-report-details): Document.
2322         * timevar.h (timer::print_row): Adjust signature.
2323         (timer::all_zero): New static helper.
2324         (timer::child_map_t): New typedef.
2325         (timer::time_var_def): Add children field.
2326         * timevar.c (timer::named_items::print): Adjust.
2327         (timer::~timer): Free timevar recorded children.
2328         (timer::pop_internal): When -ftime-report-details record
2329         time spent in sub-timevars.
2330         (timer::print_row): Adjust.
2331         (timer::print): Print sub-timevar stats, use all_zero.
2332         * timevar.def (TV_TODO): Remove.
2334 2016-08-12  Richard Biener  <rguenther@suse.de>
2336         PR tree-optimization/72851
2337         * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
2338         worklists to use bitmaps indexed in execution order.
2339         (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
2340         bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
2341         (cfg_blocks): Make a bitmap.
2342         (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
2343         New globals.
2344         (cfg_blocks_empty_p): Adjust.
2345         (cfg_blocks_add): Likewise.
2346         (cfg_blocks_get): Likewise.
2347         (add_ssa_edge): Likewise.
2348         (add_control_edge): Likewise.
2349         (simulate_stmt): Likewise.
2350         (process_ssa_edge_worklist): Likewise.
2351         (simulate_block): Likewise.
2352         (ssa_prop_init): Compute PRE order and stmt UIDs.
2353         (ssa_prop_fini): Adjust.
2354         (ssa_propagate): Adjust.
2356 2016-08-12  Richard Biener  <rguenther@suse.de>
2358         * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
2359         the currently executable edges have fixed ranges.  Always
2360         go through update_value_range.
2362 2016-08-12  Alexandre Oliva  <aoliva@redhat.com>
2364         PR debug/63240
2365         * langhooks-def.h
2366         (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
2367         (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
2368         (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
2369         (LANG_HOOKS_DECLS): Add it.
2370         * langhooks.h (struct lang_hooks_for_decls): Add
2371         function_decl_defaulted.  Const_tree-ify
2372         function_decl_explicit_p and function_decl_deleted_p.
2373         * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
2374         attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
2375         also at strict DWARF v5.
2377         PR debug/55641
2378         * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
2379         TYPE_QUAL_CONST in reference-typed decls.
2381         PR debug/49366
2382         * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
2383         in DW_OP_pieces, just enough to handle pointers to member
2384         functions.
2385         (gen_remaining_tmpl_value_param_die_attribute): Use a location
2386         expression on DWARFv5 if a constant value doesn't work.
2388 2016-08-11  David Malcolm  <dmalcolm@redhat.com>
2390         * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
2391         * selftest.c (selftest::test_assertions): New function.
2392         (selftest::selftest_c_tests): New function.
2393         * selftest.h (selftest::selftest_c_tests): New declaration.
2395 2016-08-11  Richard Biener  <rguenther@suse.de>
2396             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2398         PR rtl-optimization/72855
2399         * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
2401 2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2403         PR target/72863
2404         * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
2405         (vsx_store_<mode>): Likewise.
2407 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
2409         * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
2410         TImode CONST_WIDE_INT store.
2411         (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
2413 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
2415         * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
2416         mode if unaligned SSE load and store are optimal.
2418 2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2420         PR tree-optimization/71083
2421         * tree-predcom.c (ref_at_iteration): Correctly align the
2422         reference type.
2424 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2426         * config/s390/s390-builtin-types.def: Add INT128 types.
2427         * config/s390/s390-builtins.def: Add INT128 variants for the add
2428         sub low-level builtins dealing with TImode.
2429         * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
2430         via subreg when expanding a builtin.
2431         * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
2432         UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
2433         Fix comment.
2434         * config/s390/vecintrin.h: Adjust builtin names accordingly.
2435         * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
2436         ("vec_addc<mode>", "vec_addc_u128"): Merge to
2437         "vacc<bhfgq>_<mode>".
2438         ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
2439         ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
2440         ("vec_subc<mode>", "vec_subc_u128"): Merge to
2441         "vscbi<bhfgq>_<mode>".
2442         ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
2443         ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
2445 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2447         * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
2449 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
2451         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
2452         unused declaration.
2453         (vcond<v_cmp_mixed><mode>): Ditto.
2454         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2456 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
2458         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
2459         variable explicitly, also assert on it before use.
2461 2016-08-11  Richard Biener  <rguenther@suse.de>
2463         PR tree-optimization/72772
2464         * cfgloopmanip.c (create_preheader): Use split_edge if there
2465         is a single loop entry, avoiding degenerate PHIs.
2467 2016-08-11  Richard Biener  <rguenther@suse.de>
2469         * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
2470         unconditional TODO_cleanup_cfg.
2471         (pass_thread_jumps::execute): Initialize loops, perform a CFG
2472         cleanup only if we threaded a jump.
2474 2016-08-11  Alan Modra  <amodra@gmail.com>
2476         PR target/71680
2477         * lra-constraints.c (simplify_operand_subreg): Allow subreg
2478         mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
2479         slow.  Emit two reloads for slow mem case, first loading in
2480         fast innermode, then converting to required mode.
2482 2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2484         * config/rs6000/altivec.h (vec_extract_exp): New macro.
2485         (vec_extract_sig): New macro.
2486         (vec_insert_exp): New macro.
2487         (vec_test_data_class): New macro.
2488         (scalar_extract_exp): New macro.
2489         (scalar_extract_sig): New macro.
2490         (scalar_insert_exp): New macro.
2491         (scalar_test_data_class): New macro.
2492         (scalar_test_neg): New macro.
2493         (scalar_cmp_exp_gt): New macro.
2494         (scalar_cmp_exp_lt): New macro.
2495         (scalar_cmp_exp_eq): New macro.
2496         (scalar_cmp_exp_unordered): New macro.
2497         * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
2498         to enforce constraint that operand is a 7-bit unsigned literal.
2499         * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
2500         for power9 built-ins.
2501         (BU_P9V_VSX_2): Likewise.
2502         (BU_P9V_64BIT_VSX_2): Likewise.
2503         (VSEEDP): Add scalar extract exponent support.
2504         (VSEESP): Add scalar extract signature support.
2505         (VSTDCNDP): Add scalar test negative support.
2506         (VSTDCNSP): Likewise.
2507         (VSIEDP): Add scalar insert exponent support.
2508         (VSCEDPGT): Add scalar compare exponent greater than support.
2509         (VSCEDPLT): Add scalar compare exponent less than support.
2510         (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
2511         (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
2512         (VSTDCDP): Add scalar test data class support.
2513         (VSTDCSP): Likewise.
2514         (VSEEDP): Add overload support for scalar extract exponent
2515         operation.
2516         (VSESDP): Add overload support for scalar extract signature
2517         operation.
2518         (VSTDCN): Add overload support for scalar test negative
2519         operation.
2520         (VSTDCNDP): Add overload support for scalar test negative
2521         operation.
2522         (VSTDCNSP): Add overload support for scalar test negative
2523         operation.
2524         (VSIEDP): Add overload support for scalar insert exponent
2525         operation.
2526         (VSTDC): Add overload support for scalar test data class
2527         operation.
2528         (VSTDCDP): Add overload support for scalar test data class
2529         operation.
2530         (VSTDCSP): Add overload support for scalar test data class
2531         opreation.
2532         (VSCEDPGT): Add overload support for scalar compare exponent
2533         greater than operation.
2534         (VSCEDPLT): Add overload support for scalar compare exponent
2535         less than operation.
2536         (VSCEDPEQ): Add overload support for scalar compare exponent
2537         test-for-equality operation.
2538         (VSCEDPUO): Add overload support for scalar compare exponent
2539         test-for-unordered operation.
2540         (VEEDP): Add vector extract exponent support.
2541         (VEESP): Likewise.
2542         (VESDP): Add vector extract significand support.
2543         (VESSP): Likewise.
2544         (VIEDP): Add vector insert exponent support.
2545         (VIESP): Likewise.
2546         (VTDCDP): Add vector test data class support.
2547         (VTDCSP): Likewise.
2548         (VES): Add overload support for vector extract significand operation.
2549         (VESDP): Likewise.
2550         (VESSP): Likewise
2551         (VEE): Add overload support for vector extract exponent operation.
2552         (VEEDP): Likewise.
2553         (VEESP): Likewise.
2554         (VTDC): Add overload support for vector test data class operation.
2555         (VTDCDP): Likewise.
2556         (VTDCSP): Likewise.
2557         (VIE): Add overload support for vector insert exponent operation.
2558         (VIEDP): Likewise.
2559         (VIESP): Likewise.
2560         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2561         overloaded binary floating point functions.
2562         (altivec_resolve_overloaded_builtin): Improve error messages to
2563         distinguish between functions not supported in the current
2564         compiler configuration and functions that were invoked with an
2565         invalid parameter combination, and include the built-in function
2566         name in both error messages.
2567         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
2568         New prototype.
2569         * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
2570         function.
2571         (rs6000_expand_binop_builtin): Add check to enforce that argument
2572         2 of the test data class operations is a 7-bit unsigned literal.
2573         (rs6000_invalid_builtin): Add code to issue an error message if a
2574         built-in function that requires the power9_vector and -m32
2575         command-line options is compiled without these options.
2576         * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
2577         (UNSPEC_VSX_SXSIGDP): New value.
2578         (UNSPEC_VSX_SXSIGPDP): New value.
2579         (UNSPEC_VSX_SIEXPDP): New value.
2580         (UNSPEC_VSX_SCMPEXPDP): New value.
2581         (UNSPEC_VSX_STSTDC): New value.
2582         (UNSPEC_VSX_VXEXP): New value.
2583         (UNSPEC_VSX_VXSIG): New value.
2584         (UNSPEC_VSX_VIEXP): New value.
2585         (UNSPEC_VSX_VTSTDC): New value.
2586         (xsxexpdp): New insn for scalar extract exponent.
2587         (xsxsigdp): New insn for scalar extract significand.
2588         (xsiexpdp): New insn for scalar insert exponent.
2589         (xscmpexpdp_<code>): New expansion for scalar compare exponents.
2590         (*xscmpexpdp): New insn for scalar compare exponents.
2591         (xststdc<Fvsx): New expansion for both single- and
2592         double-precision scalar test data class operations.
2593         (xststdcneg<Fvsx>): New expansion for both single- and
2594         double-precision scalar test for negative value operations.
2595         (*xststdc<Fvsx>): New insn for scalar test data class
2596         operation.
2597         (xvxexp<VSs>): New insn for single- and double-precision
2598         vector extract exponent operation.
2599         (xvxsig<VSs>): New insn for single- and double-precision
2600         vector extract significand operation.
2601         (xviexp<VSs>): New insn for single- and double-precision
2602         vector insert exponent operation.
2603         (xvtstdc<VSs>): New insn for single- and double-precision
2604         vector test data class operation.
2605         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2606         built-in functions to represent the Power9 binary floating-point
2607         support instructions.
2609 2016-08-10  bin cheng  <bin.cheng@arm.com>
2611         * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
2613 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
2614             Renlin Li  <renlin.li@arm.com>
2615             Bin Cheng  <bin.cheng@arm.com>
2617         * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
2618         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
2619         gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
2620         (aarch64_vcond_internal<mode><mode>): Delete pattern.
2621         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
2622         (vcond<v_cmp_result><mode>): Ditto.
2623         (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
2624         (vcondu<mode><mode>): Ditto.
2625         (vcond<v_cmp_mixed><mode>): New pattern.
2626         (vcondu<mode><v_cmp_mixed>): New pattern.
2627         (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
2628         of aarch64_vcond_internal.
2630 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
2631             Renlin Li  <renlin.li@arm.com>
2632             Bin Cheng  <bin.cheng@arm.com>
2634         * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
2635         (vec_cmp<mode><v_cmp_result>): New pattern.
2636         (vec_cmpu<mode><mode>): New pattern.
2637         (vcond_mask_<mode><v_cmp_result>): New pattern.
2639 2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
2641         PR tree-optimization/71734
2642         * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
2643         REF_LOOP, invoke ref_indep_loop_p_1.
2644         (outermost_indep_loop): Pass LOOP argumnet where REF was defined
2645         to ref_indep_loop_p.
2646         (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
2647         combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
2648         is inside LOOP, do not cache dpendence value for loops with
2649         non-zero SAFELEN.
2650         (ref_indep_loop_p_2): Delete function.
2651         (can_sm_ref_p): Pass LOOP as additional argument to
2652         ref_indep_loop_p.
2654 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2656         PR target/72853
2657         * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
2658         being an offsettable address.
2660 2016-08-10  Martin Liska  <mliska@suse.cz>
2662         PR gcov-profile/58306
2663         * tree-profile.c (gimple_init_edge_profiler): Create conditionally
2664         atomic variants of profile update functions.
2666 2016-08-10  Martin Liska  <mliska@suse.cz>
2668         Cherry picked (and modified) from google-4_7 branch
2669         2012-12-26  Rong Xu  <xur@google.com>
2670         * common.opt (fprofile-update): Add new flag.
2671         * coretypes.h: Define enum profile_update.
2672         * doc/invoke.texi: Document -fprofile-update.
2673         * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
2674         GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
2675         * tree-profile.c (gimple_init_edge_profiler): Generate
2676         also atomic profiler update.
2677         (gimple_gen_edge_profiler): Likewise.
2679 2016-08-10  David Malcolm  <dmalcolm@redhat.com>
2681         * toplev.c (finalize): Set aux_info_file, asm_out_file, and
2682         stack_usage_file to NULL after fclose calls.
2684 2016-08-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2686         PR target/71873
2687         * reload.c (push_reload): Compute subreg_in_class for
2688         subregs of constants and plus expressions. Remove special
2689         handling of SYMBOL_REFs.
2691 2016-08-10  Alan Modra  <amodra@gmail.com>
2693         PR target/71680
2694         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
2695         SImode for TARGET_E500_DOUBLE when given SImode.
2697 2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
2699         * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
2700         unused variable __O.
2702 2016-08-09  Martin Liska  <mliska@suse.cz>
2704         * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
2705         _gcov_reset to __gcov_reset.
2706         * doc/gcov-tool.texi: Fix typo.
2708 2016-08-09  Martin Liska  <mliska@suse.cz>
2710         * value-prof.c (gimple_divmod_values_to_profile): Do not
2711         instrument MOD histogram if a value is not a SSA name.
2713 2016-08-09  Martin Liska  <mliska@suse.cz>
2715         * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
2716         values.
2718 2016-08-09  Renlin Li  <renlin.li@arm.com>
2720         PR middle-end/64971
2721         * calls.c (prepare_call_address): Convert funexp to Pmode when
2722         necessary.
2723         * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
2724         (sibcall_value): Likewise.
2726 2016-08-09  Marek Polacek  <polacek@redhat.com>
2728         PR c/7652
2729         * cselib.c (cselib_expand_value_rtx_1): Add return.
2730         * gengtype.c (dbgprint_count_type_at): Likewise.
2731         * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
2732         * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
2734 2016-08-09  Martin Jambor  <mjambor@suse.cz>
2736         PR ipa/71981
2737         * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2738         if instance is a MEM_REF.
2740 2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
2742         PR target/72843
2743         * config/i386/i386.md (*movtf_internal): Use
2744         lra_in_progress || reload_completed instead of !can_create_pseudo_p
2745         in the insn constraint.
2746         (*movxf_internal): Ditto.
2747         (*movdf_internal): Ditto.
2748         (*movsf_internal): Ditto.
2750 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
2752         PR tree-optimization/72772
2753         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2754         for expanded base.
2756 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
2758         PR tree-optimization/72772
2759         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
2760         parameter STOP.
2761         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
2762         parameter STOP and update calls.  Move expand_simple_operations
2763         function call from here...
2764         (simplify_using_initial_conditions): ...to here.  Delete parameter
2765         STOP.
2766         (tree_simplify_using_condition): Delete parameter STOP.
2767         * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
2768         simplify_using_initial_conditions.
2770 2016-08-09  Matthew Fortune  <matthew.fortune@imgtec.com>
2772         PR c/65345
2773         * config/mips/mips.c (mips_atomic_assign_expand_fenv):
2774         Use create_tmp_var_raw instead of create_tmp_var.
2776 2016-08-09  Richard Biener  <rguenther@suse.de>
2778         * tree-ssa-threadbackward.c (profitable_jump_thread_path):
2779         Treat same SSA names related.
2781 2016-08-09  Jakub Jelinek  <jakub@redhat.com>
2783         PR tree-optimization/72824
2784         * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2785         real_zerop is not negative.
2787 2016-08-09  Richard Biener  <rguenther@suse.de>
2789         PR tree-optimization/71802
2790         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
2791         all merge opportunities with the predecessor.
2793 2016-08-09  Richard Biener  <rguenther@suse.de>
2795         PR ipa/68273
2796         * ipa-prop.c (ipa_modify_formal_parameters): Build
2797         parameter types with natural alignment also for the
2798         over-aligned case.
2800 2016-08-08  Andi Kleen  <ak@linux.intel.com>
2802         * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
2804 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
2806         PR c/64955
2807         * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
2808         do-nothing langhook.
2809         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
2810         * langhooks.h (struct lang_hooks): Add run_lang_selftests.
2811         * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
2812         (selftest::run_tests): Call lang_hooks.run_lang_selftests.
2814 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
2816         PR bootstrap/72844
2817         * input.c: Ensure that HAVE_ICONV is defined.
2819 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
2821         PR middle-end/72781
2822         * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
2823         private vars for lastprivate and for linear iterator.
2825         PR middle-end/68762
2826         * omp-simd-clone.c: Include varasm.h.
2827         (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
2828         DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
2829         DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
2830         update function name.
2832 2016-07-29  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
2834         * config/avr/driver-avr.c (specfiles_doc_url): Remove.
2835         (avr_diagnose_devicespecs_error): Remove.
2836         (avr_devicespecs_file): Remove composing absolute path for specfile
2837         and its verbose info. Remove conditions to check specs-file,
2839 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
2841         PR rtl-optimization/72821
2842         * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
2843         just return false for them.
2845 2016-08-08  Alan Modra  <amodra@gmail.com>
2847         PR target/72771
2848         * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
2849         toc refs created during reload.  Update function comment.
2851 2016-08-08  Alan Modra  <amodra@gmail.com>
2853         PR target/72802
2854         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2855         alternatives.  Put loads first, then stores, and reg/reg moves
2856         within same class later.  Delete attr length.
2858 2016-08-08  Alan Modra  <amodra@gmail.com>
2860         PR target/72802
2861         * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
2862         (mem_operand_ds_form): New predicate.
2863         * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
2864         * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
2865         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
2866         * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
2867         (extendsfdf2_fpr): Replace o constraint with wY.
2869 2016-08-07  Jan Hubicka  <hubicka@ucw.cz>
2871         * tree-ssa-threadbackward.c: Include tree-inline.h
2872         (profitable_jump_thread_path): Use estimate_num_insns to estimate
2873         size of copied block; for cold paths reduce duplication.
2874         (find_jump_threads_backwards): Remove redundant tests.
2875         (pass_thread_jumps::gate): Enable for -Os.
2877 2016-08-07  Jakub Jelinek  <jakub@redhat.com>
2879         PR c/72816
2880         * stor-layout.c (layout_decl): Fix up formatting.
2881         (relayout_decl): Allow DECL to be FIELD_DECL.
2883 2016-08-07  Alan Modra  <amodra@gmail.com>
2885         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
2887 2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2889         * data-streamer-in.c (streamer_read_wide_int): New.
2890         (streamer_read_widest_int): Renamed function.
2891         * data-streamer-out.c (streamer_write_wide_int): New
2892         (streamer_write_widest_int): Renamed function.
2893         * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
2894         data-stream-in.c.
2895         (input_cfg): Call renamed function.
2896         * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
2897         data-stream-out.c.
2898         (output_cfg): Call renamed function.
2899         * data-streamer.h: Add declarations.
2901 2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2903         * tree-ssa-ccp.c (extend_mask): New param sgn.
2904         Remove ORing with wi::mask.
2905         (get_default_value): Adjust call to extend_mask to pass sign.
2906         (evaluate_stmt): Likewise.
2908 2016-08-06  Jakub Jelinek  <jakub@redhat.com>
2910         * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
2911         INT64_MAX.
2913 2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2915         * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
2916         transform if operand's type is pointer to function or method.
2918 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
2920         PR tree-optimization/18046
2921         * tree-ssa-threadedge.c: Include cfganal.h.
2922         (simplify_control_statement_condition): If simplifying a
2923         GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
2924         with the dominating ASSERT_EXPR before handing it off to VRP.
2925         Mention that a CASE_LABEL_EXPR may be returned.
2926         (thread_around_empty_blocks): Adjust to handle
2927         simplify_control_statement_condition() returning a
2928         CASE_LABEL_EXPR.
2929         (thread_through_normal_block): Likewise.
2930         * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
2931         a switch statement by trying to determine which case label
2932         will be taken.
2934 2016-08-05  Vladimir Makarov  <vmakarov@redhat.com>
2936         PR rtl-optimization/69847
2937         * lra-constraints.c (process_invariant_for_inheritance): Save
2938         pattern instead of src.
2939         (remove_inheritance_pseudos): Use the pattern.  Add assert.
2941 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
2943         * input.c (string_concat::string_concat): New constructor.
2944         (string_concat_db::string_concat_db): New constructor.
2945         (string_concat_db::record_string_concatenation): New method.
2946         (string_concat_db::get_string_concatenation): New method.
2947         (string_concat_db::get_key_loc): New method.
2948         (class auto_cpp_string_vec): New class.
2949         (get_substring_ranges_for_loc): New function.
2950         (get_source_range_for_substring): New function.
2951         (get_num_source_ranges_for_substring): New function.
2952         (class selftest::lexer_test_options): New class.
2953         (struct selftest::lexer_test): New struct.
2954         (class selftest::ebcdic_execution_charset): New class.
2955         (selftest::ebcdic_execution_charset::s_singleton): New variable.
2956         (selftest::lexer_test::lexer_test): New constructor.
2957         (selftest::lexer_test::~lexer_test): New destructor.
2958         (selftest::lexer_test::get_token): New method.
2959         (selftest::assert_char_at_range): New function.
2960         (ASSERT_CHAR_AT_RANGE): New macro.
2961         (selftest::assert_num_substring_ranges): New function.
2962         (ASSERT_NUM_SUBSTRING_RANGES): New macro.
2963         (selftest::assert_has_no_substring_ranges): New function.
2964         (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
2965         (selftest::test_lexer_string_locations_simple): New function.
2966         (selftest::test_lexer_string_locations_ebcdic): New function.
2967         (selftest::test_lexer_string_locations_hex): New function.
2968         (selftest::test_lexer_string_locations_oct): New function.
2969         (selftest::test_lexer_string_locations_letter_escape_1): New function.
2970         (selftest::test_lexer_string_locations_letter_escape_2): New function.
2971         (selftest::test_lexer_string_locations_ucn4): New function.
2972         (selftest::test_lexer_string_locations_ucn8): New function.
2973         (selftest::uint32_from_big_endian): New function.
2974         (selftest::test_lexer_string_locations_wide_string): New function.
2975         (selftest::uint16_from_big_endian): New function.
2976         (selftest::test_lexer_string_locations_string16): New function.
2977         (selftest::test_lexer_string_locations_string32): New function.
2978         (selftest::test_lexer_string_locations_u8): New function.
2979         (selftest::test_lexer_string_locations_utf8_source): New function.
2980         (selftest::test_lexer_string_locations_concatenation_1): New
2981         function.
2982         (selftest::test_lexer_string_locations_concatenation_2): New
2983         function.
2984         (selftest::test_lexer_string_locations_concatenation_3): New
2985         function.
2986         (selftest::test_lexer_string_locations_macro): New function.
2987         (selftest::test_lexer_string_locations_stringified_macro_argument):
2988         New function.
2989         (selftest::test_lexer_string_locations_non_string): New function.
2990         (selftest::test_lexer_string_locations_long_line): New function.
2991         (selftest::test_lexer_char_constants): New function.
2992         (selftest::input_c_tests): Call the new test functions once per
2993         case within the line_table test matrix.
2994         * input.h (struct string_concat): New struct.
2995         (struct location_hash): New struct.
2996         (class string_concat_db): New class.
2997         * substring-locations.h: New header.
2999 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
3001         PR tree-optimization/72810
3002         * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
3003         the type of the case labels when truncating.
3005 2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
3007         PR Target/72819
3008         * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
3009         (aarch64_fp16_ptr_type_node): Likewise.
3010         * config/aarch64/aarch64-simd-builtins.c
3011         (aarch64_fp16_ptr_type_node): Define.
3012         (aarch64_init_fp16_types): New, refactored out of...
3013         (aarch64_init_builtins): ...here, update to call
3014         aarch64_init_fp16_types.
3015         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
3016         HFmode.
3017         (aapcs_vfp_sub_candidate): Likewise.
3019 2016-08-05  Martin Liska  <mliska@suse.cz>
3020             Joshua Cranmer  <Pidgeot18@gmail.com>
3022         * gcov.c (line_t::has_block): New function.
3023         (enum loop_type): New enum.
3024         (handle_cycle): New function.
3025         (unblock): Likewise.
3026         (circuit): Likewise.
3027         (get_cycles_count): Likewise.
3028         (accumulate_line_counts): Use new loop detection algorithm.
3030 2016-08-05  Martin Liska  <mliska@suse.cz>
3032         * gcov.c (output_intermediate_file): Rename
3033         function_info::line_next to next_file_fn.
3034         (process_file): Likewise.
3035         (read_graph_file): Likewise.
3036         (accumulate_line_counts): Likewise.
3037         (output_lines): Likewise.
3039 2016-08-05  Richard Biener  <rguenther@suse.de>
3041         * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
3042         restriction on threading to a loop header.
3044 2016-08-05  Richard Biener  <rguenther@suse.de>
3046         * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
3047         * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
3048         adjust loop info accordingly.
3050 2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
3052         * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
3053         before folding call to __builtin_constant_p with parameters to false.
3055 2016-08-05  Alan Modra  <amodra@gmail.com>
3057         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
3058         code accidentally committed 2016-05-02 providing class when given
3059         NO_REGS.
3061 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
3063         * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
3064         the case label ranges that partially overlap with OP's value
3065         range.
3067 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
3069         PR target/72805
3070         * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
3071         Cast builtin function result to __mmask16 instead of __mmask8.
3072         (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3073         (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
3074         (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3076 2016-08-04  David Malcolm  <dmalcolm@redhat.com>
3078         * selftest.h (ASSERT_TRUE): Reimplement in terms of...
3079         (ASSERT_TRUE_AT): New macro.
3080         (ASSERT_FALSE): Reimplement in terms of...
3081         (ASSERT_FALSE_AT): New macro.
3082         (ASSERT_STREQ_AT): Fix typo in comment.
3084 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
3086         * gimple.c (preprocess_case_label_vec_for_gimple): When the case
3087         labels are exhaustive, designate the label with the widest
3088         range to be the default label.
3090 2016-08-04  Andrew Pinski  <apinski@cavium.com>
3092         * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
3093         (thunderx_tunings): Use thunderx_vector_cost instead of
3094         generic_vector_cost.
3096 2016-08-04  Martin Liska  <mliska@suse.cz>
3098         * gcov.c (main): Fix GNU coding style.
3099         (output_intermediate_file): Likewise.
3100         (process_file): Likewise.
3101         (generate_results): Likewise.
3102         (release_structures): Likewise.
3103         (create_file_names): Likewise.
3104         (find_source): Likewise.
3105         (read_graph_file): Likewise.
3106         (find_exception_blocks): Likewise.
3107         (canonicalize_name): Likewise.
3108         (make_gcov_file_name): Likewise.
3109         (mangle_name): Likewise.
3110         (accumulate_line_counts): Likewise.
3111         (output_branch_count): Likewise.
3112         (read_line): Likewise.
3114 2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3116         PR rtl-optimization/71779
3117         * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
3118         if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
3119         or if it was truncated.
3121         PR rtl-optimization/70903
3122         * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
3124 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
3126         * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
3127         accessing SSA_NAME_PTR_INFO.
3129 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
3131         PR 70677
3132         * common/config/avr/avr-common.c (avr_option_optimization_table)
3133         [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
3135 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
3137         PR 55181
3138         * config/avr/avr.md: New pattern to work around do_store_flag
3139         generating shift instructions for bit extractions.
3141 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
3143         * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
3144         BITMAP_ALLOC.
3145         (add_equivalence): Likewise.
3146         (get_value_range): Allocate value range with vrp_value_range_pool.
3147         (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
3148         (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
3150 2016-08-03  Peter Bergner  <bergner@vnet.ibm.com>
3152         * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
3153         the default for the rs6000 port.
3155 2016-08-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3157         PR middle-end/71876
3158         * calls.c (special_function_p): Remove special handling of
3159         "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
3160         prefix "__x".  Recognize "savectx", "vfork" and "getcontext" only
3161         without prefix.  Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
3163 2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>
3165         PR middle-end/72778
3166         * lra-spills.c (regno_in_use_p): Check bb and regno modification.
3167         Don't stop on regular insns.
3169 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
3171         * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
3172         size to DImode boundary.
3173         (nvptx_propagate): Likewise.
3175 2016-08-03  Alan Modra  <amodra@gmail.com>
3177         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
3178         float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
3179         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
3180         from -mefficient-unaligned-vector.  Note that this affects fp too.
3182 2016-08-03  Alan Modra  <amodra@gmail.com>
3184         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
3185         cost more.
3187 2016-08-03  Alan Modra  <amodra@gmail.com>
3189         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
3190         to a reg.  Localize vars.
3192 2016-08-03  Alan Modra  <amodra@gmail.com>
3194         * config/rs6000/rs6000.opt: Remove negatives from help strings
3195         and comments.
3197 2016-08-03  Alan Modra  <amodra@gmail.com>
3199         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3200         Delete duplicated code.
3202 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
3204         PR middle-end/72778
3205         * lra-spills.c (regno_in_use_p): New.
3206         (lra_final_code_change): Use it.
3208 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
3210         PR rtl-optimization/69847
3211         * lra-int.h (struct lra-reg): Use restore_rtx instead of
3212         restore_regno.
3213         (lra_rtx_hash): New.
3214         * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
3215         of restore_regno.
3216         (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
3217         * lra-remat.c (rtx_hash): Rename and Move to lra.c.
3218         * lra-spills.c (lra_final_code_change): Don't delete insn when the
3219         next insn is USE with the same reg as the current insn source.
3220         * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
3221         of restore_regno.
3222         (lra_constraints_init): Call initiate_invariants.
3223         (lra_constraints_finish): Call finish_invariants.
3224         (struct invariant, invariant_t, invariant_ptr_t): New.
3225         (const_invariant_ptr_t, invariants, invariants_pool): New.
3226         (invariant_table, invariant_hash, invariant_eq_p): New.
3227         (insert_invariant, initiate_invariants, finish_invariants): New.
3228         (clear_invariants, invalid_invariant_regs): New.
3229         (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
3230         instead of restore_regno.
3231         (invariant_p, process_invariant_for_inheritance): New.
3232         (inherit_in_ebb): Implement invariant inheritance.
3233         (lra_inheritance): Initialize and finalize invalid_invariant_regs.
3234         (remove_inheritance_pseudos): Implement undoing invariant
3235         inheritance.
3236         (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
3237         instead of restore_regno.
3238         * lra-assigns.c (regno_live_length): New.
3239         (reload_pseudo_compare_func): Use regno_live_length.
3240         (assign_by_spills): Use restore_rtx instead of restore_regno.
3241         (lra_assign): Ditto.  Initiate regno_live_length.
3243 2016-02-08  James Greenhalgh  <james.greenhalgh@arm.com>
3245         * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
3246         __builtin_aarch64_fmindf.
3248 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
3250         PR tree-optimization/34114
3251         * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
3252         information for more control IVs.
3254 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
3256         PR tree-optimization/34114
3257         * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
3258         PLUS_EXPR case.  Handle SSA_NAME case.
3260 2016-08-02  Tamar Christina  <tamar.christina@arm.com>
3262         * config/aarch64/aarch64-simd-builtins.def
3263         (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
3264         (__builtin_aarch64_fmaxdf): Likewise.
3265         (__builtin_aarch64_smin_nandf): Likewise.
3266         (__builtin_aarch64_smax_nandf): Likewise.
3267         * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
3268         * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
3269         (<fmaxmin><mode>3): ...this.
3270         * config/aarch64/arm_neon.h (vmaxnm_f64): New.
3271         (vminnm_f64): Likewise.
3272         (vmin_f64): Likewise.
3273         (vmax_f64): Likewise.
3274         * config/aarch64/iterators.md (FMAXMIN): Merge with...
3275         (FMAXMIN_UNS): ...this.
3276         (fmaxmin): Merged with
3277         (fmaxmin_op): ...this...
3278         (maxmin_uns_op): ...in to this.
3280 2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
3282         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3283         Add support for vec_extract on vector float, vector int, vector
3284         short, and vector char vector types.
3285         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3286         vector float, vector int, vector short, and vector char
3287         optimizations on 64-bit ISA 2.07 systems for both constant and
3288         variable element numbers.
3289         (rs6000_split_vec_extract_var): Likewise.
3290         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
3291         Altivec registers on ISA 2.07 and above.
3292         (vsx_extract_v4sf): Delete alternative that hard coded element 0,
3293         which never was matched due to the split occuring before register
3294         allocation (and the code would not have worked on little endian
3295         systems if it did match).  Allow extracts to go to the Altivec
3296         registers if ISA 2.07 (power8).  Change from using "" around the
3297         C++ code to using {}'s.
3298         (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
3299         vec_extracts when the vector is in memory.
3300         (vsx_extract_v4sf_var): New insn to optimize vector float
3301         vec_extracts when the element number is variable on 64-bit ISA
3302         2.07 systems.
3303         (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
3304         for 64-bit ISA 2.07 as well as ISA 3.0.
3305         (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
3306         (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
3307         (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
3308         optimize vector int, vector short, and vector char vec_extracts
3309         when the vector is in memory.
3310         (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
3311         optimize vector int, vector short, and vector char vec_extracts
3312         when the element number is variable.
3314 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
3316         PR target/71948
3317         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
3318         does not overlap with other symbol flags.
3320 2016-08-01  Wilco Dijkstra  <wdijkstr@arm.com>
3322         * config/aarch64/aarch64.h (aarch64_frame):
3323         Remove padding0 and hardfp_offset.  Add locals_offset,
3324         initial_adjust, callee_adjust, callee_offset and final_adjust.
3325         * config/aarch64/aarch64.c (aarch64_layout_frame):
3326         Remove unused padding0 and hardfp_offset initializations.
3327         Choose frame layout and set frame variables accordingly.
3328         Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
3329         (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
3330         (aarch64_pop_regs): Likewise.
3331         (aarch64_expand_prologue): Remove all decision code, just emit
3332         prolog according to frame variables.
3333         (aarch64_expand_epilogue): Remove all decision code, just emit
3334         epilog according to frame variables.
3335         (aarch64_initial_elimination_offset): Use offset to local/arg area.
3337 2015-08-01  H.J. Lu  <hongjiu.lu@intel.com>
3339         PR target/72748
3340         * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
3341         fix_debug_reg_uses after changing source register mode to
3342         V1TImode if source register is undefined.
3344 2015-08-01  Alan Hayward  <alan.hayward@arm.com>
3346         PR tree-optimization/71818
3347         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
3348         with non invariant evolutions
3350 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
3352         PR target/72767
3353         * config/avr/avr.md (length) [branch]: Correct insn length
3354         attribute for forward branches.
3356 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
3358         * doc/extend.texi (AVR Built-in Functions): Document
3359         __builtin_avr_nops.
3360         * config/avr/builtins.def (NOPS): New.
3361         * config/avr/avr.c (avr_expand_nops): New static function.
3362         (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
3364 2016-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3366         * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
3367         performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
3368         addresses.
3370 2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>
3372         * config/aarch64/aarch64.c (vulcan_tunings): Update
3373         vulcan L1 cache_line_size.
3375 2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
3377         * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
3378         function that takes a vector memory address, a hard register, an
3379         element number and a temporary base register, and recreates an
3380         address that points to the appropriate element within the vector.
3381         * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
3382         (rs6000_split_vec_extract_var): Add support for the target of a
3383         vec_extract with variable element number being a scalar memory
3384         location.
3385         (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
3386         swappable.
3387         * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
3388         vsx_extract_<mode>_load insn with a new insn that optimizes
3389         storing either element to a memory location, using scratch
3390         registers to pick apart the vector and reconstruct the address.
3391         (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
3392         (vsx_extract_<mode>_store): Rework alternatives to more correctly
3393         support Altivec registers.  Add support for ISA 3.0 Altivec d-form
3394         store instruction.
3395         (vsx_extract_<mode>_var): Add support for extracting a variable
3396         element number from memory.
3398 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
3400         * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
3401         when testing for compares against constants of the form 0xabab.
3403 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
3405         PR tree-optimization/57558
3406         * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
3407         function.
3408         (vect_loop_versioning): Support versioning with niter assumptions.
3409         * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
3410         (vect_get_loop_niters): New parameter.  Reimplement to support
3411         assumptions in loop niter info.
3412         (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
3413         (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
3414         (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
3415         Support loop versioning for niters.
3416         * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
3417         (vect_free_loop_info_assumptions): New function.
3418         (vectorize_loops): Free loop niter info for loops with flag
3419         LOOP_F_ASSUMPTIONS set if vectorization failed.
3420         * tree-vectorizer.h (struct _loop_vec_info): New field
3421         num_iters_assumptions.
3422         (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
3423         (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
3424         (LOOP_REQUIRES_VERSIONING): New macro.
3425         (vect_free_loop_info_assumptions): New decl.
3427 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
3429         * cfgloop.h (struct loop): New field constraints.
3430         (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
3431         (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
3432         functions.
3433         * cfgloop.c (alloc_loop): Initialize new field.
3434         * cfgloopmanip.c (copy_loop_info): Copy constraints.
3435         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3436         Adjust niter analysis wrto loop constraints.
3437         * doc/loop.texi (@node Number of iterations): Add description for loop
3438         constraints.
3440 2016-07-29  Marek Polacek  <polacek@redhat.com>
3442         PR c/7652
3443         * config/i386/i386.c (ix86_expand_args_builtin): Add break.
3444         (ix86_expand_round_builtin): Likewise.
3446 2016-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
3447             Georg-Johann Lay  <avr@gjlay.de>
3449         PR rtl-optimization/71976
3450         * combine.c (get_last_value): Return 0 if the argument for which
3451         the function is called has a wider mode than the recorded value.
3453 2016-07-29  Marek Polacek  <polacek@redhat.com>
3455         PR c/7652
3456         * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
3457         (altivec_expand_st_builtin): Likewise.
3459 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
3461         * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
3462         introduced in r238381.
3464 2016-07-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
3466         PR middle-end/68217
3467         * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
3468         & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
3470 2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
3472         * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
3473         New declaration.
3474         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3475         Add support for vec_extract of vector double or vector long having
3476         a variable element number on 64-bit ISA 2.07 systems or newer.
3477         * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
3478         Likewise.
3479         (rs6000_split_vec_extract_var): New function to split a
3480         vec_extract built-in function with variable element number.
3481         (rtx_is_swappable_p): Variable vec_extracts and shifts are not
3482         swappable.
3483         * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
3484         (UNSPEC_VSX_EXTRACT): Likewise.
3485         (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
3486         direct move instructions to be generated on 64-bit ISA 2.07
3487         systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
3488         instruction.
3489         (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
3490         arguments for vec_extract variable element.
3491         (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
3492         vec_extract with variable element on V2DFmode and V2DImode
3493         vectors.
3494         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
3495         -mupper-regs-df requirement, since it isn't needed.
3496         (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
3497         do direct moves on 64-bit systems, which allows optimization of
3498         vec_extract on 64-bit ISA 2.07 systems and newer.
3500 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
3501 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
3503          * config/aarch64/aarch64.md
3504         (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
3505         statement and type.
3506         (<optab>qihi2_aarch64): Likewise, and split into two.
3507         (extendqihi2_aarch64): New.
3508         (zero_extendqihi2_aarch64): New.
3509         * config/aarch64/iterators.md (ldrxt): Remove.
3510         * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
3511         uxtb/uxth.
3513 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
3515         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
3517 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
3519         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
3520         (aarch64_push_reg): New function to push 1 or 2 registers.
3521         (aarch64_pop_reg): New function to pop 1 or 2 registers.
3522         (aarch64_expand_prologue): Use aarch64_push_regs.
3523         (aarch64_expand_epilogue): Use aarch64_pop_regs.
3525 2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
3527         PR tree-optimization/71734
3528         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
3529         attribute instead of REF_LOOP and use it.
3530         (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
3531         set it for Loops having non-zero safelen attribute.
3532         (ref_indep_loop_p): Pass zero as initial value for safelen.
3534 2016-07-28  Ilya Enkovich  <ilya.enkovich@intel.com>
3536         PR middle-end/72657
3537         PR target/72683
3538         * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
3539         call using chkp_gimple_call_builtin_p.
3540         (chkp_copy_bounds_for_assign): Likewise.
3542 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3544         * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
3545         * config/arm/arm-protos.h (struct tune_params): Likewise.
3546         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
3547         (cortex_a9_sched_adjust_cost): Likewise.
3548         (fa726te_sched_adjust_cost): Likewise.
3549         (arm_adjust_cost): Likewise.
3550         * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
3551         * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
3552         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
3553         * config/i386/i386.c (ix86_adjust_cost): Likewise.
3554         * config/ia64/ia64.c: Likewise.
3555         * config/m68k/m68k.c: Likewise.
3556         * config/mep/mep.c (mep_adjust_cost): Likewise.
3557         * config/microblaze/microblaze.c (microblaze_adjust_cost):
3558         * Likewise.
3559         * config/mips/mips.c (mips_adjust_cost): Likewise.
3560         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
3561         * Likewise.
3562         * config/pa/pa.c (pa_adjust_cost): Likewise.
3563         * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
3564         (rs6000_debug_adjust_cost): Likewise.
3565         * config/sh/sh.c (sh_adjust_cost): Likewise.
3566         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
3567         (hypersparc_adjust_cost): Likewise.
3568         (sparc_adjust_cost): Likewise.
3569         * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
3570         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
3571         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
3572         * Likewise.
3573         * config/visium/visium.c (visium_adjust_cost): Likewise.
3574         * doc/tm.texi: Regenerate.
3575         * haifa-sched.c (dep_cost_1): Adjust.
3576         * target.def: Merge adjust_cost and adjust_cost_2.
3578 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3580         * haifa-sched.c (add_to_speculative_block): Make twins a vector.
3582 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3584         * store-motion.c (struct st_expr): Make pattern_regs a vector.
3585         (extract_mentioned_regs): Append to a vector instead of
3586         returning a rtx_expr_list.
3587         (st_expr_entry): Adjust.
3588         (free_st_expr_entry): Likewise.
3589         (store_ops_ok): Likewise.
3590         (store_killed_in_insn): Likewise.
3591         (find_moveable_store): Likewise.
3593 2016-07-28  Martin Liska  <mliska@suse.cz>
3595         PR gcov-profile/68025
3596         * tree-profile.c (tree_profiling): Respect
3597         no_profile_instrument_function attribute.
3598         * doc/extend.texi: Document no_profile_instrument_function
3599         attribute.
3601 2016-07-28  Martin Liska  <mliska@suse.cz>
3603         PR rtl-optimization/70944
3604         * combine.c (make_compound_operation):
3605         Do not allow make_compound_operation for vector mode
3607 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
3609         PR middle-end/71994
3610         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
3611          before calling get_ops.
3613 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3615         * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
3616         * tree.h (LOG2_BITS_PER_UNIT): ...to here.
3617         (BITS_PER_UNIT_LOG): Remove.
3618         (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
3619         * expr.c (expand_assignment): Likewise.
3620         * stor-layout.c (initialize_sizetypes): Likewise.
3622 2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
3624         * config/rs6000/vector.md (vec_extract<mode>): Change the calling
3625         signature of rs6000_expand_vector_extract so that the element
3626         number is a RTX instead of a constant integer.
3627         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
3628         Likewise.
3629         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
3630         (altivec_expand_vec_ext_builtin): Likewise.
3631         * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
3632         * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
3633         MFVSRLD instruction.
3635 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
3637         * input.c (get_pure_location): Move here from tree.c.
3638         (make_location): Likewise.  Add header comment.
3639         (selftest::test_accessing_ordinary_linemaps): Verify
3640         pure_location_p, make_location, get_location_from_adhoc_loc and
3641         get_range_from_loc.
3642         * input.h (get_pure_location): Move declaration here from tree.h.
3643         (get_finish): Likewise for inline function.
3644         (make_location): Likewise for declaration.
3645         * tree.c (get_pure_location): Move to input.c.
3646         (make_location): Likewise.
3647         * tree.h (get_pure_location): Move declaration to tree.h.
3648         (get_finish): Likewise for inline function.
3649         (make_location): Likewise for declaration.
3651 2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3653         PR middle-end/71078
3654         * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
3656 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
3658         * system.h (STATIC_ASSERT): Use static_assert if building
3659         with C++11 onwards.
3661 2016-07-27  Richard Biener  <rguenther@suse.de>
3663         PR tree-optimization/72517
3664         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
3665         Revert change to not compute read-read dependences.
3667 2016-07-27  Richard Biener  <rguenther@suse.de>
3669         * predict.c (set_even_probabilities): Make nedges unsigned.
3671 2016-07-27  Martin Liska  <mliska@suse.cz>
3673         * predict.c (set_even_probabilities): Handle unlikely edges.
3674         (combine_predictions_for_bb): Likewise.
3676 2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3678         PR target/71869
3679         * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
3680         __float128 support when we don't have hardware support, so that
3681         the IEEE built-in functions like isgreater, first call __unordkf3
3682         to make sure neither operand is a NaN, and if both operands are
3683         ordered, do the normal comparison.
3685 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
3687         * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
3688         name.
3689         (extract_code_and_val_from_cond_with_ops): Verify that name is
3690         either cond_op0 or cond_op1.
3692 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
3694         PR tree-optimization/18046
3695         * genmodes.c (emit_mode_size_inline): Emit an assert that
3696         verifies that mode is a valid array index.
3697         (emit_mode_nuinits_inline): Likewise.
3698         (emit_mode_inner_inline): Likewise.
3699         (emit_mode_unit_size_inline): Likewise.
3700         (emit_mode_unit_precision_inline): Likewise.
3701         * tree-vrp.c: Include params.h.
3702         (find_switch_asserts): Register edge assertions for the default
3703         label which correspond to the anti-ranges of each case label.
3704         * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
3705         * doc/invoke.texi: Document it.
3707 2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3709         * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
3710         and unnecessary call to gimple_bb.
3712 2016-07-26  Richard Biener  <rguenther@suse.de>
3714         PR rtl-optimization/71984
3715         * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
3716         for VOIDmode.
3718 2016-07-26  Richard Biener  <rguenther@suse.de>
3720         PR middle-end/72517
3721         * expmed.c (extract_bit_field_1): Constrain the vector mode
3722         with element size matching the extraction mode size when
3723         choosing a better vector mode to do the extraction from.
3725 2016-07-26  Richard Biener  <rguenther@suse.de>
3726             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3728         PR middle-end/70920
3729         * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
3730         pattern.
3732 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3734         * tree-ssa-structalias.c (struct scc_info): Change types of
3735         members to auto_sbitmap and auto_vec.
3736         (scc_info::scc_info): New constructor.
3737         (scc_info::~scc_info): New destructor.
3738         (init_scc_info): Remove.
3739         (free_scc_info): Remove.
3740         (find_indirect_cycles): Adjust.
3741         (perform_var_substitution): Likewise.
3742         (free_var_substitution_info): Likewise.
3744 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3746         * tree-outof-ssa.c (struct elim_graph): Change type of members
3747         to auto_vec and auto_sbitmap.
3748         (elim_graph::elim_graph): New constructor.
3749         (delete_elim_graph): Remove.
3750         (expand_phi_nodes): Adjust.
3752 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3754         * tree-outof-ssa.c (struct elim_graph): Remove typedef.
3755         (new_elim_graph): Adjust.
3756         (clear_elim_graph): Likewise.
3757         (delete_elim_graph): Likewise.
3758         (elim_graph_size): Likewise.
3759         (elim_graph_add_node): Likewise.
3760         (elim_graph_add_edge): Likewise.
3761         (elim_graph_remove_succ_edge): Likewise.
3762         (eliminate_name): Likewise.
3763         (eliminate_build): Likewise.
3764         (elim_forward): Likewise.
3765         (elim_unvisited_predecessor): Likewise.
3766         (elim_backward): Likewise.
3767         (elim_create): Likewise.
3768         (eliminate_phi): Likewise.
3769         (expand_phi_nodes): Likewise.
3771 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3773         * bt-load.c (compute_out): Use auto_sbitmap class.
3774         (link_btr_uses): Likewise.
3775         * cfganal.c (mark_dfs_back_edges): Likewise.
3776         (post_order_compute): Likewise.
3777         (inverted_post_order_compute): Likewise.
3778         (pre_and_rev_post_order_compute_fn): Likewise.
3779         (single_pred_before_succ_order): Likewise.
3780         * cfgexpand.c (pass_expand::execute): Likewise.
3781         * cfgloop.c (verify_loop_structure): Likewise.
3782         * cfgloopmanip.c (fix_bb_placements): Likewise.
3783         (remove_path): Likewise.
3784         (update_dominators_in_loop): Likewise.
3785         * cfgrtl.c (break_superblocks): Likewise.
3786         * ddg.c (check_sccs): Likewise.
3787         (create_ddg_all_sccs): Likewise.
3788         * df-core.c (df_worklist_dataflow): Likewise.
3789         * dse.c (dse_step3): Likewise.
3790         * except.c (eh_region_outermost): Likewise.
3791         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3792         * gcse.c (prune_expressions): Likewise.
3793         (prune_insertions_deletions): Likewise.
3794         * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
3795         * graph.c (draw_cfg_nodes_no_loops): Likewise.
3796         * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
3797         * lcm.c (compute_earliest): Likewise.
3798         (compute_farthest): Likewise.
3799         * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
3800         (unroll_loop_runtime_iterations): Likewise.
3801         (unroll_loop_stupid): Likewise.
3802         * lower-subreg.c (decompose_multiword_subregs): Likewise.
3803         * lra-lives.c: Likewise.
3804         * lra.c (lra): Likewise.
3805         * modulo-sched.c (schedule_reg_moves): Likewise.
3806         (optimize_sc): Likewise.
3807         (get_sched_window): Likewise.
3808         (sms_schedule_by_order): Likewise.
3809         (check_nodes_order): Likewise.
3810         (order_nodes_of_sccs): Likewise.
3811         (order_nodes_in_scc): Likewise.
3812         * recog.c (split_all_insns): Likewise.
3813         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3814         * reload1.c (reload): Likewise.
3815         * sched-rgn.c (haifa_find_rgns): Likewise.
3816         (split_edges): Likewise.
3817         (compute_trg_info): Likewise.
3818         * sel-sched.c (init_seqno): Likewise.
3819         * store-motion.c (remove_reachable_equiv_notes): Likewise.
3820         * tree-into-ssa.c (update_ssa): Likewise.
3821         * tree-ssa-live.c (live_worklist): Likewise.
3822         * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
3823         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3824         * Likewise.
3825         (try_peel_loop): Likewise.
3826         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3827         * Likewise.
3828         * tree-ssa-pre.c (compute_antic): Likewise.
3829         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3830         * tree-stdarg.c (reachable_at_most_once): Likewise.
3831         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
3832         * var-tracking.c (vt_find_locations): Likewise.
3834 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3836         * sbitmap.h (auto_sbitmap): New class.
3838 2016-07-26  Alan Modra  <amodra@gmail.com>
3840         PR target/72103
3841         * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
3842         sri->t_icode.
3844 2016-07-25  David Malcolm  <dmalcolm@redhat.com>
3846         * input.c (selftest::temp_source_file::temp_source_file): Fix
3847         missing "%s" in fprintf.
3849 2016-07-25  John David Anglin  <danglin@gcc.gnu.org>
3851         PR middle-end/71732
3852         * cselib.c (cselib_process_insn): Invalidate argument slots for
3853         const/pure calls.
3855 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3857         * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
3858         vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
3859         vmulxh_lane_f16, vmulxh_laneq_f16): New.
3861 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3863         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3864         * config/aarch64/aarch64.md (fma, fnma): Support HF.
3865         * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
3867 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3869         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3870         * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
3871         New.
3872         (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
3873         (add<mode>3): Likewise.
3874         (sub<mode>3): Likewise.
3875         (mul<mode>3): Likewise.
3876         (div<mode>3): Likewise.
3877         (*div<mode>3): Likewise.
3878         (<fmaxmin><mode>3): Extend to HF.
3879         * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
3880         (fabd<mode>3): Likewise.
3881         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
3882         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
3883         (aarch64_fmulx<mode>): Likewise.
3884         (aarch64_fac<optab><mode>): Likewise.
3885         (aarch64_frecps<mode>): Likewise.
3886         (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
3887         (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
3888         * config/aarch64/iterators.md (VHSDF_SDF): Delete.
3889         (VSDQ_HSDI): Support HI.
3890         (fcvt_target, FCVT_TARGET): Likewise.
3891         * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
3892         vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
3893         vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
3894         vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
3895         vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
3896         vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
3897         vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
3898         vrsqrtsh_f16): New.
3900 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3902         * config.gcc (aarch64*-*-*): Install arm_fp16.h.
3903         * config/aarch64/aarch64-builtins.c (hi_UP): New.
3904         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3905         * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
3906         mode.
3907         (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
3908         (aarch64_cm<optab><mode>): Likewise.
3909         * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
3910         (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
3911         (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
3912         (sqrt<mode>2): Likewise.
3913         (*sqrt<mode>2): Likewise.
3914         (abs<mode>2): Likewise.
3915         (<optab><mode>hf2): New pattern for HF mode.
3916         (<optab>hihf2): Likewise.
3917         * config/aarch64/arm_neon.h: Include arm_fp16.h.
3918         * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
3919         (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
3920         Support HF mode.
3921         * config/aarch64/arm_fp16.h: New file.
3922         (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
3923         vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
3924         vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
3925         vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
3926         vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
3927         vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
3928         vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
3929         vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
3930         vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
3931         vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
3932         vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
3933         vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
3934         vsqrth_f16): New.
3936 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3938         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
3939         reduc_smin_scal_): Use VDQIF_F16.
3940         (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
3941         * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
3942         Use VHSDF.
3943         (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
3944         * config/aarch64/iterators.md (VDQIF_F16): New.
3945         (vp): Support HF modes.
3946         * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
3947         vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
3949 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3951         * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
3952         "*aarch64_mulx_elt_from_dup<mode>".
3953         (*aarch64_mul3_elt<mode>): Update schedule type.
3954         (*aarch64_mul3_elt_from_dup<mode>): Likewise.
3955         (*aarch64_fma4_elt_from_dup<mode>): Likewise.
3956         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
3957         * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
3958         (f, fp): Support HF modes.
3959         * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
3960         vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
3961         vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
3962         vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
3963         vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
3964         vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
3966 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3968         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3969         * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
3970         modes.
3971         * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
3972         vfmsq_f16): New.
3974 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
3976         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3977         * config/aarch64/aarch64-simd.md
3978         (aarch64_rsqrts<mode>): Extend to HF modes.
3979         (fabd<mode>3): Likewise.
3980         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
3981         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
3982         (aarch64_<maxmin_uns>p<mode>): Likewise.
3983         (<su><maxmin><mode>3): Likewise.
3984         (<maxmin_uns><mode>3): Likewise.
3985         (<fmaxmin><mode>3): Likewise.
3986         (aarch64_faddp<mode>): Likewise.
3987         (aarch64_fmulx<mode>): Likewise.
3988         (aarch64_frecps<mode>): Likewise.
3989         (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
3990         (add<mode>3): Extend to HF modes.
3991         (sub<mode>3): Likewise.
3992         (mul<mode>3): Likewise.
3993         (div<mode>3): Likewise.
3994         (*div<mode>3): Likewise.
3995         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
3996         HF, V4HF and V8HF.
3997         * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
3998         * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
3999         vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
4000         vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
4001         vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
4002         vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
4003         vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
4004         vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
4005         vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
4006         vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
4007         vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
4008         vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
4009         vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
4010         vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
4012 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
4014         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
4015         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4016         * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
4017         (neg<mode>2): Likewise.
4018         (abs<mode>2): Likewise.
4019         (<frint_pattern><mode>2): Likewise.
4020         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
4021         (<optab><VDQF:mode><fcvt_target>2): Likewise.
4022         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
4023         (ftrunc<VDQF:mode>2): Likewise.
4024         (<optab><fcvt_target><VDQF:mode>2): Likewise.
4025         (sqrt<mode>2): Likewise.
4026         (*sqrt<mode>2): Likewise.
4027         (aarch64_frecpe<mode>): Likewise.
4028         (aarch64_cm<optab><mode>): Likewise.
4029         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
4030         HF, V4HF and V8HF.
4031         * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
4032         (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
4033         (stype): New.
4034         * config/aarch64/arm_neon.h (vdup_n_f16): New.
4035         (vdupq_n_f16): Likewise.
4036         (vld1_dup_f16): Use vdup_n_f16.
4037         (vld1q_dup_f16): Use vdupq_n_f16.
4038         (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
4039         vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
4040         vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
4041         vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
4042         vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
4043         vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
4044         vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
4045         vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
4046         vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
4047         vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
4048         vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
4049         vsqrt_f16, vsqrtq_f16): New.
4051 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
4053         * config/aarch64/aarch64-simd.md
4054         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
4055         (aarch64_ext<mode>): Likewise.
4056         (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
4057         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
4058         aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
4059         and V8HFmode.
4060         * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
4061         float16x8_t.
4062         (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
4063         __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
4064         vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
4065         vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
4066         vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
4067         vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
4068         vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
4069         New.
4070         (vmov_n_f16): Reimplement using vdup_n_f16.
4071         (vmovq_n_f16): Reimplement using vdupq_n_f16..
4073 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
4075         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
4076         "frame_related_p".  Generate CFA annotation when it's necessary.
4077         (aarch64_expand_prologue): Use aarch64_add_constant.
4078         (aarch64_expand_epilogue): Likewise.
4079         (aarch64_output_mi_thunk): Pass "false" when calling
4080         aarch64_add_constant.
4082 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
4084         * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
4085         sequences.
4087 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
4089         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
4090         Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
4091         (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
4092         (aarch64_build_constant): Delete.
4094 2016-07-25  Alexander Monakov  <amonakov@ispras.ru>
4096         Revert
4097         2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
4099         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4100         flag_toplevel_reorder.
4102 2016-07-25  Richard Biener  <rguenther@suse.de>
4104         * cgraph.c (cgraph_node::verify_node): Compare against builtin
4105         by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
4106         * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
4107         * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
4108         (streamer_get_builtin_tree): Likewise.
4109         (streamer_write_builtin): Likewise.
4110         * lto-streamer.h (LTO_builtin_decl): Remove.
4111         * lto-streamer-in.c (lto_read_tree_1): Remove assert.
4112         (lto_input_scc): Remove LTO_builtin_decl handling.
4113         (lto_input_tree_1): Liekwise.
4114         * lto-streamer-out.c (lto_output_tree_1): Remove special
4115         handling of builtins.
4116         (DFS::DFS): Likewise.
4117         * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
4118         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
4119         assert.
4120         (streamer_write_builtin): Remove.
4122 2016-07-25  Martin Liska  <mliska@suse.cz>
4124         * lto-cgraph.c (input_symtab): Don't call get_working_sets
4125         if flag_auto_profile is set to true.
4127 2016-07-25  Martin Liska  <mliska@suse.cz>
4129         PR gcov-profile/71868
4130         * cfgloopanal.c (expected_loop_iterations_unbounded): When we
4131         have a function with multiple latches, count them all.
4133 2016-07-25  Martin Liska  <mliska@suse.cz>
4135         * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
4137 2016-07-25  Martin Liska  <mliska@suse.cz>
4139         PR tree-optimization/71987
4140         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
4141         just for SSA_NAMEs. Fix GNU coding style.
4143 2016-07-25  Martin Liska  <mliska@suse.cz>
4145         PR gcov-profile/64874
4146         * gcov-io.h: Update command about file format.
4147         * gcov-iov.c (main): Adapt the numbering scheme.
4149 2016-07-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
4151         PR middle-end/66726
4152         * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
4153         whose result is used in PHI.
4154         (final_range_test_p): Likewise.
4155         (maybe_optimize_range_tests): Likewise.
4157 2016-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
4159         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4160         Reformat two multi-line strings.
4162 2016-07-22  Martin Sebor  <msebor@redhat.com>
4164         * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
4166 2016-07-22  Martin Sebor  <msebor@redhat.com>
4168         PR c/71560
4169         * doc/extend.texi (Compound Literals): Correct and clarify.
4170         (Cast to Union): Same.
4172 2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4174         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4175         comments to explain why certain error messages make mention of
4176         undocumented options.
4177         (rs6000_invalid_builtin): Change error messages to replace mention
4178         of undocumented options with mention of the -mcpu=power9 option
4179         that enables those undocumented options.
4180         * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
4181         (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
4182         definition of this macro to correct an existing error.
4183         * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
4184         mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
4185         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
4186         descriptions of built-in functions so that they depend on
4187         -mcpu=power9 instead of on the corresponding undocumented flags.
4188         * doc/invoke.texi (Option Summary):  Remove all mention of newly
4189         undocumented flags.
4190         (IBM RS/6000 and PowerPC Options): Likewise.
4191         * doc/md.texi (Constraints for Particuliar Machines): Remove all
4192         mention of newly undocumented flags.
4194 2016-07-22  Evgeny Stupachenko  <evstupac@gmail.com>
4196         * ipa-cp.c (determine_versionability): Do not create constprop clones,
4197         when target_clones attribute is set.
4199 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
4201         * common.opt (funsafe-loop-optimizations): Mark ignore.
4202         * doc/invoke.texi (funsafe-loop-optimizations): Remove.
4203         * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
4204         related code.
4205         * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
4206         * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
4208 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
4210         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4211         Parameter.
4212         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4213         Parameter.
4214         (number_of_iterations_exit): Warn missed loop optimization for
4215         possible infinite loops.
4217 2016-07-22  Segher Boessenkool  <segher@kernel.crashing.org>
4219         PR target/71216
4220         * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
4221         when to emit a ".machine" pseudo-op.
4223 2016-07-22  Martin Liska  <mliska@suse.cz>
4225         PR gcov-profile/69028
4226         PR gcov-profile/62047
4227         * coverage.c (coverage_compute_lineno_checksum): Do not
4228         calculate checksum for fns w/o xloc.file.
4229         (coverage_compute_profile_id): Likewise.
4231 2016-07-22  Georg-Johann Lay  <avr@gjlay.de>
4233         * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
4234         (avr_secondary_reload): ...and implementation.
4235         (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
4236         * config/avr/avr.md (reload_in<mode>): Remove insns.
4237         (adjust_len) [lpm]: Remove insn attribute value.
4238         * config/avr/predicates.md (flash_operand): Remove insn predicate.
4240 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4242         PR middle-end/71876
4243         * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
4244         attribute.
4245         * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
4246         * calls.c (special_function_p): Remove the special handling of the
4247         "__builtin_" prefix.
4249 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4251         PR middle-end/71876
4252         * calls.c (gimple_maybe_alloca_call_p): New function.  Return true
4253         if STMT may be an alloca call.
4254         (gimple_alloca_call_p, alloca_call_p): Return only true for the
4255         builtin alloca call.
4256         * calls.h (gimple_maybe_alloca_call_p): New function.
4257         * tree-inline.c (inline_forbidden_p_stmt): Use
4258         gimple_maybe_alloca_call_p here.
4260 2016-07-21  David Malcolm  <dmalcolm@redhat.com>
4262         * spellcheck-tree.c (best_macro_match::best_macro_match):
4263         Explictly specify the template arguments when invoking the base
4264         class constructor, to help older C++ compilers.
4266 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
4268         PR sanitizer/71953
4269         * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
4270         before builtin_decl_implicit.
4272 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
4274         * optabs.c (emit_condiitonal_move): Short circuit for identical
4275         sources.
4277 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
4279         * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
4280         max_seq_cost.  Removed fields: then_cost, else_cost, branch_cost.
4281         (noce_conversion_profitable_p): New.
4282         (noce_try_store_flag_constants): Use it.
4283         (noce_try_addcc): Likewise.
4284         (noce_try_store_flag_mask): Likewise.
4285         (noce_try_cmove): Likewise.
4286         (noce_try_cmove_arith): Likewise.
4287         (bb_valid_for_noce_process_p): Add to the cost parameter rather than
4288         overwriting it.
4289         (noce_convert_multiple_sets): Move cost model to here, from...
4290         (bb_ok_for_noce_convert_multiple_sets) ...here.
4291         (noce_process_if_block): Update calls for above changes.
4292         (noce_find_if_block): Record new noce_if_info parameters.
4294 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
4296         * target.def (max_noce_ifcvt_seq_cost): New.
4297         * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
4298         * doc/tm.texi: Regenerate.
4299         * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
4300         * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
4301         * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
4302         (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
4303         * doc/invoke.texi: Document new params.
4305 2016-07-21  Richard Biener  <rguenther@suse.de>
4307         PR tree-optimization/71947
4308         * tree-vrp.c (extract_range_from_assert): Singleton symbolic
4309         ranges have useful limit_vr information.
4311 2016-07-21  Richard Biener  <rguenther@suse.de>
4313         * function-tests.c (build_trivial_generic_function): Set
4314         BLOCK_SUPERCONTEXT of DECL_INITIAL.
4315         * omp-low.c (create_omp_child_function): Likewise.
4316         (grid_expand_target_grid_body): Likewise.
4317         * cgraphunit.c (init_lowered_empty_function): Likewise.
4318         (cgraph_node::expand_thunk): Likewise.
4319         * tree-parloops.c (create_loop_fn): Likewise.
4320         * ipa.c (cgraph_build_static_cdtor_1): Likewise.
4322 2016-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4324         * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
4325         in comment.
4327 2016-07-21  Georg-Johann Lay  <avr@gjlay.de>
4329         * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
4330         (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
4331         (*insv.xor-extract, *insv.xor1-bit.0): New insns.
4332         (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
4333         values for insn attribute.
4334         * config/avr/avr.c (avr_out_insert_notbit): New function.
4335         (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
4336         ADJUST_LEN_INSV_NOTBIT_0/_7.
4337         * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
4339 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
4341         * tree-chrec.c (convert_affine_scev): New parameter.  Pass new arg.
4342         (chrec_convert_1, chrec_convert): Ditto.
4343         * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
4344         * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
4345         * tree-vrp.c (adjust_range_with_scev): Ditto.
4346         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
4347         (scev_var_range_cant_overflow): New function.
4348         (scev_probably_wraps_p): New parameter.  Call above function.
4349         * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
4351 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
4353         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
4354         by removing computation of may_be_zero.
4356 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
4358         * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
4360 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
4362         Improving concepts performance and diagnostics.
4363         * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
4364         for constraint satisfaction and subsumption.
4365         * timevar.h (auto_timevar): New constructor that matches the push/pop
4366         pattern of usage in pt.c.
4368 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
4370         * hwint.h (HOST_WIDE_INT_0): New define.
4371         (HOST_WIDE_INT_0U): Ditto.
4372         * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
4373         * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
4374         * simplify-rtx.c: Ditto.
4375         * tree-object-size.c: Ditto.
4377 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4379         * config/s390/s390.c (s390_encode_section_info): Remove mode size
4380         check.
4382 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
4384         * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
4385         * combine.c: Use HOST_WIDE_INT_M1U instead of
4386         ~(unsigned HOST_WIDE_INT) 0.
4387         * double-int.h: Ditto.
4388         * dse.c: Ditto.
4389         * dwarf2asm.c:Ditto.
4390         * expmed.c: Ditto.
4391         * genmodes.c: Ditto.
4392         * match.pd: Ditto.
4393         * read-rtl.c: Ditto.
4394         * tree-ssa-loop-ivopts.c: Ditto.
4395         * tree-ssa-loop-prefetch.c: Ditto.
4396         * tree-vect-generic.c: Ditto.
4397         * tree-vect-patterns.c: Ditto.
4398         * tree.c: Ditto.
4400 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
4402         * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
4403         constant addresses outside [0,0xc0] into a register.
4404         (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
4405         cases where the base address register is unused after.
4406         (avr_out_movhi_r_mr_reg_disp_tiny): Same.
4407         (avr_out_movhi_mr_r_reg_disp_tiny): Same.
4408         (avr_out_store_psi_reg_disp_tiny): Same.
4410 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
4412         Implement attribute progmem on reduced Tiny cores by adding
4413         flash offset 0x4000 to respective symbols.
4415         PR target/71948
4416         * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
4417         documentation how it works on reduced Tiny cores.
4418         (AVR Named Address Spaces): No support for reduced Tiny.
4419         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
4420         (avr_address_tiny_pm_p): New static function.
4421         (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
4422         if the address is in progmem.
4423         (avr_assemble_integer): Same.
4424         (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
4425         for symbol_ref in progmem.
4426         * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
4427         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
4428         magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
4430 2016-07-20  Patrick Palka  <ppalka@gcc.gnu.org>
4432         * configure.ac (thin_archive_support): New variable.  AC_SUBST it.
4433         * configure: Regenerate.
4434         * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
4435         (USE_THIN_ARCHIVES): New variable.
4436         (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
4437         this archive as a thin archive.
4439 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
4441         * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
4442         same location as last time, don't skip if we have fix-it hints.
4443         Clarify the skipping logic by converting it from one "if" clause
4444         to repeated "if" clauses.
4445         * spellcheck-tree.c: Include "cpplib.h".
4446         (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
4447         (best_macro_match::best_macro_match): New constructor.
4448         * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
4449         Move here from c/c-decl.c.
4450         (class best_macro_match): Move here from c/c-decl.c, converting
4451         from a typedef to a subclass, gaining a ctor.
4453 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
4455         * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
4456         * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
4457         define...
4458         (avr_addr_space_diagnose_usage): ...and implementation.
4459         (avr_addr_space_supported_p): New function.
4460         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
4461         report bad address space usage if that space is supported.
4462         (avr_insert_attributes): Same.  No more complain about unsupported
4463         address spaces.
4464         * config/avr/avr-c.c (tm_p.h): Include it.
4465         (avr_cpu_cpp_builtins): Only define addr-space related built-in
4466         macro if avr_addr_space_supported_p.
4468 2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
4470         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4471         flag_toplevel_reorder.
4473 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
4475         * gcc-rich-location.c
4476         (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
4477         a const char *.
4478         * gcc-rich-location.h
4479         (gcc_rich_location::add_fixit_misspelled_id): Likewise.
4481 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
4483         * target.def (addr_space): Add new diagnose_usage to hook vector.
4484         * targhooks.c (default_addr_space_diagnose_usage): Add default
4485         implementation and...
4486         * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
4487         * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
4488         is some address space, call targetm.addr_space.diagnose_usage.
4489         * doc/tm.texi.in (Named Address Spaces): Add anchor for
4490         TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
4491         * doc/tm.texi: Regenerate.
4493 2016-07-20  Martin Liska  <mliska@suse.cz>
4495         PR middle-end/71898
4496         * graphite-isl-ast-to-gimple.c (later_of_the_two):
4497         Properly handly PHI stmts.
4499 2016-07-20  Bin Cheng  <bin.cheng@arm.com>
4501         PR tree-optimization/71503
4502         PR tree-optimization/71683
4503         * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
4504         and break.
4506 2016-07-20  Martin Liska  <mliska@suse.cz>
4508         * doc/invoke.texi (-fipa-ra): Document when the option is
4509         disabled. Fix a typo.
4511 2016-07-20  Martin Liska  <mliska@suse.cz>
4513         * Makefile.in: Include fibonacci_heap.c
4514         * fibonacci_heap.c: New file.
4515         * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
4516         (fibonacci_heap::union_with): Fix deletion of the second heap.
4517         * selftest-run-tests.c (selftest::run_tests): Incorporate
4518         fibonacci heap tests.
4519         * selftest.h: Declare fibonacci_heap_c_tests.
4521 2016-07-20  Martin Liska  <mliska@suse.cz>
4523         * selftest-run-tests.c (selftest::run_tests): New function.
4524         * selftest.h (sreal_c_tests): Declare.
4525         * sreal.c (sreal_verify_basics): New function.
4526         (verify_aritmetics): Likewise.
4527         (sreal_verify_arithmetics): Likewise.
4528         (verify_shifting): Likewise.
4529         (sreal_verify_shifting): Likewise.
4530         (void sreal_c_tests): Likewise.
4532 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
4534         PR rtl-optimization/71916
4535         * cfgrtl.c (contains_no_active_insn_p): Return false also for
4536         bb which have a single succ fake edge.
4538 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
4540         PR debug/71855
4541         * dwarf2out.c (gen_subprogram_die): Only call
4542         gen_unspecified_parameters_die while dumping early dwarf.
4544 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
4546         PR middle-end/71874
4547         * gimple-fold.c (fold_builtin_memory_op): Use
4548         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
4550 2016-07-19  Uros Bizjak  <ubizjak@gmail.com>
4552         * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
4553         HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
4554         HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
4555         HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
4556         * combine.c: Ditto.
4557         * cse.c: Ditto.
4558         * dojump.c: Ditto.
4559         * double-int.c: Ditto.
4560         * dse.c: Ditto.
4561         * dwarf2out.c: Ditto.
4562         * expmed.c: Ditto.
4563         * expr.c: Ditto.
4564         * fold-const.c: Ditto.
4565         * function.c: Ditto.
4566         * fwprop.c: Ditto.
4567         * genmodes.c: Ditto.
4568         * hwint.c: Ditto.
4569         * hwint.h: Ditto.
4570         * ifcvt.c: Ditto.
4571         * loop-doloop.c: Ditto.
4572         * loop-invariant.c: Ditto.
4573         * loop-iv.c: Ditto.
4574         * match.pd: Ditto.
4575         * optabs.c: Ditto.
4576         * real.c: Ditto.
4577         * reload.c: Ditto.
4578         * rtlanal.c: Ditto.
4579         * simplify-rtx.c: Ditto.
4580         * stor-layout.c: Ditto.
4581         * toplev.c: Ditto.
4582         * tree-ssa-loop-ivopts.c: Ditto.
4583         * tree-vect-generic.c: Ditto.
4584         * tree-vect-patterns.c: Ditto.
4585         * tree.c: Ditto.
4586         * tree.h: Ditto.
4587         * ubsan.c: Ditto.
4588         * varasm.c: Ditto.
4589         * wide-int-print.cc: Ditto.
4590         * wide-int.cc: Ditto.
4591         * wide-int.h: Ditto.
4593 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
4595         * selftest.c (selftest::assert_streq): Handle NULL values of
4596         val_actual and val_expected.
4598 2016-07-19  Martin Jambor  <mjambor@suse.cz>
4600         PR fortran/71688
4601         * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
4602         rather than cgraph_create_node to get a call graph node.
4604 2016-07-19  Richard Biener  <rguenther@suse.de>
4606         * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
4607         handle all tcc_constant bases and valueize SSA names.
4608         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
4609         tcc_constant bases.
4611 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
4613         * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
4614         the flags of the exit block and bb2, not just the entry block.
4616 2016-07-19  Richard Biener  <rguenther@suse.de>
4618         PR tree-optimization/71901
4619         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
4620         align member, group stuff with the bitfield.
4621         (vn_ref_op_align_unit): New inline.
4622         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
4623         record element alignment and operand 3 unchanged.
4624         (ao_ref_init_from_vn_reference): Adjust.
4625         (valueize_refs_1): Likewise.
4626         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
4628 2016-07-19  Richard Biener  <rguenther@suse.de>
4630         PR tree-optimization/71908
4631         * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
4632         symbolic constants in a more reliable way.
4634 2016-07-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4636         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
4637         comment.
4638         (vect_update_inits_of_drs): Likewise.
4639         (vect_create_cond_for_alias_checks): Likewise.
4640         * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
4642 2016-07-19  Richard Biener  <rguenther@suse.de>
4644         PR lto/71907
4645         * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
4646         with an abstract origin that is not an inlined function outer
4647         scope add a self-reference as abstract origin.
4648         * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
4650 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4652         PR target/71493
4653         * config/rs6000/rs6000.c (rs6000_function_value): Fix
4654         unintentional System V.4 structure return breakage for structures
4655         with a single floating point element.
4657 2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
4659         PR tree-optimization/71734
4660         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
4661         contains REF, use it to check safelen, assume that safelen value
4662         must be greater 1, fix style.
4663         (ref_indep_loop_p_2): Add REF_LOOP argument.
4664         (ref_indep_loop_p): Pass LOOP as additional argument to
4665         ref_indep_loop_p_2.
4667 2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4669         * cfgexpand.c (expand_stack_vars): Implement synamic stack space
4670         allocation in the prologue.
4671         * explow.c (get_dynamic_stack_base): New function to return an address
4672         expression for the dynamic stack base.
4673         (get_dynamic_stack_size): New function to do the required dynamic stack
4674         space size calculations.
4675         (allocate_dynamic_stack_space): Use new functions.
4676         (align_dynamic_address): Move some code from
4677         allocate_dynamic_stack_space to new function.
4678         * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
4680 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4682         * config/s390/s390.c (s390_encode_section_info): Always set
4683         notaligned marker if mode size is 0 or no MEM_ALIGN info could be
4684         found.
4686 2016-07-18  Richard Biener  <rguenther@suse.de>
4688         PR tree-optimization/71893
4689         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
4690         for sizetype cast added by array_ref_element_size.
4691         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4693 2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
4695         * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
4696         register parameters.  Remove code to initialize argument pointer
4697         on TARGET_64BIT.  Optimize call to _mcount when it can be reached
4698         using a pc-relative branch.  Cleanup conditional code.
4699         * config/pa/pa.md (call_mcount): New expander.
4700         (call_mcount_nonpic): New insn.
4701         (call_mcount_pic): New insn and split.
4702         (call_mcount_pic_post_reload): New insn.
4703         (call_mcount_64bit): New insn and split.
4704         (call_mcount_64bit_post_reload): New insn.
4706 2016-07-15  Georg-Johann Lay  <avr@gjlay.de>
4708         * config/avr/predicates.md (const_m255_to_m1_operand): New.
4709         * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
4710         * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
4711         (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
4712         (*usum_widenqihi3, *udiff_widenqihi3)
4713         (*addhi3_zero_extend.const): New combiner insns.
4714         (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
4715         just 1 bit is affected.
4716         * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
4717         (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
4719 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
4721         * omp-low.c (lower_omp_target): Mark data clauses with
4722         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
4723         zero-length subarrays.
4725 2016-07-15  Richard Biener  <rguenther@suse.de>
4727         PR tree-optimization/71881
4728         * tree-loop-distribution.c (destroy_loop): Remove blocks in
4729         reverse DOM order to make debug temp generation happy.
4731 2016-07-15  Richard Biener  <rguenther@suse.de>
4733         PR tree-optimization/71887
4734         * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
4735         verify it is not zero for division / modulo handling.
4736         (value_replacement): Adjust.
4738 2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
4739             Julian Brown  <julian@codesourcery.com>
4741         * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
4742         * config/aarch64/aarch64-cost-tables.h
4743         (vulcan_extra_costs): New variable.
4744         * config/aarch64/aarch64.c
4745         (vulcan_addrcost_table): Likewise.
4746         (vulcan_regmove_cost): Likewise.
4747         (vulcan_vector_cost): Likewise.
4748         (vulcan_branch_cost): Likewise.
4749         (vulcan_tunings): Likewise.
4751 2016-07-15  Alexander Monakov  <amonakov@ispras.ru>
4753         * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
4754         (output_in_order): Loop over undefined variables too.  Output them
4755         via assemble_undefined_decl.  Skip variables that correspond to hard
4756         registers or have value-exprs.
4757         * varpool.c (symbol_table::output_variables): Handle undefined
4758         variables together with defined ones.
4760 2016-07-15  Richard Biener  <rguenther@suse.de>
4762         * tree-ssa-pre.c (get_representative_for): Make sure to return
4763         the value number of SSA names.
4764         (phi_translate_1): get_representative_for cannot return NULL.
4765         (do_pre_regular_insertion): Remove redundant call to
4766         fully_constant_expression.
4767         (do_pre_partial_partial_insertion): Likewise.
4769 2016-07-15  Bin Cheng  <bin.cheng@arm.com>
4771         * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
4772         (derive_simple_iv_with_niters): New function.
4773         (simple_iv): Rewrite using simple_iv_with_niters.
4774         * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
4775         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4776         function.
4777         (number_of_iterations_exit): Rewrite using above function.
4778         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4779         Decl.
4781 2016-07-15  Richard Biener  <rguenther@suse.de>
4783         * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
4784         vec_construct cost.
4786 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
4788         PR tree-optimization/71872
4789         * tree-data-ref.c (get_references_in_stmt): Ignore references
4790         with is_gimple_constant get_base_address.
4792 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4794         * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
4795         (TARGET_HAVE_LDACQD): New macro.
4796         * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
4797         than TARGET_HAVE_LDACQ.
4798         (arm_load_acquire_exclusivedi): Likewise.
4799         (arm_store_release_exclusivedi): Likewise.
4801 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4803         PR rtl-optimization/71878
4804         * lra-constraints.c (match_reload): Pass information about other
4805         output operands.  Create new unique register value if matching input
4806         operand shares same register value as output operand being considered.
4807         (curr_insn_transform): Record output operands already processed.
4809 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4811         PR target/65951
4812         PR tree-optimization/70923
4813         * tree-vect-patterns.c: Include mult-synthesis.h.
4814         (target_supports_mult_synth_alg): New function.
4815         (synth_lshift_by_additions): Likewise.
4816         (apply_binop_and_append_stmt): Likewise.
4817         (vect_synth_mult_by_constant): Likewise.
4818         (target_has_vecop_for_code): Likewise.
4819         (vect_recog_mult_pattern): Use above functions to synthesize vector
4820         multiplication by integer constants.
4822 2016-07-14  Alan Modra  <amodra@gmail.com>
4824         * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
4825         gpr alternatives.  Correct '*' placement on Y,r alternative.
4826         Add '*' on operand 1 of r,r alternative.
4828 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4830         * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
4831         * expmed.h: ... Here.
4833 2016-07-14  Jan Hubicka  <hubicka@ucw.cz>
4835         * gimple.h (stmt_can_terminate_bb_p): New function.
4836         * tree-cfg.c (need_fake_edge_p): Rename to ...
4837         (stmt_can_terminate_bb_p): ... this; return true if stmt can
4838         throw external; handle const and pure calls.
4839         * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
4841 2016-07-14  Richard Biener  <rguenther@suse.de>
4843         PR tree-optimization/71866
4844         * tree-ssa-pre.c (get_constant_for_value_id): Remove.
4845         (do_hoist_insertion): Avoid endless recursion when we
4846         didn't insert anything because we managed to simplify
4847         things down to a constant or SSA name.
4848         (fully_constant_expression): Re-write in terms of ...
4849         * tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
4850         * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
4851         vn_nary_build_or_lookup_1.
4852         (vn_nary_build_or_lookup_1): Added flag and renamed from ...
4853         (vn_nary_build_or_lookup): ... this which now wraps it.
4855 2016-07-14  Alan Modra  <amodra@gmail.com>
4857         PR target/71733
4858         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
4859         with p9_vector override before power9-dform override.
4861 2016-07-13  Andi Kleen  <ak@linux.intel.com>
4863         * value-prof.c (gimple_value_profile_transformations): Don't run
4864         when auto_profile is on.
4866 2016-07-13  Andi Kleen  <ak@linux.intel.com>
4868         * auto-profile.c (update_inlined_ind_target,
4869         afdo_indirect_call): Print information to dump file.
4871 2016-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
4873         * genrecog.c (special_predicate_operand_p): New function.
4874         (predicate_name): Move function.
4875         (validate_pattern): Don't warn about missing mode for all
4876         define_special_predicate predicates.
4878 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
4880         * tree-vect-data-refs.c (vect_no_alias_p): New function.
4881         (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
4882         resolve alias checks which are known at compilation time.
4883         Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
4884         alias checks are resolved.  Move dump info for too many runtime
4885         alias checks to here...
4886         * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
4888 2016-07-13  Richard Biener  <rguenther@suse.de>
4890         PR tree-optimization/24574
4891         * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
4892         position and add shift, rotate, divison and modulo support
4893         for left zero.
4894         (value_replacement): Pass in argument position to absorbing_element_p.
4896 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4898         PR ipa/71633
4899         * ipa-inline-transform.c (inline_call): Support
4900         instrumented thunks.
4902 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4904         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
4905         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
4906         divide feature.
4907         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
4908         Baseline.  Make initial alternative TARGET_32BIT only.
4909         (udivsi3): Likewise.
4910         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
4911         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
4912         target.
4914 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4916         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
4917         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
4918         availability with TARGET_HAVE_MOVT.
4919         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
4920         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
4921         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
4922         UINTVAL.
4923         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
4924         extra instruction if MOVW is available.  Use a cost variable
4925         incremented by COSTS_N_INSNS (1) when the condition match rather than
4926         returning an arithmetic expression based on COSTS_N_INSNS.  Make
4927         constant with bottom half word zero cost 2 instruction if MOVW is
4928         available.
4929         * config/arm/arm.md (define_attr "arch"): Add v8mb.
4930         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
4931         target is ARMv8-M Baseline.
4932         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
4933         (arm_movtas_ze): Likewise.
4934         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
4935         alternative for constants satisfying j constraint.
4936         (thumb1_movsi_insn): Likewise.
4937         (movsi splitter for K alternative): Tighten condition to not trigger
4938         if movt is available and j constraint is satisfied.
4939         (Pe immediate splitter): Likewise.
4940         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
4941         constant fitting in an halfword to use MOVW.
4942         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
4943         effective target.
4945 2016-07-13  Richard Biener  <rguenther@suse.de>
4947         PR middle-end/71104
4948         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
4949         gimplifying the LHS.  Make sure to gimplify a returning twice
4950         call LHS without using SSA names.
4952 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4954         * tree-data-ref.c (find_data_references_in_stmt): Remove
4955         unnecessary call to vec::release.
4956         (graphite_find_data_references_in_stmt): Likewise.
4957         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
4958         * tree-vect-stmts.c (vectorizable_condition): Likewise.
4960 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4962         * cfgexpand.c (expand_used_vars): Make the type of a local
4963         variable auto_vec.
4964         * genmatch.c (lower_for): Likewise.
4965         * haifa-sched.c (haifa_sched_init): Likewise.
4966         (add_to_speculative_block): Likewise.
4967         (create_check_block_twin): Likewise.
4968         * predict.c (handle_missing_profiles): Likewise.
4969         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
4970         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
4971         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
4972         Likewise.
4973         (maybe_lower_iteration_bound): Likewise.
4974         * tree-ssa-sccvn.c (DFS): Likewise.
4975         * tree-stdarg.c (reachable_at_most_once): Likewise.
4976         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
4977         (vectorizable_store): Likewise.
4979 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4981         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
4982         (sccvn_dom_walker): make cond_stack an auto_vec.
4984 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4986         * ree.c (struct ext_state): Make type of members auto_vec.
4987         (find_and_remove_re): Adjust.
4989 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4991         * cfgexpand.c (struct stack_vars_data): Make type of fields
4992         auto_vec.
4993         (expand_used_vars): Adjust.
4995 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4997         * ipa.c (record_cdtor_fn): Adjust.
4998         (build_cdtor_fns): Likewise.
4999         (ipa_cdtor_merge): Make static_ctors and static_dtors local
5000         variables.
5002 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5004         * genextract.c (struct accum_extract): Add constructor and make
5005         members auto_vec.
5006         (gen_insn): Adjust.
5008 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5010         * tree.c (struct free_lang_data_d): Add constructor and change
5011         types of members to ones that automatically manage resources.
5012         (fld_worklist_push): Adjust.
5013         (find_decls_types): Likewise.
5014         (find_decls_types_in_eh_region): Likewise.
5015         (free_lang_data_in_cgraph): Stop manually creating and
5016         destroying members of free_lang_data_d.
5018 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
5020         PR rtl-optimization/68961
5021         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
5022         peephole variant.  Use sse_reg_operand predicates.
5024 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
5026         * config/i386/predicates.md (x86_64_immediate_operand)
5027         <case CONST_INT>: Remove unneeded truncation to DImode.
5028         <case CONST>: Ditto.
5029         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5031 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
5033         PR target/71805
5034         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
5035         The xxperm and xxpermr instructions require that the 2nd input
5036         operand overlap with the output operand, and not the 1st.
5037         (altivec_vperm_v8hiv16qi): Likewise.
5038         (altivec_vperm_<mode>_uns_internal): Likewise.
5039         (altivec_vpermr_<mode>_internal): Likewise.
5040         (vperm_v8hiv4si): Likewise.
5041         (vperm_v16qiv8hi): Likewise.
5043 2016-07-12  Nathan Sidwell  <nathan@acm.org>
5045         * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
5046         when -mno-pic-data-is-text-relative is in effect, by default.
5047         * doc/invoke.texi (mpic-data-is-text-relative): Document new
5048         behavior and clarify.
5050 2016-07-12  Martin Liska  <mliska@suse.cz>
5052         * params.def: Add avg-loop niter.
5053         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
5054         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
5055         * doc/invoke.texi: Document the new parameter.
5057 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5059         PR middle-end/71700
5060         * expr.c (store_constructor): Mask sign-extended bits when widening
5061         sub-word constructor element at the start of a word.
5063 2016-07-12  Martin Liska  <mliska@suse.cz>
5065         * Makefile.in: Append rule for params-options.h.
5066         * params-options.h: New file.
5068 2016-07-12  Martin Liska  <mliska@suse.cz>
5070         * ira-build.c (mark_loops_for_removal): Properly iterate
5071         loops.
5073 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
5074             Richard Biener  <rguenther@suse.de>
5076         PR tree-optimization/23286
5077         PR tree-optimization/70159
5078         * doc/invoke.texi: Document -fcode-hoisting.
5079         * common.opt (fcode-hoisting): New flag.
5080         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
5081         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
5082         (do_regular_insertion): Rename to ...
5083         (do_pre_regular_insertion): ... this and amend general comments
5084         on insertion strathegy.
5085         (do_partial_partial_insertion): Rename to ...
5086         (do_pre_partial_partial_insertion): ... this.
5087         (do_hoist_insertion): New function.
5088         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
5089         and call do_hoist_insertion properly.
5090         (insert): Adjust.
5091         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
5092         (pass_pre::execute): Register hoist_insert stats.
5094 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
5096         PR middle-end/71716
5097         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
5098         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
5099         is different from mode's bitsize.  Small cleanup.
5101 2016-07-12  Richard Biener  <rguenther@suse.de>
5103         PR rtl-optimization/68961
5104         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
5105         to simplify to a non-constant.
5107 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
5109         PR middle-end/71758
5110         * omp-low.c (expand_omp_target): Gimplify device.
5112         PR tree-optimization/71823
5113         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
5114         to get vec_oprnds2 from op2.
5116 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
5118         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
5119         Hoist common subexpressions.
5120         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5122 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
5124         PR target/71800
5125         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
5126         prevent generation of 'stxsiwx' on pre Power8 hardware.
5128 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
5130         * input.c: Include cpplib.h.
5131         (selftest::temp_source_file): New class.
5132         (selftest::temp_source_file::temp_source_file): New ctor.
5133         (selftest::temp_source_file::~temp_source_file): New dtor.
5134         (selftest::should_have_column_data_p): New function.
5135         (selftest::test_should_have_column_data_p): New function.
5136         (selftest::temp_line_table): New class.
5137         (selftest::temp_line_table::temp_line_table): New ctor.
5138         (selftest::temp_line_table::~temp_line_table): New dtor.
5139         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
5140         it to create a temp_line_table.
5141         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
5142         locations that are known to have column data.
5143         (selftest::line_table_case): New struct.
5144         (selftest::test_reading_source_line): Move tempfile handling
5145         to class temp_source_file.
5146         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
5147         (selftest::assert_token_loc_eq): New function.
5148         (ASSERT_TOKEN_LOC_EQ): New macro.
5149         (selftest::test_lexer): New function.
5150         (selftest::boundary_locations): New array.
5151         (selftest::input_c_tests): Call test_should_have_column_data_p.
5152         Loop over a test matrix of interesting values of location and
5153         default_range_bits, calling test_lexer on each case in the matrix.
5154         Move call to test_accessing_ordinary_linemaps into the matrix.
5155         * selftest.h (ASSERT_EQ): Reimplement in terms of...
5156         (ASSERT_EQ_AT): New macro.
5158 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
5160         PR target/71801
5161         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
5162         Don't convert TImode in debug insn.
5164 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5166         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
5167         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
5168         (tree_type_common::lang_flag_7): New.
5169         (tree_type_common::spare): Reduce size.
5170         * tree.h (TYPE_ALIGN_OK): Remove.
5171         (TYPE_LANG_FLAG_7): New.
5172         (get_inner_reference): Adjust header.
5173         * print-tree.c (print_node): Adjust.
5174         * expr.c (get_inner_reference): Remove parameter keep_aligning.
5175         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
5176         calls to get_inner_reference.
5177         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
5178         handling of TYPE_ALIGN_OK.
5179         * builtins.c (get_object_alignment_2): Adjust call to
5180         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
5181         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
5182         TYPE_ALIGN_OK.
5183         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
5184         * cfgexpand.c (expand_debug_expr): Likewise.
5185         * dbxout.c (dbxout_expand_expr): Likewise.
5186         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
5187         loc_list_from_tree, fortran_common): Likewise.
5188         * fold-const.c (optimize_bit_field_compare,
5189         decode_field_reference, fold_unary_loc, fold_comparison,
5190         split_address_to_core_and_offset): Likewise.
5191         * gimple-laddress.c (execute): Likewise.
5192         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
5193         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
5194         * hsa-gen.c (gen_hsa_addr): Likewise.
5195         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
5196         * tsan.c (instrument_expr): Likewise.
5197         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
5198         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
5199         * tree-affine.c (tree_to_aff_combination,
5200         get_inner_reference_aff): Adjust calls to get_inner_reference.
5201         * tree-data-ref.c (split_constant_offset_1,
5202         dr_analyze_innermost): Likewise.
5203         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
5204         * tree-sra.c (ipa_sra_check_caller): Likewise.
5205         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
5206         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
5207         bswap_replace): Likewise.
5208         * tree-vect-data-refs.c (vect_check_gather,
5209         vect_analyze_data_refs): Likewise.
5210         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
5211         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
5212         TYPE_ALIGN_OK.
5214 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
5216         * Makefile.in (selftest-valgrind): New phony target.
5217         * function-tests.c (selftest::build_cfg): Delete pass instances
5218         created by the test.
5219         (selftest::convert_to_ssa): Likewise.
5220         (selftest::test_expansion_to_rtl): Likewise.
5221         * tree-cfg.c (selftest::test_linear_chain): Release dominator
5222         vectors.
5223         (selftest::test_diamond): Likewise.
5225 2016-07-11  Richard Biener  <rguenther@suse.de>
5227         PR tree-optimization/71816
5228         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
5229         than replacing all of its operands.
5231 2016-07-11  Alan Modra  <amodra@gmail.com>
5233         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
5234         (ctr<mode>): Add unspec.
5235         (ctr<mode>_internal*): Likewise.
5237 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
5239         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
5240         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
5242 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
5244         PR rtl-optimization/71621
5245         * lra-constraints.c (process_alt_operands): Check combination of
5246         reg class and mode.
5248 2016-07-08  Jason Merrill  <jason@redhat.com>
5249             Richard Biener  <rguenther@suse.de>
5251         P0145: Refining Expression Order for C++.
5252         * gimplify.c (initial_rhs_predicate_for): New.
5253         (gimplfy_modify_expr): Gimplify RHS before LHS.
5255 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5257         PR target/71297
5258         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5259         Allow standard error handling to take over when a wrong number
5260         of arguments is presented to __builtin_vec_ld () or
5261         __builtin_vec_st ().
5263 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
5265         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
5266         variants.
5267         (smin): Likewise.
5268         (fmax): New entry.
5269         (fmin): Likewise.
5270         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
5271         __builtin_aarch64_fmaxv2sf.
5272         (vmaxnmq_f32): Likewise.
5273         (vmaxnmq_f64): Likewise.
5274         (vminnm_f32): Likewise.
5275         (vminnmq_f32): Likewise.
5276         (vminnmq_f64): Likewise.
5278 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
5280         PR target/71806
5281         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
5282         enable -mfloat128-hardware by default.
5283         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
5284         that IEEE 128-bit hardware support needs.
5285         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5286         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
5287         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
5288         floating point requires.
5289         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5290         -mfloat128 and -mfloat128-hardware changes.
5292 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
5294         PR tree-optimization/71667
5295         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
5297 2016-07-08  Martin Liska  <mliska@suse.cz>
5299         PR middle-end/71606
5300         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
5301         folding produces SAVE_EXPRs, thus return false for the type.
5303 2016-07-07  Martin Liska  <mliska@suse.cz>
5305         * file-find.c (remove_prefix): New function.
5306         * file-find.h (remove_prefix): Declare the function.
5307         * gcc-ar.c (main): Skip a folder of the wrapper if
5308         a wrapped binary would point to the same file.
5310 2016-07-07  Jan Hubicka  <jh@suse.cz>
5312         * tree-scalar-evolution.c (iv_can_overflow_p): export.
5313         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
5314         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
5316 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
5318         PR ipa/71624
5319         * ipa-inline-analysis.c (compute_inline_parameters): Set
5320         local.can_change_signature to false for intrumentation
5321         thunk callees.
5323 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5325         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
5326         with TARGET_HAVE_MOVT.
5327         (TARGET_HAVE_MOVT): Define.
5328         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
5329         availability with TARGET_HAVE_MOVT.
5330         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
5331         availability.
5332         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
5333         TARGET_THUMB2.
5334         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
5335         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
5336         * config/arm/constraints.md (define_constraint "j"): Use
5337         TARGET_HAVE_MOVT to check MOVT availability.
5339 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5341         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
5343 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5345         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
5346         (armv8-m.main): Likewise.
5347         (armv8-m.main+dsp): Likewise.
5348         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
5349         (FL_FOR_ARCH8M_MAIN): Likewise.
5350         * config/arm/arm-tables.opt: Regenerate.
5351         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
5352         armv8-m.main+dsp to BE8_LINK_SPEC.
5353         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
5354         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
5355         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
5356         Baseline and Mainline.
5357         (arm_option_override_internal): Also disable arm_restrict_it when
5358         !arm_arch_notm.  Update comment for -munaligned-access to also cover
5359         ARMv8-M Baseline.
5360         (arm_file_start): Increase buffer size for printing architecture name.
5361         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
5362         and armv8-m.main+dsp.
5363         (mno-unaligned-access): Clarify that this is disabled by default for
5364         ARMv8-M Baseline architectures as well.
5366 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5368         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
5369         decide whether to prevent some libgcc routines being included for some
5370         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
5371         link between this condition and the one in
5372         libgcc/config/arm/lib1func.S.
5374 2016-07-07  Richard Biener  <rguenther@suse.de>
5376         * tree-ssa-pre.c: Include alias.h.
5377         (compute_avail): If we have multiple VN_REFERENCEs with the
5378         same hashtable entry adjust that to make it a valid replacement
5379         for all of them with respect to alignment and aliasing
5380         when doing insertion.
5381         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
5382         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
5384 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
5386         PR target/70098
5387         PR target/71763
5388         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
5389         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
5390         constraint.
5392 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5394         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
5395         (adjust_mems): Adjust.
5396         (adjust_insn): Likewise.
5397         (prepare_call_arguments): Likewise.
5399 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5401         * gcse.c (struct ls_expr): Make stores field a vector.
5402         (ldst_entry): Adjust.
5403         (free_ldst_entry): Likewise.
5404         (print_ldst_list): Likewise.
5405         (compute_ld_motion_mems): Likewise.
5406         (update_ld_motion_stores): Likewise.
5408 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5410         * gcse.c (struct ls_expr): Remove loads field.
5411         (ldst_entry): Adjust.
5412         (free_ldst_entry): Likewise.
5413         (print_ldst_list): Likewise.
5414         (compute_ld_motion_mems): Likewise.
5416 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5418         * store-motion.c (struct st_expr): Make antic_stores a vector.
5419         (st_expr_entry): Adjust.
5420         (free_st_expr_entry): Likewise.
5421         (print_store_motion_mems): Likewise.
5422         (find_moveable_store): Likewise.
5423         (compute_store_table): Likewise.
5424         (remove_reachable_equiv_notes): Likewise.
5425         (replace_store_insn): Likewise.
5426         (build_store_vectors): Likewise.
5428 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5430         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
5431         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
5433 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
5435         PR tree-optimization/71518
5436         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
5437         misalign also for outer loops with negative step.
5439 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
5441         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
5442         (cortex_a53_shift): Add mov_shift.
5443         (cortex_a53_shift_reg): Add new reservation for register shifts.
5444         (cortex_a53_alu): Remove bfm.
5445         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
5446         (cortex_a53_alu_extr): Add new reservation for EXTR.
5447         (bypasses): Improve bypass modelling.
5449 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5451         PR target/50739
5452         * config/avr/avr.c (avr_asm_select_section): Strip off
5453         SECTION_DECLARED from flags when calling get_section.
5455 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5457         * tree-vectorizer.h (vect_memory_access_type): Add
5458         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
5459         * tree-vect-stmts.c (compare_step_with_zero): New function.
5460         (perm_mask_for_reverse): Move further up file.
5461         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
5462         step is negative.
5463         (get_negative_load_store_type): New function.
5464         (get_load_store_type): Call it.  Add an ncopies argument.
5465         (vectorizable_mask_load_store): Update call accordingly and
5466         remove tests for negative steps.
5467         (vectorizable_store, vectorizable_load): Likewise.  Handle new
5468         memory_access_types.
5470 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5472         * tree-vectorizer.h (vect_memory_access_type): New enum.
5473         (_stmt_vec_info): Add a memory_access_type field.
5474         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
5475         (vect_model_store_cost): Take an access type instead of a boolean.
5476         (vect_model_load_cost): Likewise.
5477         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
5478         vect_model_store_cost and vect_model_load_cost.
5479         * tree-vect-stmts.c (vec_load_store_type): New enum.
5480         (vect_model_store_cost): Take an access type instead of a
5481         store_lanes_p boolean.  Simplify tests.
5482         (vect_model_load_cost): Likewise, but for load_lanes_p.
5483         (get_group_load_store_type, get_load_store_type): New functions.
5484         (vectorizable_store): Use get_load_store_type.  Record the access
5485         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
5486         (vectorizable_load): Likewise.
5487         (vectorizable_mask_load_store): Likewise.  Replace is_store
5488         variable with vls_type.
5490 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5492         * tree-vectorizer.h (vect_grouped_load_supported): Add a
5493         single_element_p parameter.
5494         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
5495         Check the PR65518 case here rather than in vectorizable_load.
5496         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
5497         * tree-vect-stmts.c (vectorizable_load): Likewise.
5499 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5501         * tree-vectorizer.h (gather_scatter_info): New structure.
5502         (vect_check_gather_scatter): Return a bool rather than a decl.
5503         Replace return-by-pointer arguments with a single
5504         gather_scatter_info *.
5505         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
5506         (vect_analyze_data_refs): Update call accordingly.
5507         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
5508         (vectorizable_mask_load_store): Likewise.  Also record the
5509         offset dt and vectype in the gather_scatter_info.
5510         (vectorizable_store): Likewise.
5511         (vectorizable_load): Likewise.
5513 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5515         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
5516         strided groups, use the cost of N scalar accesses instead
5517         of ncopies vector accesses.
5518         (vect_model_load_cost): Likewise.
5520 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5522         * tree-vect-stmts.c (vect_cost_group_size): Delete.
5523         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
5524         variable to indicate when once-per-group costs are being used.
5525         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
5527 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
5529         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
5530         peeling-for-gaps condition.
5532 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5534         * config/s390/s390.c (s390_expand_vec_init): Force initializer
5535         element to register if it doesn't match general_operand.
5537 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
5538             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5540         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
5541         prototype.
5542         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
5543         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
5544         (SIGNBIT): New mode iterator.
5545         (Fsignbit): New mode attribute.
5546         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
5547         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
5548         when direct moves are available.
5549         (signbit<mode>2_dm): New define_insn_and_split).
5550         (signbit<mode>2_dm2): New define_insn.
5552 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5554         PR rtl-optimization/71594
5555         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
5556         into subregs of appropriate mode before trying to emit a conditional
5557         move.
5559 2016-07-05  Jan Hubicka  <jh@suse.cz>
5561         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
5562         (simple_iv): Use it.
5564 2016-07-05  Jan Hubicka  <jh@suse.cz>
5566         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
5568 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
5570         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
5571         "offmemok".
5573 2016-07-05  Jan Hubicka  <jh@suse.cz>
5575         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
5576         IV can overflow.
5578 2016-07-05  Richard Biener  <rguenther@suse.de>
5580         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
5581         Handle empty else block.
5582         (is_feasible_trace): Likewise.
5583         (split_paths): Likewise.
5585 2016-07-05  Richard Biener  <rguenther@suse.de>
5587         * tree-loop-distribution.c (distribute_loop): Fix issue with
5588         the cost model loop.
5590 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
5592         * config/arm/neon-testgen.ml: Delete.
5593         * config/arm/neon.ml: Delete.
5595 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
5597         PR c++/71739
5598         * tree.c (attribute_value_equal): Use get_attribute_name instead of
5599         directly using TREE_PURPOSE.
5601 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
5603         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
5604         * config/aarch64/aarch64_neon.h: Likewise.
5605         * config/aarch64/arm_neon.h: Likewise.
5606         * config/aarch64/atomics.md: Likewise.
5607         * config/aarch64/aarch64-simd-builtins.def: Likewise.
5608         * doc/invoke.texi: Likewise.
5610 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5612         * config/s390/s390.md: Add "z13" cpu_facility.
5613         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
5614         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
5615         condition" type instructions.
5617 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
5618             Jeff Law  <law@redhat.com>
5620         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
5621         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
5623 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
5625         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
5626         permutation for TARGET_AVX512F.
5627         (ix86_expand_vec_one_operand_perm_avx512): New function.
5628         (expand_vec_perm_1): Invoke introduced function.
5629         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5630         it may be not valid after vectorization.
5632 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5634         PR target/63874
5635         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
5636         typo in comment.  Only force to memory if it is a weak
5637         external reference.
5639 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
5640             Jiong Wang  <jiong.wang@arm.com>
5642         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
5643         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
5644         (AARCH64_FL_F16): New.
5645         (AARCH64_FL_FOR_ARCH8_2): New.
5646         (AARCH64_ISA_8_2): New.
5647         (AARCH64_ISA_F16): New.
5648         (TARGET_FP_F16INST): New.
5649         (TARGET_SIMD_F16INST): New.
5650         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
5651         ("fp"): Disabling "fp" also disables "fp16".
5652         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
5653         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
5654         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
5655         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
5657 2016-07-04  Jan Beulich  <jbeulich@suse.com>
5659         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
5661 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5663         PR target/71720
5664         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
5665         the insns, use an insn form that does not adjust the offset on
5666         little endian systems.
5668 2016-07-01  Jan Beulich  <jbeulich@suse.com>
5670         * varasm.c (get_variable_section): Validate initializer in
5671         named .bss-like sections.
5673 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5675         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
5676         Exchange the order of the second and third operands in the vpermr
5677         instruction tmeplate.
5679 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
5681         PR target/71698
5682         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
5683         Disallow TDmode values.
5685 2016-07-01  Alan Modra  <amodra@gmail.com>
5687         PR rtl-optimization/71709
5688         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
5689         being set, not referenced.
5691 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
5693         PR tree-optimization/70729
5694         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
5695         of loop since it can be not valid after transformation.
5697 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5699         * config/arm/arm.c (thumb_reload_in_hi): Delete.
5700         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
5702 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
5704         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
5705         for NULL decl.
5707 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
5709         PR target/71677
5710         * config/rs6000/constraints.md (wY constraint): New constraint to
5711         match the requirements for the LXSD and STXSD instructions.
5712         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
5713         predicate to match the requirements for the LXSD and STXSD
5714         instructions.
5715         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
5716         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
5717         to make sure that the bottom 2 bits of offset are 0, the address
5718         form is offsettable, and no updating is done in the address mode.
5719         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
5720         (movdi_internal32): Likewise
5721         (movdi_internal64): Likewise.
5723 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
5725         PR tree-optimization/71707
5726         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
5727         strinfo even for ADDR_EXPR ptr.
5729 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5731         * config/rs6000/altivec.md (darn_32): Change the condition to
5732         TARGET_P9_MISC instead of TARGET_MODULO.
5733         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
5734         condition expression.
5735         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
5736         condition expression.
5737         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
5738         (DFP_TEST): New code iterator.
5739         (dfptstsfi_<code>_mode>): New define_expand.
5740         (*dfp_sgnfcnc_<mode>): New define_insn.
5741         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
5742         definition next to BU_P9_MISC_1 definition and change the MASK
5743         value to RS6000_BTM_P9_MISC.
5744         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
5745         (BU_P9_64BIT_MISC_0): Likewise.
5746         (BU_P9_DFP_MISC_0): New macro definition.
5747         (BU_P9_DFP_MISC_1): New macro definition.
5748         (BU_P9_DFP_MISC_2): New macro definition.
5749         (BU_P9_DFP_OVERLOAD_1): New macro definition.
5750         (BU_P9_DFP_OVERLOAD_2): New macro definition.
5751         (BU_P9_DFP_OVERLOAD_3): New macro definition.
5752         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
5753         (TSTSFI_LT_TD): Likewise.
5754         (TSTSFI_EQ_DD): Likewise.
5755         (TSTSFI_EQ_TD): Likewise.
5756         (TSTSFI_GT_DD): Likewise.
5757         (TSTSFI_GT_TD): Likewise.
5758         (TSTSFI_OV_DD): Likewise.
5759         (TSTSFI_OV_TD): Likewise.
5760         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
5761         (TSTSFI_LT_DD): Likewise.
5762         (TSTSFI_LT_TD): Likewise.
5763         (TSTSFI_EQ): Likewise.
5764         (TSTSFI_EQ_DD): Likewise.
5765         (TSTSFI_EQ_TD): Likewise.
5766         (TSTSFI_GT): Likewise.
5767         (TSTSFI_GT_DD): Likewise.
5768         (TSTSFI_GT_TD): Likewise.
5769         (TSTSFI_OV): Likewise.
5770         (TSTSFI_OV_DD): Likewise.
5771         (TSTSFI_OV_TD): Likewise.
5772         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5773         overloaded test significance functions.
5774         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
5775         OPTION_MASK_P9_MISC into the representation of this mask.
5776         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
5777         of this mask.
5778         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
5779         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
5780         non-zero.
5781         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
5782         argument is a 6-bit unsigned literal value if the icode argument
5783         represents a DFP test significance built-in call.
5784         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
5785         flag used independently and in combination with the
5786         RS6000_BTM_64BIT flag.
5787         (rs6000_opt_masks): Add entry for power9-misc command-line option.
5788         (rs6000_builtin_mask_names): Add entry for power9-misc
5789         command-line option.
5790         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
5791         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
5792         RS6000_BTM_P9_MISC macros.
5793         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
5794         option and change the description of the -mpower9-vector option to
5795         enable only vector instructions, removing its erroneously claimed
5796         support for scalar instructions.
5797         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5798         the ISA 3.0 digital floating point test significance built-in
5799         functions.
5801 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
5803         * config/aarch64/aarch64.c (cortexa35_tunings):
5804         Enable AES fusion.  Use cortexa57_branch_cost.
5805         (cortexa53_tunings): Use cortexa57_branch_cost.
5806         (cortexa72_tunings): Use cortexa57_branch_cost.
5807         Use AUTOPREFETCHER_WEAK.
5808         (cortexa73_tunings): Use cortexa57_branch_cost.
5810 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5811             James Greenhalgh  <james.greenhalgh@arm.com>
5813         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
5814         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
5815         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
5816         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
5817         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
5818         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
5819         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
5820         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
5821         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
5822         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
5823         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
5824         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
5825         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
5826         New intrinsics.
5828 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
5829             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5831         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
5832         New define_insn.
5833         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5835 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
5837         PR driver/71651
5838         * gcc.c (driver::build_option_suggestions): Pass "option" to
5839         add_misspelling_candidates.
5840         * opts-common.c (add_misspelling_candidates): Add "option" param;
5841         use it to avoid adding negated forms for options marked with
5842         RejectNegative.
5843         * opts.h (add_misspelling_candidates): Add "option" param.
5845 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
5847         PR middle-end/71693
5848         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
5849         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
5850         first when permuting bitwise operation with rotate.  Cast
5851         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
5853 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
5855         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
5856         for misspelled param names.
5857         * params.c: Include spellcheck.h.
5858         (find_param_fuzzy): New function.
5859         * params.h (find_param_fuzzy): New prototype.
5860         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
5861         * spellcheck.h (struct edit_distance_traits<const char *>):
5862         ...here.
5864 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
5866         * config/rs6000/predicates.md (const_0_to_7_operand): New
5867         predicate, recognize 0..7.
5868         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5869         support for doing extracts from V16QImode, V8HImode, V4SImode
5870         under ISA 3.0.
5871         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
5872         vector extract support.
5873         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
5874         for ISA 3.0 vector extract.
5875         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
5876         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
5877         extracts of a constant element number from small integer vectors
5878         on 64-bit ISA 3.0 systems.
5879         (vsx_extract_<mode>_di): Likewise.
5880         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
5881         say when we can do ISA 3.0 vector extracts.
5882         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
5883         registers, using the stxsiwx instruction.
5885 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
5887         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
5888         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
5889         qdf24xx_regmove_cost, qdf24xx_tunings): New.
5890         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
5891         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
5892         * config/arm/arm.c (arm_qdf24xx_tune): New.
5894 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
5896         * config/aarch64/aarch64.c (cortexa53_tunings):
5897         Increase loop alignment to 8.  Set function alignment to 16.
5898         (cortexa35_tunings): Likewise.
5899         (cortexa57_tunings): Increase loop alignment to 8.
5900         (cortexa72_tunings): Likewise.
5901         (cortexa73_tunings): Likewise.
5903 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
5905         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
5906         for arm_fp16_ok and arm_fp16_hw.
5907         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
5908         arm_fp16_alternative.
5910 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
5912         PR tree-optimization/71655
5913         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
5914         types when swapping operands.
5916 2016-06-29  Martin Liska  <mliska@suse.cz>
5918         PR middle-end/71585
5919         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
5920         * ipa-inline-transform.c (inline_call): Remove unnecessary call
5921         of build_optimization_node.
5923 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
5925         PR tree-optimization/70729
5926         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
5927         independent in loops having positive safelen value.
5928         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5929         it may be not valid after vectorization.
5931 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
5933         PR tree-optimization/71625
5934         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
5935         is sorted by ascending list->offset.  If PTR is non-NULL and there is
5936         previous strinfo, call get_stridx_plus_constant.
5937         (get_stridx): Pass exp as second argument to get_addr_stridx.
5938         (addr_stridxptr): Add missing list = list->next, so that there can be
5939         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
5940         the list is sorted by ascending list->offset.
5941         (get_stridx_plus_constant): Adjust so that it can be also called with
5942         ADDR_EXPR instead of SSA_NAME as PTR.
5943         (handle_char_store): Pass NULL_TREE as second argument to
5944         get_addr_stridx.
5946 2016-06-29  Richard Biener  <rguenther@suse.de>
5948         PR rtl-optimization/68961
5949         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
5951 2016-06-29  Richard Biener  <rguenther@suse.de>
5953         PR middle-end/71002
5954         * alias.c (component_uses_parent_alias_set_from): Handle
5955         type punning through union accesses by using the union alias set.
5956         * gimple.c (gimple_get_alias_set): Remove union type punning case.
5958 2016-07-29  Richard Biener  <rguenther@suse.de>
5960         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
5961         precision not matching mode precision.
5963 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
5965         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
5966         pa_output_arg_descriptor.
5967         (call_val_symref_64bit_post_reload): Likewise.
5968         (call_val_powf_64bit_post_reload): Likewise.
5969         (sibcall_internal_symref_64bit): Likewise.
5970         (sibcall_value_internal_symref_64bit): Likewise.
5972 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
5974         PR middle-end/71626
5975         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
5976         a constant, force its SUBREG_REG into memory or register instead
5977         of whole op1.
5979 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5981         PR target/58655
5982         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
5983         * doc/invoke.texi (AVR Options): Document it.
5985 2016-06-28  Walter Lee  <walt@tilera.com>
5987         * config/tilegx/linux.h: Do not include arch/icache.h
5988         (CLEAR_INSN_CACHE): Provide inlined definition directly.
5989         * config/tilepro/linux.h: Do not include arch/icache.h
5990         (CLEAR_INSN_CACHE): Provide inlined definition directly.
5992 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
5994         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
5995         for big-endian BIT_FIELD_REF.
5997 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
5999         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
6000         ('size' attribute): Add '128'.
6001         Include power9.md.
6002         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
6003         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
6004         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
6005         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
6006         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
6007         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
6008         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
6009         *trunc<mode>df2_odd): Set size attribute to '128'.
6010         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
6011         * config/rs6000/power6.md (power6-fp): Include dfp type.
6012         * config/rs6000/power7.md (power7-fp): Likewise.
6013         * config/rs6000/power8.md (power8-fp): Likewise.
6014         * config/rs6000/power9.md: New file.
6015         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
6016         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
6017         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
6018         htmsimple.
6019         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
6020         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
6021         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
6022         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
6023         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
6024         dfp_dscri_<mode>): Change type attribute to dfp.
6025         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
6026         attribute to vecsimple.
6027         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
6028         and prefetch streams.
6029         (rs6000_option_override_internal): Remove temporary code setting
6030         tuning to power8.  Don't set rs6000_sched_groups for power9.
6031         (last_scheduled_insn): Change to rtx_insn *.
6032         (divide_cnt, vec_load_pendulum): New variables.
6033         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
6034         (rs6000_issue_rate): Set issue rate for Power9.
6035         (is_power9_pairable_vec_type): New.
6036         (power9_sched_reorder2): New.
6037         (rs6000_sched_reorder2): Call new function for Power9 specific
6038         reordering.
6039         (insn_must_be_first_in_group): Remove Power9.
6040         (insn_must_be_last_in_group): Likewise.
6041         (force_new_group): Likewise.
6042         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
6043         Initialize divide_cnt/vec_load_pendulum.
6044         (_rs6000_sched_context, rs6000_init_sched_context,
6045         rs6000_set_sched_context): Handle context save/restore of new
6046         variables.
6048 2016-06-28  Richard Biener  <rguenther@suse.de>
6050         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
6051         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
6052         COMPONENT_REF operand.
6053         (nonoverlapping_component_refs_p): Likewise.
6054         * stor-layout.c (start_bitfield_representative): Mark
6055         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
6057 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
6059         * Makefile.in: Don't cat ../stage_current if it does not exist.
6061         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
6062         last argument is a bit-field.
6064         PR rtl-optimization/71673
6065         * internal-fn.c (expand_arith_overflow_result_store): Use
6066         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
6067         expand_simple_binop.
6069         PR middle-end/66867
6070         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
6071         expand_ifn_atomic_compare_exchange): New functions.
6072         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
6073         * tree.h (build_call_expr_internal_loc): Rename to ...
6074         (build_call_expr_internal_loc_array): ... this.  Fix up type of
6075         last argument.
6076         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
6077         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
6078         ATOMIC_COMPARE_EXCHANGE result.
6079         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
6080         * gimple-fold.h (optimize_atomic_compare_exchange_p,
6081         fold_builtin_atomic_compare_exchange): New prototypes.
6082         * gimple-fold.c (optimize_atomic_compare_exchange_p,
6083         fold_builtin_atomic_compare_exchange): New functions..
6084         * tree-ssa.c (execute_update_addresses_taken): If
6085         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
6086         of call when finding addressable vars, and if such var becomes
6087         non-addressable, call fold_builtin_atomic_compare_exchange.
6089 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
6091         PR target/71670
6092         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
6093         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
6095 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
6097         * config/rs6000/rs6000.md ('type' attribute): Add
6098         veclogical,veccmpfx,vecexts,vecmove insn types.
6099         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
6100         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
6101         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
6102         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
6103         *nabs<mode>2_hw): Change type to vecmove.
6104         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
6105         *boolcc<mode>3_internal, *eqv<mode>3_internal,
6106         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
6107         *ieee_128bit_vsx_abs<mode>2_internal,
6108         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
6109         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
6110         *ieee128_mtvsrd_32bit): Change type to veclogical.
6111         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
6112         *movdi_internal32, *movdi_internal64): Update insn types.
6113         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
6114         vsx_extract_<mode>): Change type to veclogical.
6115         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
6116         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
6117         *vsx_sign_extend_si_v2di): Change type to vecexts.
6118         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
6119         type to veclogical.
6120         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
6121         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
6122         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
6123         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
6124         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
6125         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
6126         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
6127         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
6128         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
6129         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
6130         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
6131         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
6132         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
6133         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
6134         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
6135         (ppc7450-vecsimple): Add veclogical, vecmove.
6136         (ppc7450-veccmp): Add veccmpfx.
6137         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
6138         vecmove.
6139         (ppc8540_vector_compare): Add veccmpfx.
6140         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
6141         * config/rs6000/cell.md (cell-fp): Add fpsimple.
6142         (cell-vecsimple): Add veclogical, vecmove.
6143         (cell-veccmp): Add veccmpfx.
6144         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
6145         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
6146         veccmpfx.
6147         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
6148         * config/rs6000/power4.md (power4-fp): Add fpsimple.
6149         (power4-vecsimple): Add veclogical, vecmove.
6150         (power4-veccmp): Add veccmpfx.
6151         * config/rs6000/power5.md (power5-fp): Add fpsimple.
6152         * config/rs6000/power6.md (power6-fp): Add fpsimple.
6153         (power6-vecsimple): Add veclogical, vecmove.
6154         (power6-veccmp): Add veccmpfx.
6155         * config/rs6000/power7.md (power7-fp): Add fpsimple.
6156         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
6157         * config/rs6000/power8.md (power8-fp): Add fpsimple.
6158         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
6159         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
6160         * config/rs6000/titan.md (titan_fp): Add fpsimple.
6161         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
6162         fpsimple.
6163         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
6165 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
6167         PR target/71656
6168         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
6169         OPTION_MASK_P9_DFORM_VECTOR.
6170         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
6171         disable -mpower9-dform-vector when using reload.
6172         (quad_address_p): Remove 'gpr_p' argument and all associated code.
6173         New 'strict' argument.  Update all callers.  Add strict addressing
6174         support.
6175         (rs6000_legitimate_offset_address_p): Remove call to
6176         virtual_stack_registers_memory_p.
6177         (rs6000_legitimize_reload_address): Add quad address support.
6178         (rs6000_legitimate_address_p): Move call to quad_address_p above
6179         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
6180         to account for new strict usage.
6181         (rs6000_output_move_128bit): Adjust quad_address_p args to account
6182         for new strict usage.
6183         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
6185 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
6187         PR target/70902
6188         PR target/71453
6189         PR target/71555
6190         PR target/71596
6191         PR target/71657
6192         * config/i386/i386.c (ix86_spill_class): Disable condition to
6193         always return NO_REGS.
6195 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
6197         * predict.c: Include gimple-pretty-print.h
6198         (predicted_by_loop_heuristics_p): Check also
6199         PRED_LOOP_EXIT_WITH_RECURSION
6200         (predict_loops): Find self recursive calls and use special purpose
6201         predictors for them; dump log about decisions.
6202         (pass_profile::execute): Dump info about #of iterations.
6203         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
6204         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
6206 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
6208         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
6209         output_asm_insn calls and shorten long lines.  Output .CALL
6210         argument descriptor using pa_output_arg_descriptor.  Add various
6211         inline $$dyncall and other optimizations.
6212         (pa_attr_length_indirect_call): Adjust ordering and lengths.
6214 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
6216         PR tree-optimization/71643
6217         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
6218         EH preds.
6220         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
6221         leak a bitmap if dep_bb is NULL.
6223         PR tree-optimization/71631
6224         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
6225         to rewrite_expr_tree even if negate_result, move new_lhs var
6226         declaration and initialization earlier, for powi_result set afterwards
6227         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
6228         if new_lhs != lhs, and don't shadow gsi var.
6230 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
6232         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
6233         Add in_loop parameter.
6234         (predict_loops): Add loop guard heuristics.
6235         * predict.def (PRED_LOOP_GUARD): New heuristics.
6237 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
6239         * predict.c: Include ipa-utils.h
6240         (tree_bb_level_prediction): Predict recursive calls.
6241         (tree_estimate_probability_bb): Skip inexpensive calls for call
6242         predictor.
6243         * predict.def (PRED_RECURSIVE_CALL): New.
6245 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6247         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
6248         (BU_FLOAT128_1): Likewise.
6249         (FABSQ): Likewise.
6250         (COPYSIGNQ): Likewise.
6251         (RS6000_BUILTIN_NANQ): Likewise.
6252         (RS6000_BUILTIN_NANSQ): Likewise.
6253         (RS6000_BUILTIN_INFQ): Likewise.
6254         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
6255         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
6256         (TARGET_FOLD_BUILTIN): New #define.
6257         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
6258         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
6259         (rs6000_fold_builtin): New target hook implementation, handling
6260         folding of 128-bit NaNs and infinities.
6261         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
6262         entries are filled in to avoid problems during bootstrap
6263         self-test; define builtins for 128-bit NaNs and infinities.
6264         (rs6000_opt_mask): Add entry for float128.
6265         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
6266         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
6267         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
6268         (const_str_type_node): New #define.
6269         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
6270         to a define_expand that dispatches to either copysign<mode>3_soft
6271         or copysign<mode>3_hard.
6272         (copysign<mode>3_hard): Rename from copysign<mode>3.
6273         (copysign<mode>3_soft): New define_insn.
6274         * doc/extend.texi: Document new builtins.
6276 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
6278         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
6279         PRIu64 instead of lu.
6281 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
6283         PR debug/71642
6284         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
6285         copy the type name.
6287 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
6289         PR tree-optimization/71647
6290         * omp-low.c (lower_rec_input_clauses): Convert
6291         omp_clause_aligned_alignment (c) to size_type_node for the
6292         last argument of __builtin_assume_aligned.
6294 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
6296         * configure.ac (calling ___tls_get_addr via GOT): New
6297         assembler/linker check.
6298         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
6299         assembler and linker supports calling ___tls_get_addr via GOT.
6300         Otherise, defined to 0.
6301         * config.in: Regenerated.
6302         * configure: Likewise.
6303         * config/i386/constraints.md (Yb): New constraint.
6304         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
6305         (REG_CLASS_NAMES): Likewise.
6306         (REG_CLASS_CONTENTS): Likewise.
6307         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
6308         the b constraint with the Yb constraint.  Call ___tls_get_addr
6309         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
6310         is 1.
6311         (*tls_local_dynamic_base_32_gnu): Likewise.
6312         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
6313         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
6314         (*tls_local_dynamic_base_64_<mode>): Likewise.
6316 2016-06-24  Martin Liska  <mliska@suse.cz>
6318         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
6319         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
6320         few functions.
6321         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
6322         argument to true if the expected number of iterations is
6323         loop-based.
6325 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
6327         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
6328         assemble for 32bit target.
6329         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
6330         and $ld_ix86_gld_32_opt to link for 32bit target.
6331         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
6332         * configure: Regenerate.
6334 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6336         * config/arm/arm.c (int_log2): Delete definition and prototype.
6337         (shift_op): Use exact_log2 instead of int_log2.
6338         (vfp3_const_double_for_fract_bits): Likewise.
6340 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
6342         * internal-fn.c (expand_arith_set_overflow): New function.
6343         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
6344         Use it.
6345         (expand_arith_overflow_result_store): Likewise.  Handle precision
6346         smaller than mode precision.
6347         * tree-vrp.c (extract_range_basic): For imag part, handle
6348         properly signed 1-bit precision result.
6349         * doc/extend.texi (__builtin_add_overflow): Document that last
6350         argument can't be pointer to enumerated or boolean type.
6351         (__builtin_add_overflow_p): Document that last argument can't
6352         have enumerated or boolean type.
6354 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
6355             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6357         * config/rs6000/predicates.md (splat_input_operand): Rework.
6358         Don't allow constants, since the insns that use this predicate
6359         don't support constants.  Constants are handled by other insns
6360         that are created via combine.  During and after register
6361         allocation, only allow indexed or indirect addresses, and not
6362         general addresses.  Only allow modes supported by the hardware.
6363         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
6364         comment.  Move check for using VSPLTIS<x> to a common location,
6365         instead of doing it in two different places.
6367 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
6369         * config/i386/driver-i386.c (host_detect_local_cpu): Set
6370         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
6371         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
6372         signature_CENTAUR_ebx.
6374 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
6376         PR target/66232
6377         PR target/67400
6378         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
6379         (as_ix86_gas_32_opt): This.
6380         (ld_ix86_tls_ldm_opt): Renamed to ...
6381         (ld_ix86_gld_32_opt): This.
6382         (R_386_TLS_LDM reloc): Updated.
6383         (R_386_GOT32X reloc): New assembler/linker check.
6384         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
6385         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
6386         defined to 0.
6387         * config.in: Regenerated.
6388         * configure: Likewise.
6389         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
6390         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
6391         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
6392         if ix86_force_load_from_GOT_p returns true.
6393         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
6394         ix86_force_load_from_GOT_p returns true.
6395         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
6396         the external function address via the GOT slot.
6397         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
6398         HAVE_AS_IX86_GOT32X before returning false.
6399         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
6400         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
6402 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
6404         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
6406 2016-06-23  Andi Kleen  <ak@linux.intel.com>
6408         * Makefile.in: Regenerate.
6409         * doc/install.texi: Document autoprofiledbootstrap.
6411 2016-06-23  Andi Kleen  <ak@linux.intel.com>
6413         * config/i386/gcc-auto-profile: New file.
6415 2016-06-23  Martin Liska  <mliska@suse.cz>
6417         PR middle-end/71619
6418         * predict.c (predict_loops): Revert the hunk that was removed
6419         in r237103.
6421 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
6423         * config.gcc: Add support for arm*-*-phoenix* targets.
6424         * config/arm/t-phoenix: New.
6425         * config/phoenix.h: New.
6427 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
6428             H.J. Lu  <hongjiu.lu@intel.com>
6430         PR target/67400
6431         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
6432         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
6433         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
6434         ix86_force_load_from_GOT_p returns true.
6435         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
6436         ix86_force_load_from_GOT_p returns true.
6437         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
6438         ix86_force_load_from_GOT_p returns true.
6439         (ix86_expand_move): Load the external function address via the
6440         GOT slot if ix86_force_load_from_GOT_p returns true.
6441         * config/i386/predicates.md (x86_64_immediate_operand): Return
6442         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
6443         (x86_64_zext_immediate_operand): Ditto.
6445 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
6447         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
6449 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
6451         PR c/70339
6452         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
6453         * diagnostic.c (pedwarn_at_rich_loc): New function.
6454         * spellcheck.h (best_match::best_match): Add a
6455         "best_distance_so_far" optional parameter.
6456         (best_match::set_best_so_far): New method.
6457         (best_match::get_best_distance): New accessor.
6458         (best_match::get_best_candidate_length): New accessor.
6460 2016-06-22  Nick Clifton  <nickc@redhat.com>
6462         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
6463         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
6464         modes are accepted as well.
6465         (ucompare_loc_descriptor): Likewise.
6466         (minmax_loc_descriptor): Likewise.
6467         (clz_loc_descriptor): Likewise.
6468         (popcount_loc_descriptor): Likewise.
6469         (bswap_loc_descriptor): Likewise.
6470         (rotate_loc_descriptor): Likewise.
6471         (mem_loc_descriptor): Likewise.
6472         (loc_descriptor): Likewise.
6474 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
6476         * common.opt (fdiagnostics-parseable-fixits): New option.
6477         * diagnostic.c: Include "selftest.h".
6478         (print_escaped_string): New function.
6479         (print_parseable_fixits): New function.
6480         (diagnostic_report_diagnostic): Call print_parseable_fixits.
6481         (selftest::assert_print_escaped_string): New function.
6482         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
6483         (selftest::test_print_escaped_string): New function.
6484         (selftest::test_print_parseable_fixits_none): New function.
6485         (selftest::test_print_parseable_fixits_insert): New function.
6486         (selftest::test_print_parseable_fixits_remove): New function.
6487         (selftest::test_print_parseable_fixits_replace): New function.
6488         (selftest::diagnostic_c_tests): New function.
6489         * diagnostic.h (struct diagnostic_context): Add field
6490         "parseable_fixits_p".
6491         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6492         -fdiagnostics-parseable-fixits.
6493         (-fdiagnostics-parseable-fixits): New option.
6494         * opts.c (common_handle_option): Handle
6495         -fdiagnostics-parseable-fixits.
6496         * selftest-run-tests.c (selftest::run_tests): Call
6497         selftest::diagnostic_c_tests.
6498         * selftest.h (selftest::diagnostic_c_tests): New prototype.
6500 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
6502         PR tree-optimization/71488
6503         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
6504         comparison of boolean vectors.
6505         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
6506         of boolean vectors using bitwise operations.
6508 2016-06-22  Andreas Schwab  <schwab@suse.de>
6510         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
6511         Remove declaration.
6513 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
6515         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
6517 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6519         * config/i386/i386.c (print_reg): Emit an error message on attempt to
6520         print FLAGS_REG.
6522 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6524         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
6525         * config/arm/arm-cores.def (cortex-a73): New entry.
6526         (cortex-a73.cortex-a35): Likewise.
6527         (cortex-a73.cortex-a53): Likewise.
6528         * config/arm/arm-tables.opt: Regenerate.
6529         * config/arm/arm-tune.md: Likewise.
6530         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
6531         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6532         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
6533         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6534         * doc/invoke.texi (ARM Options): Document cortex-a73,
6535         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
6537 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6539         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
6540         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
6541         (cortex-a73.cortex-a35): Likewise.
6542         (cortex-a73.cortex-a53): Likewise.
6543         * config/aarch64/aarch64-tune.md: Regenerate.
6544         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
6545         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
6546         -mcpu and -mtune.
6548 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6550         * configure.ac (gcc_cv_as_compress_debug): Remove
6551         --compress-debug-sections as extra as switch.
6552         Handle gas --compress-debug-sections=type.
6553         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
6554         Handle gld --compress-debug-sections=type.
6555         * configure: Regenerate.
6557 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
6559         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
6561 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
6563         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
6564         (do_rewrite): likewise.
6566 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6568         * common/config/mep/mep-common.c: Remove.
6569         * config.gcc: Remove mep-* support.
6570         * config/mep/constraints.md: Remove.
6571         * config/mep/default.h: Remove.
6572         * config/mep/intrinsics.h: Remove.
6573         * config/mep/intrinsics.md: Remove.
6574         * config/mep/ivc2-template.h: Remove.
6575         * config/mep/mep-c5.cpu: Remove.
6576         * config/mep/mep-core.cpu: Remove.
6577         * config/mep/mep-default.cpu: Remove.
6578         * config/mep/mep-ext-cop.cpu: Remove.
6579         * config/mep/mep-intrin.h: Remove.
6580         * config/mep/mep-ivc2.cpu: Remove.
6581         * config/mep/mep-pragma.c: Remove.
6582         * config/mep/mep-protos.h: Remove.
6583         * config/mep/mep.c: Remove.
6584         * config/mep/mep.cpu: Remove.
6585         * config/mep/mep.h: Remove.
6586         * config/mep/mep.md: Remove.
6587         * config/mep/mep.opt: Remove.
6588         * config/mep/predicates.md: Remove.
6589         * config/mep/t-mep: Remove.
6590         * doc/install.texi: Remove mep-* documentation.
6591         * doc/md.texi: Likewise.
6593 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6595         * config.gcc: Remove support for avr-rtems.
6596         * config/avr/gen-avr-mmcu-specs.c: Likewise.
6597         * config/avr/rtems.h: Remove.
6598         * config/avr/t-rtems: Remove.
6600 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6602         * config.gcc: Remove m32r-rtems support.
6603         * config/m32r/rtems.h: Remove.
6605 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6607         * config.gcc: Remove h8300-rtems support.
6608         * config/h8300/rtems.h: Remove.
6609         * config/h8300/t-rtems: Remove.
6611 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6613         * config.gcc: Remove support for knetbsd.
6614         * configure.ac: Likewise.
6615         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
6616         * config/knetbsd-gnu.h: Remove.
6617         * configure: Regenerate.
6619 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6621         * config.gcc: Remove support for openbsd 2 and 3.
6622         * config/openbsd-oldgas.h: Remove.
6624 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6626         * config.gcc: Remove interix support.
6627         * config/i386/i386-interix.h: Remove.
6628         * config/i386/interix.opt: Remove.
6629         * config/i386/t-interix: Remove.
6630         * configure: Regenerate.
6631         * configure.ac: Remove interix support.
6632         * doc/install.texi: Remove interix documentation.
6634 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6636         * config/rs6000/rs6000.h: Add conditional preprocessing directives
6637         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
6638         not defined.
6640 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
6642         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
6643         they are both PLACEHOLDER_EXPRs.
6645 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
6647         * stor-layout.c (layout_type): Move setting complex MODE to
6648         layout_type, instead of setting it ahead of time by the caller.
6649         * tree.c (build_complex_type): Likewise.
6651 2016-06-21  Martin Liska  <mliska@suse.cz>
6653         * predict.c (force_edge_cold): Replace imposisble with
6654         impossible.
6656 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
6658         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
6659         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
6661 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
6663         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
6665 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
6666             Ilya Enkovich  <ilya.enkovich@intel.com>
6668         PR target/71549
6669         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
6670         New member function to convert V1TImode register to SUBREG
6671         TImode in debug insn.
6672         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
6673         after changing register mode to V1TImode.
6675 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
6677         * config/aarch64/aarch64-cores.def (vulcan): New core.
6678         * config/aarch64/aarch64-tune.md: Regenerate.
6679         * doc/invoke.texi: Document vulcan as an available option.
6681 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
6683         * cse.c (canon_asm_operands): New function extracted from...
6684         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
6685         either standalone or member of a PARALLEL.
6687 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
6689         PR target/30417
6690         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
6691         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
6692         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
6694 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
6696         PR target/71103
6697         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
6698         constant addresses if can_create_pseudo_p.
6700 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
6702         PR tree-optimization/71588
6703         * tree-ssa-strlen.c (valid_builtin_call): New function.
6704         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
6705         it.
6707 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
6709         PR middle-end/71581
6710         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
6711         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
6712         for conversion of scalar user var to complex type and use the
6713         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
6714         punt.
6716         PR rtl-optimization/71591
6717         * toplev.c (toplev::run_self_tests): If no_backend, complain and
6718         don't run any tests.
6720 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
6722         PR target/71571
6723         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
6724         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
6725         space for PIC with non-v32 and the common non-PIC "jump".
6727 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
6729         PR target/71559
6730         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
6731         returned values and add UN*/LTGT/*ORDERED cases with values matching
6732         D operand modifier on vcmp for AVX.
6734 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
6736         * config/aarch64/aarch64.opt
6737         (mpc-relative-literal-loads): Rename internal option name.
6738         * config/aarch64/aarch64.c
6739         (aarch64_nopcrelative_literal_loads): Rename to
6740         aarch64_pcrelative_literal_loads.
6741         (aarch64_expand_mov_immediate): Likewise.
6742         (aarch64_secondary_reload): Likewise.
6743         (aarch64_can_use_per_function_literal_pools_p): Likewise.
6744         (aarch64_override_options_after_change_1): Rename and simplify logic.
6745         (aarch64_classify_symbol): Merge large model checks into switch,
6746         remove pc-relative load check.
6748 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
6750         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
6751         costs relative to the cost of a register move.
6753 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
6755         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
6756         (vcvt_n_f64_u64): Likewise.
6757         (vcvt_n_s64_f64): Likewise.
6758         (vcvt_n_u64_f64): Likewise.
6759         (vcvt_f64_s64): Likewise.
6760         (vrecpe_f64): Likewise.
6761         (vcvt_f64_u64): Likewise.
6762         (vrecps_f64): Likewise.
6764 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
6766         * config/aarch64/aarch64.md
6767         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
6768         iterators.
6769         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
6770         attributes.
6771         * config/aarch64/aarch64-builtins.c
6772         (aarch64_types_binop_uss_qualifiers): Delete.
6773         (TYPES_BINOP_USS): Likewise.
6774         (aarch64_types_binop_sus_qualifiers): Likewise.
6775         (TYPES_BINOP_SUS): Likewise.
6776         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
6777         (TYPES_FCVTIMM_SUS): Likewise.
6778         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
6779         rather than BINOP.
6780         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
6781         (fcvtzs): Use SHIFTIMM rather than BINOP.
6782         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
6784 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
6786         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
6787         costs relative to the cost of a register move.
6789 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
6791         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
6792         Allow scalar/single vector modes to be tieable.
6794 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
6796         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
6798 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6800         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
6801         "alignement".
6802         * tree.h (TYPE_ALIGN): Likewise.
6804 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
6806         PR target/71103
6807         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
6809 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
6811         * config/avr/avr.c (avr_print_operand): Fix "format not a string
6812         literal" build warnings.
6813         (avr_print_operand_address): Dito.
6815 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
6817         PR target/71375
6818         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
6819         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
6821 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
6823         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
6825 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
6827         PR bootstrap/71435
6828         * reload1.c (reload): Pass 0 to finish_spills when called because
6829         update_eliminables_and_spill returns true and remove did_spill.
6830         (finish_spills): Adjust comment and document GLOBAL parameter.
6832 2016-06-17  DJ Delorie  <dj@redhat.com>
6834         PR target/71338
6835         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
6836         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
6837         (umulqihi3_virt): Likewise.
6838         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
6839         (umulqihi3_real): Likewise.
6841 2016-06-17  Martin Liska  <mliska@suse.cz>
6843         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
6845 2016-06-17  Martin Liska  <mliska@suse.cz>
6847         * predict.def: PRED_LOOP_EXIT from 92 to 85.
6849 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
6851         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
6852         __FAST_MATH__.
6853         (vaddq_f32): Likewise.
6854         (vmul_f32): Likewise.
6855         (vmulq_f32): Likewise.
6856         (vsub_f32): Likewise.
6857         (vsubq_f32): Likewise.
6859 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
6861         PR tree-optimization/71347
6862         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
6863         cost for all uses in group.
6865 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
6867         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
6868         insert gimple seq if it's not empty.
6870 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
6872         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
6873         member OFFSET.
6874         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
6875         rather than OFFSET.
6876         (comp_dr_with_seg_len_pair): Ditto.
6877         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
6878         struct dr_with_seg_len_pair against DR_OFFSET.
6879         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
6880         DR_OFFSET directly.
6882 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
6884         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
6886 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
6888         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
6889         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
6890         (pa_output_millicode_call): Likewise.
6891         (pa_output_call): Likewise.
6892         (pa_output_indirect_call): Likewise.
6893         (pa_asm_output_mi_thunk): Likewise.
6895 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6897         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
6899 2016-06-16  Martin Liska  <mliska@suse.cz>
6901         * predict.c (combine_predictions_for_insn): When we find a first
6902         match predictor, we should consider just predictors with
6903         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
6904         DS theory predictor.
6905         (combine_predictions_for_bb): Likewise.
6907 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
6909         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
6910         with base of reference to struct.
6912 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
6914         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
6916 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6918         PR target/71151
6919         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
6920         progmem_swtable_section.
6921         (progmem_swtable_section): Remove.
6922         (avr_asm_function_rodata_section): Remove.
6923         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
6924         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
6926 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
6928         * config/i386/driver-i386.c (host_detect_local_cpu): Set
6929         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
6930         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
6931         signature_CENTAUR_ebx.
6932         * config/i386/i386.c (ix86_option_override_internal): Add
6933         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
6934         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
6935         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
6937 2016-06-16  Martin Liska  <mliska@suse.cz>
6939         * predict.def: Add fortran loop preheader predictor.
6940         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
6941         fold IFN_BUILTIN_EXPECT with a known constant argument.
6943 2016-06-16  Martin Liska  <mliska@suse.cz>
6945         * predict.def: Add 'Fortran' to display text of all
6946         PRED_FORTRAN_* predictors.
6948 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
6950         PR target/71242
6951         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
6952         [IA64_BUILTIN_NANSQ]: Ditto.
6953         (ia64_fold_builtin): New function.
6954         (TARGET_FOLD_BUILTIN): New define.
6955         (ia64_init_builtins) Declare const_string_type node.
6956         Add __builtin_nanq and __builtin_nansq builtin functions.
6957         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
6959 2016-06-16  Nick Clifton  <nickc@redhat.com>
6961         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
6962         MSP430_HWMULT_ prefix to enum values.
6963         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
6964         * config/msp430/msp430.c: Update use of enum values.
6965         * config/msp430/msp430.md: Likewise.
6966         * config/msp430/msp430.opt: Likewise.
6968 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
6970         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
6971         of comparsions in the last iteration.
6973 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
6974             Joern Rennecke  <joern.rennecke@embecosm.com>
6976         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
6977         addresses.
6978         (arc_needs_pcl_p): Add GOTOFFPC.
6979         (arc_legitimate_pic_addr_p): Likewise.
6980         (arc_output_pic_addr_const): Likewise.
6981         (arc_legitimize_pic_address): Generate a pc-relative address using
6982         GOTOFFPC.
6983         (arc_output_libcall): Use @pcl syntax.
6984         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
6985         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
6986         (*movsi_insn): Use @pcl syntax.
6987         (doloop_begin_i): Likewise.
6989 2016-06-16  Martin Liska  <mliska@suse.cz>
6991         * predict.def: Define a new predictor.
6993 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
6995         * config/arc/arc.opt (mtp-regno): Update text.
6997 2016-06-16  Renlin Li  <renlin.li@arm.com>
6999         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
7001 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
7003         PR target/71554
7004         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
7005         (setcc + and peephole2): Likewise.
7007         PR rtl-optimization/71532
7008         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
7009         memory slots.
7011 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
7013         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
7014         DImode constants with XXSPLTIB in vector registers.
7015         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
7016         vsx_extract_<mode>_internal{1,2} into a single insn that handles
7017         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
7018         extraction of the element at the top of the register as a scalar
7019         value.
7020         (vsx_extract_<mode>_internal1): Likewise.
7021         (vsx_extract_<mode>_internal2): Likewise.
7022         * config/rs6000/constraints.md (wi constraint): Remove a comment
7023         about DImode not being allowed in Altivec registers.
7024         (wB constraint): New constraint for constants that can be
7025         generated in Altivec registers with VSPLTISW/VUPKHSW.
7026         * config/rs6000/predicates.md (xxspltib_constant_split): Update
7027         comments.
7028         (xxspltib_constant_nosplit): Likewise.
7029         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
7030         support for -mupper-regs-di to enable DImode to go into Altivec
7031         registers.
7032         (POWERPC_MASKS): Likewise.
7033         (power7 cpu): Likewise.
7034         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
7035         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
7036         for DImode being allowed in Altivec registers.  Update wi/wj
7037         constraints.  Set scalar_in_vmx_p flag.
7038         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
7039         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
7040         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
7041         (rs6000_opt_masks): Add -mupper-regs-di.
7042         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
7043         direct move to use wi and not wj.
7044         (lfiwzx): Likewise.
7045         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
7046         alternative.
7047         (floatunssi<mode>2_lfiwzx_mem): Likewise.
7048         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
7049         any VSX register, instead of just Altivec registers, to allow
7050         either operand to be an Altivec register or both.
7051         (fixuns_trunc<mode>di2_fctiduz): Likewise.
7052         (movdi_internal32): Add support for -mupper-regs-di.  Add support
7053         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
7054         the alternatives and attributes to be lined up to be easier to
7055         read.
7056         (movdi_internal64): Likewise.
7057         (64-bit DImode splitters): Change predicates to only split loading
7058         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
7059         load constants in ISA 3.0 or ISA 2.07 respectively.
7060         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7061         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
7062         mention -mcpu=power9 sets these options.
7063         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
7064         wB constraint.
7066 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
7068         PR target/67353
7069         * config/avr/avr.c (avr_set_current_function): Warn misspelled
7070         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
7071         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
7072         by default to warn misspelled interrupt/ signal handler.
7073         * doc/invoke.texi (AVR Options): Document it. Update description
7074         for -nodevicelib option.
7076 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7078         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
7079         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
7080         (aarch64_<sur>shll2_n<mode>): Likewise.
7082 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
7084         PR middle-end/71529
7085         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
7086         DECL_CONTEXT for copied arguments.
7088 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
7090         PR tree-optimization/71483
7091         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
7092         for slp
7094 2016-06-15  Martin Liska  <mliska@suse.cz>
7096         * predict.c (tree_predict_by_opcode): Call predict_edge_def
7097         instead of predict_edge w/o a probability.
7099 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
7101         PR tree-optimization/71439
7102         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
7103         live PHIs.
7105 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7107         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
7108         register subregs in SET_SRC.
7110 2016-06-15  Richard Biener  <rguenther@suse.de>
7112         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
7113         store restrictions.
7115 2016-06-15  Richard Biener  <rguenther@suse.de>
7117         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
7118         not consider dependences between accesses that belong to the
7119         same group.
7120         (vect_analyze_data_ref_dependences): Do not analyze read-read
7121         or self-dependences.
7123 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
7125         * spellcheck-tree.c: Include spellcheck-tree.h rather than
7126         spellcheck.h.
7127         (find_closest_identifier): Reimplement in terms of
7128         best_match<tree,tree>.
7129         * spellcheck-tree.h: New file.
7130         * spellcheck.c (struct edit_distance_traits<const char *>): New
7131         struct.
7132         (find_closest_string): Reimplement in terms of
7133         best_match<const char *, const char *>.
7134         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
7135         overload to spellcheck-tree.h.
7136         (find_closest_identifier): Likewise.
7137         (struct edit_distance_traits<T>): New template.
7138         (class best_match): New class.
7140 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
7142         * selftest-run-tests.c (selftest::run_tests): Call
7143         selftest::spellcheck_tree_c_tests.
7144         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
7145         * spellcheck-tree.c: Include selftest.h and stringpool.h.
7146         (selftest::test_find_closest_identifier): New function.
7147         (selftest::spellcheck_tree_c_tests): New function.
7148         * spellcheck.c (selftest::test_find_closest_string): Verify that
7149         the order of the vec does not affect the results for this case.
7150         (selftest::test_data): New array.
7151         (selftest::test_metric_conditions): New function.
7152         (selftest::spellcheck_c_tests): Add a test of case-comparison.
7153         Call selftest::test_metric_conditions.
7155 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7157         * config/rs6000/rs6000-builtin.def (commentary): Typo.
7158         (BU_P9_MISC_1): Likewise.
7159         (BU_P9_64BIT_MISC_0): Likewise.
7160         (BU_P9_MISC_0): Likewise.
7162 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
7164         * gcc-rich-location.c
7165         (gcc_rich_location::add_fixit_misspelled_id): New method.
7166         * gcc-rich-location.h
7167         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
7169 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
7171         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
7172         FreeBSD 11 and above.
7174 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
7176         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
7178 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7180         * expmed.h: Close parenthesis in "at your option" in copyright
7181         boilerplate.
7182         * lower-subreg.h: Likewise.
7184 2016-06-14  Richard Biener  <rguenther@suse.de>
7186         PR middle-end/71526
7187         * genmatch.c (expr::gen_transform): Use in_type for comparisons
7188         if available.
7190 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7192         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
7193         New function.
7194         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
7195         mask+shift version.
7196         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
7197         New prototype.
7198         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
7199         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
7201 2016-06-14  Richard Biener  <rguenther@suse.de>
7203         PR tree-optimization/71522
7204         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
7205         copying into float copying.
7207 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
7209         PR tree-optimization/71520
7210         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
7211         (replace_block_by): Move user labels from bb1 to bb2.
7213 2016-06-14  Richard Biener  <rguenther@suse.de>
7215         PR middle-end/71310
7216         PR bootstrap/71510
7217         * expr.h (get_bit_range): Declare.
7218         * expr.c (get_bit_range): Export.
7219         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
7220         word_mode again to constrain the bitfield access.
7222 2016-06-14  Richard Biener  <rguenther@suse.de>
7224         PR tree-optimization/71521
7225         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
7226         division int_const_binop against zero divisor.
7228 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
7230         * config/i386/i386.md (signbittf2): New expander.
7231         * config/i386/sse.md (ptesttf2): New insn pattern.
7233 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
7235         PR bootstrap/71481
7236         * input.c (selftest::test_reading_source_line): Avoid reading from
7237         __FILE__ by creating a tempfile with known content and reading
7238         from that instead.
7240 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
7242         * pretty-print.c (assert_pp_format_colored): Skip the test if
7243         GCC_COLORS is set.
7244         (test_pp_format): Remove comment about GCC_COLORS.
7246 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
7248         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
7249         * pretty-print.c (assert_pp_format_va): Add location param and use
7250         it with ASSERT_STREQ_AT.
7251         (assert_pp_format): Add location param and pass it to
7252         assert_pp_format_va.
7253         (assert_pp_format_colored): Likewise.
7254         (ASSERT_PP_FORMAT_1): New.
7255         (ASSERT_PP_FORMAT_2): New.
7256         (ASSERT_PP_FORMAT_3): New.
7257         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
7258         explicitly, or implicitly via the above macros.
7259         * selftest.c (selftest::pass): Use a selftest::location rather
7260         than file and line.
7261         (selftest::fail): Likewise.  Print the function name.
7262         (selftest::fail_formatted): Likewise.
7263         (selftest::assert_streq): Use a selftest::location rather than
7264         file and line.
7265         * selftest.h (selftest::location): New struct.
7266         (SELFTEST_LOCATION): New macro.
7267         (selftest::pass): Accept a const location & rather than file
7268         and line.
7269         (selftest::fail): Likewise.
7270         (selftest::fail_formatted): Likewise.
7271         (selftest::assert_streq): Likewise.
7272         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
7273         (ASSERT_FALSE): Likewise.
7274         (ASSERT_EQ): Likewise.
7275         (ASSERT_NE): Likewise.
7276         (ASSERT_STREQ): Likewise.
7277         (ASSERT_PRED1): Likewise.
7278         (ASSERT_STREQ_AT): New macro.
7280 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
7282         * selftest.c (selftest::fail_formatted): New function.
7283         (selftest::assert_streq): New function.
7284         * selftest.h (selftests::fail_formatted): New decl.
7285         (selftest::assert_streq): New decl.
7286         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
7288 2016-06-13  Jeff Law  <law@redhat.com>
7290         PR tree-optimization/71403
7291         * tree-ssa-threadbackward.c
7292         (convert_and_register_jump_thread_path): No longer accept reference
7293         to path.  Do not pop items off the path anymore.
7294         (fsm_find_control_statement_thread_paths): Do not allow threading
7295         to a deeper loop nest.  Pop the last item off the path here rather
7296         than in convert_and_register_jump_thread_path.
7298 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
7299             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
7301         [AArch64] Emit division using the Newton series
7303         * config/aarch64/aarch64-protos.h
7304         (cpu_approx_modes): Add new member "division".
7305         (aarch64_emit_approx_div): Declare new function.
7306         * config/aarch64/aarch64.c
7307         (generic_approx_modes): New member "division".
7308         (exynosm1_approx_modes): Likewise.
7309         (xgene1_approx_modes): Likewise.
7310         (aarch64_emit_approx_div): Define new function.
7311         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
7312         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
7313         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
7314         * doc/invoke.texi (-mlow-precision-div): Describe new option.
7316 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
7317             Wilco Dijkstra  <wilco.dijkstra@arm.com>
7319         [AArch64] Emit square root using the Newton series
7321         * config/aarch64/aarch64-protos.h
7322         (aarch64_emit_approx_rsqrt): Replace with new function
7323         "aarch64_emit_approx_sqrt".
7324         (cpu_approx_modes): New member "sqrt".
7325         * config/aarch64/aarch64.c
7326         (generic_approx_modes): New member "sqrt".
7327         (exynosm1_approx_modes): Likewise.
7328         (xgene1_approx_modes): Likewise.
7329         (aarch64_emit_approx_rsqrt): Replace with new function
7330         "aarch64_emit_approx_sqrt".
7331         (aarch64_override_options_after_change_1): Handle new option.
7332         * config/aarch64/aarch64-simd.md
7333         (rsqrt<mode>2): Use new function instead.
7334         (sqrt<mode>2): New expansion and insn definitions.
7335         * config/aarch64/aarch64.md: Likewise.
7336         * config/aarch64/aarch64.opt
7337         (mlow-precision-sqrt): Add new option description.
7338         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
7340 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
7342         [AArch64] Add more choices for the reciprocal square root approximation
7344         Allow a target to prefer such operation depending on the operation mode.
7346         * config/aarch64/aarch64-protos.h
7347         (AARCH64_APPROX_MODE): New macro.
7348         (AARCH64_APPROX_{NONE,ALL}): Likewise.
7349         (cpu_approx_modes): New structure.
7350         (tune_params): New member "approx_modes".
7351         * config/aarch64/aarch64-tuning-flags.def
7352         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
7353         * config/aarch64/aarch64.c
7354         (generic_approx_modes): New core "cpu_approx_modes" structure.
7355         (exynosm1_approx_modes): Likewise.
7356         (xgene1_approx_modes): Likewise.
7357         (generic_tunings): New member "approx_modes".
7358         (cortexa35_tunings): Likewise.
7359         (cortexa53_tunings): Likewise.
7360         (cortexa57_tunings): Likewise.
7361         (cortexa72_tunings): Likewise.
7362         (exynosm1_tunings): Likewise.
7363         (thunderx_tunings): Likewise.
7364         (xgene1_tunings): Likewise.
7365         (use_rsqrt_p): New argument for the mode and use new member from
7366         "tune_params".
7367         (aarch64_builtin_reciprocal): Devise mode from builtin.
7368         (aarch64_optab_supported_p): New argument for the mode.
7369         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
7371 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7373         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
7374         RS6000_BTM_MODULO flag into the set of flags that are considered
7375         to be part of the common configuration.
7377 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7379         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
7380         difference unsigned.
7381         (vec_absdb): New macro for vector absolute difference unsigned
7382         byte.
7383         (vec_absdh): New macro for vector absolute difference unsigned
7384         half-word.
7385         (vec_absdw): New macro for vector absolute difference unsigned word.
7386         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
7387         (vadu<mode>3): New insn.
7388         (*p9_vadu<mode>3): New insn.
7389         * config/rs6000/rs6000-builtin.def (vadub): New built-in
7390         definition.
7391         (vaduh): New built-in definition.
7392         (vaduw): New built-in definition.
7393         (vadu): New overloaded built-in definition.
7394         (vadub): New overloaded built-in definition.
7395         (vaduh): New overloaded built-in definition.
7396         (vaduw): New overloaded built-in definition.
7397         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7398         overloaded vector absolute difference unsigned functions.
7399         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7400         the ISA 3.0 vector absolute difference unsigned built-in functions.
7402 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
7404         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
7405         update shared_lookup_references only once after changing operands.
7407 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
7409         PR middle-end/71373
7410         * tree-nested.c (convert_nonlocal_omp_clauses)
7411         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
7413         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
7414         * tree.def (CASE_LABEL_EXPR): Likewise.
7416 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7418         PR bootstrap/71481
7419         * input.c (test_builtins): Fix an assertion.
7421 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
7423         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
7424         (paritysi2): Ditto.
7425         (isinfxf2): Ditto.
7426         (isinf<mode>2): Ditto.
7428 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
7430         * ggc-tests.c (test_finalization): Only test need_finalization_p
7431         for GCC_VERSION >= 4003.
7433 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7435         * config/s390/vecintrin.h: Fix file description in comment.
7437 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7439         * config/s390/s390-builtin-types.def: Change builtin type naming
7440         scheme to match builtin-types.def.
7442 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
7444         * fold-const.c (optimize_minmax_comparison): Remove.
7445         (fold_comparison): Remove call to the above.
7446         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
7447         New transformations.
7449 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
7451         PR tree-optimization/71416
7452         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
7453         multiple entries
7455 2016-06-13  Martin Liska  <mliska@suse.cz>
7457         * predict.c (enum predictor_reason): Prefix enum with REASON_.
7458         (combine_predictions_for_insn): Likewise.
7459         (prune_predictions_for_bb): Likewise.
7460         (combine_predictions_for_bb): Likewise.
7462 2016-06-13  Richard Biener  <rguenther@suse.de>
7464         PR tree-optimization/71505
7465         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
7466         assert match comment.
7468 2016-06-13  Marek Polacek  <polacek@redhat.com>
7470         PR middle-end/71476
7471         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
7472         gimplify_switch_expr.
7473         (warn_switch_unreachable_r): New function.
7475 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7477         PR target/71379
7478         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
7479         one.
7481 2016-06-13  Richard Biener  <rguenther@suse.de>
7483         PR middle-end/64516
7484         * fold-const.c (fold_unary_loc): Preserve alignment when
7485         folding a VIEW_CONVERT_EXPR into a MEM_REF.
7487 2016-06-13  Martin Liska  <mliska@suse.cz>
7489         PR sanitizer/71458
7490         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
7491         w/ -fsanitize=bounds.
7493 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
7495         * config/i386/i386.c (ix86_init_builtins): Calculate
7496         FLOAT128_FTYPE_CONST_STRING function type only once.
7497         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
7498         built-in functions are available for x86-32 and x86-64 targets.
7500 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
7502         PR target/71241
7503         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
7504         New primitive type.
7505         (FLOAT128_FTYPE_CONST_STRING): New function type.
7506         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
7507         [IX86_BUILTIN_NANSQ]: Ditto.
7508         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7509         (ix86_init_builtin_types): Declare const_string_type_node.
7510         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
7511         builtin functions.
7512         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7513         * doc/extend.texi (x86 Built-in Functions): Document
7514         __builtin_nanq and __builtin_nansq.
7516 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
7518         PR target/71061
7519         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
7520         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
7521         length for pop patterns.
7522         (arm_attr_length_push_multi): Update comments.
7523         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
7524         attribute.
7525         (*pop_multiple_with_writeback_and_return): Likewise.
7526         (*pop_multiple_with_return): Likewise.
7528 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
7530         PR middle-end/71310
7531         * fold-const.c (optimize_bit_field_compare): Don't try to use
7532         word_mode unconditionally for reading the bit field, look at
7533         DECL_BIT_FIELD_REPRESENTATIVE instead.
7535 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
7537         PR middle-end/71478
7538         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
7539         vector integer type.
7541 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
7543         PR middle-end/71494
7544         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
7545         without LABEL_DECL, set *handled_ops_p to false instead of true.
7547 2016-06-10  Martin Sebor  <msebor@redhat.com>
7549         PR c/71392
7550         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
7551         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
7552         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
7553         them.
7554         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
7555         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
7556         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
7557         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
7558         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
7559         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
7560         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
7561         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
7563 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7565         * config/arm/arm.h (pool_vector_label,
7566         return_used_this_function): Remove.
7568 2016-06-10  Jeff Law  <law@redhat.com>
7570         PR tree-optimization/71335
7571         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
7572         zero length paths here.
7573         (convert_and_register_jump_thread_path): Remove hacks related to
7574         duplicated blocks in the jump thread path.
7575         (fsm_find_control_statement_thread_paths): Avoid putting the same
7576         block on the thread path twice, but ensure the thread path is
7577         unchanged from the caller's point of view.
7579 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
7581         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
7582         * predict.def (PRED_LOOP_BRANCH): Remove.
7584 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
7586         * Makefile.in (OBJS): Add ggc-tests.o.
7587         (GTFILES): Add ggc-tests.c.
7588         * ggc-tests.c: New file.
7589         * selftest-run-tests.c (selftest::run_tests): Call
7590         selftest::ggc_tests_c_tests.
7591         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
7593 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
7595         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
7597 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
7599         PR sanitizer/71480
7600         * varasm.c (place_block_symbol): Adjust alignment for asan protected
7601         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
7603 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
7605         * profile.c: Include cfgloop.h.
7606         (branch_prob): Compute estimated number of iterations.
7607         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
7608         recompute estimate number of iterations from profile.
7610 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7612         PR inline-asm/68843
7613         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
7614         must be grouped on top of stack.  Don't force early clobber
7615         on ordinary reg outputs.
7617 2016-06-10  Richard Biener  <rguenther@suse.de>
7619         * targhooks.c (default_builtin_vectorization_cost): Adjust
7620         vec_construct cost.
7622 2016-06-10  Richard Biener  <rguenther@suse.de>
7624         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
7625         to fold the RHS to a constant if possible.
7627 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
7629         PR middle-end/71373
7630         * tree-nested.c (convert_nonlocal_omp_clauses)
7631         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
7632         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
7633         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
7635         * gimplify.c (gimplify_adjust_omp_clauses): Discard
7636         OMP_CLAUSE_TILE.
7637         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
7639         * omp-low.c (scan_sharing_clauses): Don't expect
7640         OMP_CLAUSE__CACHE_.
7642 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
7644         PR tree-optimization/71407
7645         PR tree-optimization/71416
7646         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
7647         BIT_FIELD_REF type.
7649 2016-06-10  Richard Biener  <rguenther@suse.de>
7651         PR middle-end/71477
7652         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
7654 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
7656         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
7658 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
7659             Jiong Wang  <jiong.wang@arm.com>
7661         PR rtl-optimization/70751
7662         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
7663         spilled into memory.
7665 2016-06-09  Jonathan Yong  <10walls@gmail.com>
7667         Revert:
7668         2015-09-21  Jonathan Yong  <10walls@gmail.com>
7670         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
7671         sysroot/usr/lib/32api for additional win32 libraries,
7672         fixes failing Cygwin bootstrapping.
7674 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
7676         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
7677         Delete.
7679 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
7681         PR bootstrap/71471
7682         * pretty-print.c (pp_indent): Specify that %p is printed in a
7683         host-dependent manner.
7684         (test_pp_format): Remove the test for %p.
7686 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
7688         * config/mips/mips.c (mips_output_jump): Fix formatting.
7690 2016-06-09  Richard Biener  <rguenther@suse.de>
7692         PR tree-optimization/71462
7693         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
7694         removed blocks.
7696 2016-06-09  Martin Liska  <mliska@suse.cz>
7698         * predict.c (dump_prediction): Add new argument.
7699         (enum predictor_reason): New enum.
7700         (struct predictor_hash): New struct.
7701         (predictor_hash::hash): New function.
7702         (predictor_hash::equal): Likewise.
7703         (not_removed_prediction_p): New function.
7704         (prune_predictions_for_bb): Likewise.
7705         (combine_predictions_for_bb): Prune predictions.
7707 2016-06-09  Martin Liska  <mliska@suse.cz>
7709         * predict.c (filter_predictions): New function.
7710         (remove_predictions_associated_with_edge): Use the filter
7711         function.
7712         (equal_edge_p): New function.
7714 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
7716         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
7717         Correct usage of @samp vs @option, add @samp where appropriate.
7718         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
7719         Add armv6s-m and document it, as it is no official ARM name.
7721 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7723         * ifcvt.c (struct noce_if_info): Add transform_name field.
7724         (noce_try_move): Set if_info->transform_name to the function name.
7725         (noce_try_ifelse_collapse): Likewise.
7726         (noce_try_store_flag): Likewise.
7727         (noce_try_inverse_constants): Likewise.
7728         (noce_try_store_flag_constants): Likewise.
7729         (noce_try_addcc): Likewise.
7730         (noce_try_store_flag_mask): Likewise.
7731         (noce_try_cmove): Likewise.
7732         (noce_try_cmove_arith): Likewise.
7733         (noce_try_minmax): Likewise.
7734         (noce_try_abs): Likewise.
7735         (noce_try_sign_mask): Likewise.
7736         (noce_try_bitop): Likewise.
7737         (noce_convert_multiple_sets): Likewise.
7738         (noce_process_if_block): Print if_info->transform_name to
7739         dump_file if transformation succeeded.
7741 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7743         * config/arm/cortex-a57.md (cortex_a57_alu):
7744         Handle csel type.
7746 2016-06-08  Martin Sebor  <msebor@redhat.com>
7747             Jakub Jelinek  <jakub@redhat.com>
7749         PR c++/70507
7750         PR c/68120
7751         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
7752         BUILT_IN_MUL_OVERFLOW_P): New builtins.
7753         * builtins.c: Include gimple-fold.h.
7754         (fold_builtin_arith_overflow): Handle
7755         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
7756         (fold_builtin_3): Likewise.
7757         * doc/extend.texi (Integer Overflow Builtins): Document
7758         __builtin_{add,sub,mul}_overflow_p.
7760 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
7762         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
7763         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
7765 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
7767         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
7768         Rewrite, looking one level down for records and arrays.
7770 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
7772         * pretty-print.c: Include "selftest.h".
7773         (pp_format): Fix comment.
7774         (identifier_to_locale): Likewise.
7775         (selftest::test_basic_printing): New function.
7776         (selftest::assert_pp_format): New function.
7777         (selftest::test_pp_format): New function.
7778         (selftest::pretty_print_c_tests): New function.
7779         * selftest-run-tests.c (selftest::run_tests): Call
7780         selftest::pretty_print_c_tests.
7781         * selftest.h (pretty_print_c_tests): New declaration.
7783 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
7785         * invoke.texi (max-loop-headers-insns): Document.
7786         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
7787         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
7788         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
7790 2016-06-08  Richard Biener  <rguenther@suse.de>
7792         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
7793         on strided SLP loads and fall back to scalar loads in case
7794         we can't chunk them.
7796 2016-06-08  Richard Biener  <rguenther@suse.de>
7798         PR tree-optimization/71452
7799         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
7800         type used for the SSA rewrite has enough precision to cover
7801         the dynamic type of the location.
7803 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
7804             Richard Biener  <rguenther@suse.de>
7806         PR c++/71448
7807         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
7808         the same as DECL_P (base0) for indirect_base0.  Use equality_code
7809         in one further place.
7811 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
7813         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
7814         to one word if the field is known to overlap other words.
7815         (extract_bit_field_1): Likewise.
7816         (store_split_bit_field): Remove compensating code.
7817         (extract_split_bit_field): Likewise.
7819 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
7821         PR debug/71432
7822         PR ada/71413
7823         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
7825 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7827         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
7828         VDQF.
7829         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
7830         (arch64_addpv4sf): Delete.
7831         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
7832         "gen_aarch64_addpv4sf".
7833         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
7834         builtin.
7835         (vpadds_f32): Likewise.
7836         (vpaddq_f32): Likewise.
7837         (vpaddq_f64): Likewise.
7839 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7841         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
7842         VALLF.
7843         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
7844         to VALLF.  Rename to "fabd<mode>3".
7845         "*fabd_scalar<mode>3): Delete.
7846         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
7847         Use builtin.
7848         (vabdd_f64): Likewise.
7849         (vabd_f32): Likewise.
7850         (vabd_f64): Likewise.
7851         (vabdq_f32): Likewise.
7852         (vabdq_f64): Likewise.
7854 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7856         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
7857         VALLF.
7858         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
7859         "aarch64_rsqrts<mode>".
7860         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
7861         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
7862         builtin.
7863         (vrsqrtsd_f64): Likewise.
7864         (vrsqrts_f32): Likewise.
7865         (vrsqrts_f64): Likewise.
7866         (vrsqrtsq_f32): Likewise.
7867         (vrsqrtsq_f64): Likewise.
7869 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7871         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
7872         VALLF.
7873         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
7874         "aarch64_rsqrte<mode>".
7875         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
7876         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
7877         builtin.
7878         (vrsqrted_f64): Likewise.
7879         (vrsqrte_f32): Likewise.
7880         (vrsqrte_f64): Likewise.
7881         (vrsqrteq_f32): Likewise.
7882         (vrsqrteq_f64): Likewise.
7884 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7886         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
7887         (ucvtf): Likewise.
7888         (fcvtzs): Likewise.
7889         (fcvtzu): Likewise.
7890         * config/aarch64/aarch64-simd.md
7891         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
7892         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
7893         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
7894         Use builtin.
7895         (vcvt_n_f32_u32): Likewise.
7896         (vcvt_n_s32_f32): Likewise.
7897         (vcvt_n_u32_f32): Likewise.
7898         (vcvtq_n_f32_s32): Likewise.
7899         (vcvtq_n_f32_u32): Likewise.
7900         (vcvtq_n_f64_s64): Likewise.
7901         (vcvtq_n_f64_u64): Likewise.
7902         (vcvtq_n_s32_f32): Likewise.
7903         (vcvtq_n_s64_f64): Likewise.
7904         (vcvtq_n_u32_f32): Likewise.
7905         (vcvtq_n_u64_f64): Likewise.
7906         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
7907         (VSDQ_SDI): Likewise.
7908         (fcvt_target): Support V4DI, V4SI and V2SI.
7909         (FCVT_TARGET): Likewise.
7911 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
7913         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
7914         (TYPES_BINOP_SUS): Likewise.
7915         (aarch64_simd_builtin_data): Update include file name.
7916         (aarch64_builtins): Likewise.
7917         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
7918         for conversion between scalar float-point and fixed-point.
7919         (ucvtf): Likewise.
7920         (fcvtzs): Likewise.
7921         (fcvtzu): Likewise.
7922         * config/aarch64/aarch64.md
7923         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
7924         pattern for conversion between scalar float to fixed-pointer.
7925         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
7926         (UNSPEC_FCVTZS): New UNSPEC enumeration.
7927         (UNSPEC_FCVTZU): Likewise.
7928         (UNSPEC_SCVTF): Likewise.
7929         (UNSPEC_UCVTF): Likewise.
7930         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
7931         Use builtin.
7932         (vcvtd_n_f64_u64): Likewise.
7933         (vcvtd_n_s64_f64): Likewise.
7934         (vcvtd_n_u64_f64): Likewise.
7935         (vcvtd_n_f32_s32): Likewise.
7936         (vcvts_n_f32_u32): Likewise.
7937         (vcvtd_n_s32_f32): Likewise.
7938         (vcvts_n_u32_f32): Likewise.
7939         * config/aarch64/iterators.md (fcvt_target): Support integer to float
7940         mapping.
7941         (FCVT_TARGET): Likewise.
7942         (FCVT_FIXED2F): New iterator.
7943         (FCVT_F2FIXED): Likewise.
7944         (fcvt_fixed_insn): New define_int_attr.
7946 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
7948         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
7949         some statements was removed.
7951 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
7953         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
7954         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
7955         (vect_can_advance_ivs_p): likewise.
7956         (vect_update_ivs_after_vectorizer): likewise.
7957         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
7958         (vect_analyze_scalar_cycles_1): likewise.
7959         (vect_analyze_loop_operations): likewise.
7960         (report_vect_op): likewise.
7961         (vect_is_slp_reduction): likewise.
7962         (vect_is_simple_reduction): likewise.
7963         (get_initial_def_for_induction): likewise.
7964         (vect_transform_loop): likewise.
7965         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
7966         (vect_recog_sad_pattern): likewise.
7967         (vect_recog_widen_sum_pattern): likewise.
7968         (vect_recog_widening_pattern): likewise.
7969         (vect_recog_divmod_pattern): likewise.
7970         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
7971         (vect_analyze_slp_instance): likewise.
7972         (vect_transform_slp_perm_load): likewise.
7973         (vect_schedule_slp_instance): likewise.
7975 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
7977         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
7978         (return_prediction): PRED_CONST_RETURN predict return as not taken.
7979         * predict.def (PRED_CONTINUE): Change hitrate 50->67
7980         (PRED_LOOP_BRANCH): Document predictor as broken.
7981         (PRED_LOOP_EXIT): Change hitrate 91->92.
7982         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
7983         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
7984         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
7985         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
7986         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
7987         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
7988         (PRED_CALL): Chane hitrate 71->67.
7989         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
7990         (PRED_GOTO): Document as unused right now.
7991         (PRED_CONST_RETURN): Change hitrate 67->69
7992         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
7993         (PRED_NULL_RETURN): Change hitrate 91->90.
7994         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
7995         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
7996         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
7998 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
8000         * config/rs6000/altivec.h: Add __builtin_vec_mul.
8001         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
8002         special case Altivec builtin.
8003         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8004         VSX_BUILTIN_VEC_MUL (replaced with special case code).
8005         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8006         code for ALTIVEC_BUILTIN_VEC_MUL.
8007         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8008         for __builtin_vec_mul.
8010 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
8012         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
8013         -mno-htm.
8015 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
8017         * spellcheck.c (selftest::test_find_closest_string): New function.
8018         (spellcheck_c_tests): Call the above.
8020 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8022         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
8024 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
8026         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
8027         Yv=Yv,C alternatives.
8029 2016-06-07  Richard Biener  <rguenther@suse.de>
8031         PR c/61564
8032         * common.opt (ffast-math): Make Optimization.
8034 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
8035             Prachi Godbole  <prachi.godbole@imgtec.com>
8037         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
8038         `fabs' and `fneg' type attributes.
8039         (p5600_fpu_fabs): Add `fmove' to the comment.
8041 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
8043         * gimple.c: Include builtins.h
8044         (gimple_inexpensive_call_p): New function.
8045         * gimple.h (gimple_inexpensive_call_p): Declare.
8046         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
8047         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
8048         fix formatting.
8050 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
8052         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
8053         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
8054         warning_at_rich_loc, warning_n, pedwarn, permerror,
8055         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
8056         sorry, fatal_error, internal_error, internal_error_no_backtrace):
8057         Use the above.
8059 2016-06-07  Richard Biener  <rguenther@suse.de>
8061         PR tree-optimization/71428
8062         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
8063         BIT_FIELD_REF op vs. load.
8065 2016-06-07  Richard Biener  <rguenther@suse.de>
8067         PR middle-end/71423
8068         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
8069         for signed ops.
8071 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
8073         * config/pa/pa.md (call): Generate indirect long calls to non-local
8074         functions on TARGET_64BIT.
8075         (call_value): Likewise.
8077 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
8079         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
8080         pattern and subsequent splitters.
8081         (call_val_reg_64bit_post_reload): Likewise.
8083 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
8085         PR middle-end/71408
8086         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
8087         propagate_op_to_single_use.
8089 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
8091         PR middle-end/71281
8092         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
8094 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
8096         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
8097         (enum x86_dirflag_state): New enum.
8098         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
8099         (machine_function): Remove needs_cld.
8100         (ix86_current_function_needs_cld): Remove.
8101         * config/i386/i386.c (ix86_set_func_type): Set
8102         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
8103         (ix86_expand_prologue): Do not emit CLD here.
8104         (ix86_dirflag_mode_needed): New function.
8105         (ix86_dirflag_mode_entry): Ditto.
8106         (ix86_mode_needed): Handle X86_DIRFLAG entity.
8107         (ix86_mode_after): Ditto.
8108         (ix86_mode_entry): Ditto.
8109         (ix86_mode_exit): Ditto.
8110         (ix86_emit_mode_set): Ditto.
8111         * config/i386/i386.md (strmov_singleop): Set
8112         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
8113         Do not set ix86_current_function_needs_cld.
8114         (rep_mov): Ditto.
8115         (strset_singleop): Ditto.
8116         (rep_stos): Ditto.
8117         (cmpstrnqi_nz_1): Ditto.
8118         (cmpstrnqi_1): Ditto.
8119         (strlenqi_1): Ditto.
8121 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
8123         PR tree-optimization/71259
8124         * tree-vect-slp.c (vect_get_constant_vectors): For
8125         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
8126         one for constant op, and use COND_EXPR for non-constant.
8128 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
8130         * Makefile.in (OBJS): Add function-tests.o,
8131         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
8132         selftest-run-tests.o.
8133         (OBJS-libcommon): Add selftest.o.
8134         (OBJS-libcommon-target): Add selftest.o.
8135         (all.internal): Add "selftest".
8136         (all.cross): Likewise.
8137         (selftest): New phony target.
8138         (s-selftest): New target.
8139         (selftest-gdb): New phony target.
8140         (COLLECT2_OBJS): Add selftest.o.
8141         * bitmap.c: Include "selftest.h".
8142         (selftest::test_gc_alloc): New function.
8143         (selftest::test_set_range): New function.
8144         (selftest::test_clear_bit_in_middle): New function.
8145         (selftest::test_copying): New function.
8146         (selftest::test_bitmap_single_bit_set_p): New function.
8147         (selftest::bitmap_c_tests): New function.
8148         * common.opt (fself-test): New.
8149         * diagnostic-show-locus.c: Include "selftest.h".
8150         (make_range): New function.
8151         (test_range_contains_point_for_single_point): New function.
8152         (test_range_contains_point_for_single_line): New function.
8153         (test_range_contains_point_for_multiple_lines): New function.
8154         (assert_eq): New function.
8155         (test_get_line_width_without_trailing_whitespace): New function.
8156         (selftest::diagnostic_show_locus_c_tests): New function.
8157         * et-forest.c: Include "selftest.h".
8158         (selftest::test_single_node): New function.
8159         (selftest::test_simple_tree): New function.
8160         (selftest::test_disconnected_nodes): New function.
8161         (selftest::et_forest_c_tests): New function.
8162         * fold-const.c: Include "selftest.h".
8163         (selftest::assert_binop_folds_to_const): New function.
8164         (selftest::assert_binop_folds_to_nonlvalue): New function.
8165         (selftest::test_arithmetic_folding): New function.
8166         (selftest::fold_const_c_tests): New function.
8167         * function-tests.c: New file.
8168         * gimple.c: Include "selftest.h".
8169         Include "gimple-pretty-print.h".
8170         (selftest::verify_gimple_pp): New function.
8171         (selftest::test_assign_single): New function.
8172         (selftest::test_assign_binop): New function.
8173         (selftest::test_nop_stmt): New function.
8174         (selftest::test_return_stmt): New function.
8175         (selftest::test_return_without_value): New function.
8176         (selftest::gimple_c_tests): New function.
8177         * hash-map-tests.c: New file.
8178         * hash-set-tests.c: New file.
8179         * input.c: Include "selftest.h".
8180         (selftest::assert_loceq): New function.
8181         (selftest::test_accessing_ordinary_linemaps): New function.
8182         (selftest::test_unknown_location): New function.
8183         (selftest::test_builtins): New function.
8184         (selftest::test_reading_source_line): New function.
8185         (selftest::input_c_tests): New function.
8186         * rtl-tests.c: New file.
8187         * selftest-run-tests.c: New file.
8188         * selftest.c: New file.
8189         * selftest.h: New file.
8190         * spellcheck.c: Include "selftest.h".
8191         (selftest::levenshtein_distance_unit_test_oneway): New function,
8192         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
8193         (selftest::levenshtein_distance_unit_test): Likewise.
8194         (selftest::spellcheck_c_tests): Likewise.
8195         * toplev.c: Include selftest.h.
8196         (toplev::run_self_tests): New.
8197         (toplev::main): Handle -fself-test.
8198         * toplev.h (toplev::run_self_tests): New.
8199         * tree.c: Include "selftest.h".
8200         (selftest::test_integer_constants): New function.
8201         (selftest::test_identifiers): New function.
8202         (selftest::test_labels): New function.
8203         (selftest::tree_c_tests): New function.
8204         * tree-cfg.c: Include "selftest.h".
8205         (selftest::push_fndecl): New function.
8206         (selftest::test_linear_chain): New function.
8207         (selftest::test_diamond): New function.
8208         (selftest::test_fully_connected): New function.
8209         (selftest::tree_cfg_c_tests): New function.
8210         * vec.c: Include "selftest.h".
8211         (selftest::safe_push_range): New function.
8212         (selftest::test_quick_push): New function.
8213         (selftest::test_safe_push): New function.
8214         (selftest::test_truncate): New function.
8215         (selftest::test_safe_grow_cleared): New function.
8216         (selftest::test_pop): New function.
8217         (selftest::test_safe_insert): New function.
8218         (selftest::test_ordered_remove): New function.
8219         (selftest::test_unordered_remove): New function.
8220         (selftest::test_block_remove): New function.
8221         (selftest::reverse_cmp): New function.
8222         (selftest::test_qsort): New function.
8223         (selftest::vec_c_tests): New function.c.
8224         * wide-int.cc: Include selftest.h and wide-int-print.h.
8225         (selftest::from_int <wide_int>): New function.
8226         (selftest::from_int <offset_int>): New function.
8227         (selftest::from_int <widest_int>): New function.
8228         (selftest::assert_deceq): New function.
8229         (selftest::assert_hexeq): New function.
8230         (selftest::test_printing <VALUE_TYPE>): New function template.
8231         (selftest::test_ops <VALUE_TYPE>): New function template.
8232         (selftest::test_comparisons <VALUE_TYPE>): New function template.
8233         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
8234         template.
8235         (selftest::wide_int_cc_tests): New function.
8237 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8239         PR middle-end/37780
8240         * ifcvt.c (noce_try_ifelse_collapse): New function.
8241         Declare prototype.
8242         (noce_process_if_block): Call noce_try_ifelse_collapse.
8243         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
8244         (simplify_ternary_operation): Use the above to simplify
8245         conditional CLZ/CTZ expressions.
8247 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8249         PR middle-end/37780
8250         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
8251         define_insn_and_split.
8253 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8255         PR middle-end/37780
8256         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
8258 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8260         PR c/24414
8261         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
8262         Implicitly clobber memory for basic asm with non-empty assembler
8263         string.  Use targetm.md_asm_adjust also here.
8264         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
8265         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
8266         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
8267         non-empty assembler string.
8268         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
8269         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
8270         (decode_asm_operands): Handle basic asm in PARALLEL block.
8271         (extract_insn): Handle basic asm in PARALLEL block.
8272         * doc/extend.texi: Mention new behavior of basic asm.
8273         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
8274         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
8275         branch_needs_nop_p): Use asm_noperands.
8277 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
8279         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
8280         Include the M7 SPARC DFA scheduler.
8281         New attribute v3pipe.
8282         Annotate insns with v3pipe where appropriate.
8283         Define cpu_feature vis4.
8284         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
8285         Add (V8QI "8") to vbits.
8286         Add insns {add,sub}v8qi3
8287         Add insns ss{add,sub}v8qi3
8288         Add insns us{add,sub}{v8qi,v4hi}3
8289         Add insns {min,max}{v8qi,v4hi,v2si}3
8290         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
8291         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
8292         * config/sparc/niagara4.md: Add a comment explaining the
8293         discrepancy between the documented latenty numbers and the
8294         implemented ones.
8295         * config/sparc/niagara7.md: New file.
8296         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
8297         supports SPARC5 and VIS 4.0 instructions.
8298         * configure: Regenerate.
8299         * config.in: Likewise.
8300         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
8301         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
8302         TARGET_CPU_niagara7.
8303         (ASM_CPU64_DEFAULT_SPEC): Likewise.
8304         (CPP_CPU_SPEC): Handle niagara7.
8305         (ASM_CPU_SPEC): Likewise.
8306         * config/sparc/sparc-opts.h (processor_type): Add
8307         PROCESSOR_NIAGARA7.
8308         (mvis4): New option.
8309         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
8310         (AS_NIAGARA7_FLAG): Define.
8311         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
8312         (CPP_CPU64_DEFAULT_SPEC): Likewise.
8313         (CPP_CPU_SPEC): Handle niagara7.
8314         (ASM_CPU_SPEC): Likewise.
8315         * config/sparc/sparc.c (niagara7_costs): Define.
8316         (sparc_option_override): Handle niagara7 and adjust cache-related
8317         parameters with better values for niagara cpus.  Also support VIS4.
8318         (sparc32_initialize_trampoline): Likewise.
8319         (sparc_use_sched_lookahead): Likewise.
8320         (sparc_issue_rate): Likewise.
8321         (sparc_register_move_cost): Likewise.
8322         (dump_target_flag_bits): Support VIS4.
8323         (sparc_vis_init_builtins): Likewise.
8324         (sparc_builtins): Likewise.
8325         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
8326         VIS4 4.0.
8327         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
8328         UltraSparc M7.
8329         * config/sparc/sparc.opt (sparc_processor_type): New value
8330         niagara7.
8331         * config/sparc/visintrin.h (__attribute__): Prototypes for the
8332         VIS4 builtins.
8333         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
8334         -mvis4.
8335         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
8336         VIS4 builtins.
8338 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
8340         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
8342 2016-06-06  Richard Biener  <rguenther@suse.de>
8344         PR tree-optimization/71398
8345         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
8346         remove edges.
8348 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
8350         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
8351         ft32_expand_prolog, ft32_expand_epilogue):
8352         Handle pretend_args.
8353         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
8354         * config/ft32/ft32.md: Add pretend_returner.
8356 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
8358         PR target/71389
8359         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8360         Copy op1 RTX to avoid invalid sharing.
8361         (ix86_expand_vector_move_misalign): Ditto.
8363 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
8365         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
8366         ATTRIBUTE_UNUSED.
8368 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
8370         * predict.c (predicted_by_loop_heuristics_p): New function.
8371         (predict_iv_comparison): Use it.
8372         (predict_loops): Walk from innermost loops; do not predict edges
8373         leaving multiple loops multiple times; implement
8374         PRED_LOOP_ITERATIONS_MAX heuristics.
8375         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
8377 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
8379         * cfg.c (check_bb_profile): Do not report mismatched profiles when
8380         only edges out of BB are EH edges.
8382 2016-06-04  Martin Sebor  <msebor@redhat.com>
8383             Marcin Baczyński  <marbacz@gmail.com>
8385         PR c/48116
8386         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
8387         a void expression in a void function.
8389 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
8391         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
8392         aux; dump reasons of decisions.
8393         (should_duplicate_loop_header_p): Likewise.
8394         (do_while_loop_p): Likewise.
8395         (ch_base::copy_headers): Dump asi num insns duplicated.
8397 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
8399         PR tree-optimization/71405
8400         * tree-ssa.c (execute_update_addresses_taken): For clobber with
8401         incompatible type, build a new clobber with the right type instead
8402         of building a VIEW_CONVERT_EXPR around it.
8404 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
8406         PR tree-optimization/52171
8407         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
8408         by_pieces_ninsns instead of move_by_pieces_ninsns.
8410 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
8412         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
8413         for reg+reg addressing mode.
8415 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8417         * rs6000-c.c (c/c-tree.h): Add #include.
8418         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
8419         in C++ when found in the base position of vec_ld or vec_st.
8421 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
8423         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
8424         use of profile unless profile status is PROFILE_READ.
8425         * profile.c (compute_branch_probabilities): Set profile status
8426         only after reporting predictor hitrates.
8428 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
8430         PR target/71276
8431         PR target/71277
8432         * common.opt (ffp-int-builtin-inexact): New option.
8433         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
8434         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
8435         (ceil@var{m}2): Document dependence on this option.
8436         * ipa-inline-transform.c (inline_call): Handle
8437         flag_fp_int_builtin_inexact.
8438         * ipa-inline.c (can_inline_edge_p): Likewise.
8439         * config/i386/i386.md (rintxf2): Do not test
8440         flag_unsafe_math_optimizations.
8441         (rint<mode>2_frndint): New define_insn.
8442         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
8443         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
8444         for 387 instead of extending and truncating.
8445         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
8446         !flag_trapping_math instead of flag_unsafe_math_optimizations.
8447         Change to frndint<mode>2_<rounding>.
8448         (frndintxf2_<rounding>_i387): Likewise.  Change to
8449         frndint<mode>2_<rounding>_i387.
8450         (<rounding_insn>xf2): Likewise.
8451         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
8452         !flag_trapping_math instead of flag_unsafe_math_optimizations for
8453         x87.  Test TARGET_ROUND || !flag_trapping_math ||
8454         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
8455         SSE.  Use ROUND_NO_EXC in constant operand of
8456         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
8457         for 387 instead of extending and truncating.
8459 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
8460             Julia Koval  <julia.koval@intel.com>
8462         PR target/66960
8463         PR target/67630
8464         PR target/67634
8465         PR target/67841
8466         PR target/68037
8467         PR target/68618
8468         PR target/68661
8469         PR target/69575
8470         PR target/69596
8471         PR target/69734
8472         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
8473         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
8474         all registers, except for function return registers if there are
8475         no caller-saved registers.
8476         (ix86_set_func_type): New function.
8477         (ix86_set_current_function): Call ix86_set_func_type to set
8478         no_caller_saved_registers and func_type.  Call reinit_regs if
8479         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
8480         nor x87 instructions in interrupt handler nor function with
8481         no_caller_saved_registers attribute.
8482         (ix86_function_ok_for_sibcall): Return false if there are no
8483         caller-saved registers.
8484         (type_natural_mode): Don't warn ABI change for MMX in interrupt
8485         handler.
8486         (ix86_function_arg_advance): Skip for callee in interrupt handler.
8487         (ix86_function_arg): Return special arguments in interrupt handler.
8488         (ix86_promote_function_mode): Promote pointer to word_mode only
8489         for normal functions.
8490         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
8491         interrupt handler.
8492         (ix86_epilogue_uses): New function.
8493         (ix86_hard_regno_scratch_ok): Likewise.
8494         (ix86_save_reg): Preserve all registers in interrupt handler
8495         after reload.  Preserve all registers, except for function return
8496         registers, if there are no caller-saved registers after reload.
8497         (find_drap_reg): Always use callee-saved register if there are
8498         no caller-saved registers.
8499         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
8500         for interrupt handler.
8501         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
8502         Emit cld instruction if stringops are used in interrupt handler
8503         or interrupt handler isn't a leaf function.
8504         (ix86_expand_epilogue): Generate interrupt return for interrupt
8505         handler and pop the 'ERROR_CODE' off the stack before interrupt
8506         return in exception handler.
8507         (ix86_expand_call): Disallow calling interrupt handler directly.
8508         If there are no caller-saved registers, mark all registers that
8509         are clobbered by the call which returns as clobbered.
8510         (ix86_handle_no_caller_saved_registers_attribute): New function.
8511         (ix86_handle_interrupt_attribute): Likewise.
8512         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
8513         attributes.
8514         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
8515         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
8516         accumulation in interrupt function if stack may be realigned to
8517         avoid DRAP.
8518         (EPILOGUE_USES): New.
8519         (function_type): New enum.
8520         (machine_function): Add func_type and no_caller_saved_registers.
8521         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
8522         (interrupt_return): New pattern.
8523         * doc/extend.texi: Document x86 interrupt and
8524         no_caller_saved_registers attributes.
8526 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
8528         PR tree-optimization/52171
8529         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
8530         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
8531         Look for constant strings.  Move some code to emit_block_cmp_hints
8532         and use it.
8533         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
8534         * defaults.h (COMPARE_MAX_PIECES): New macro.
8535         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
8536         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
8537         (clear_by_pieces_1): Don't declare.  Move definition before use.
8538         (can_do_by_pieces): New static function.
8539         (can_move_by_pieces): Use it.  Return bool.
8540         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
8541         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
8542         (class pieces_addr); New.
8543         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
8544         pieces_addr::adjust, pieces_addr::increment_address,
8545         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
8546         functions for it.
8547         (class op_by_pieces_d): New.
8548         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
8549         functions for it.
8550         (class move_by_pieces_d, class compare_by_pieces_d,
8551         class store_by_pieces_d): New subclasses of op_by_pieces_d.
8552         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
8553         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
8554         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
8555         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
8556         compare_by_pieces_d::finish_mode): New member functions.
8557         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
8558         functions.
8559         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
8560         (emit_block_cmp_hints): New function.
8561         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
8562         use the newly defined classes.
8563         * expr.h (by_pieces_constfn): New typedef.
8564         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
8565         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
8566         (move_by_pieces_ninsns): Don't declare.
8567         (can_move_by_pieces): Change return value to bool.
8568         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
8569         (compare_by_pieces_branch_ratio): New hook.
8570         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
8571         (by_pieces_ninsns): Declare.
8572         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
8573         COMPARE_BY_PIECES.
8574         (default_compare_by_pieces_branch_ratio): New function.
8575         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
8576         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
8577         * doc/tm.texi: Regenerate.
8578         * tree-ssa-strlen.c: Include "builtins.h".
8579         (handle_builtin_memcmp): New static function.
8580         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
8581         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
8583 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
8585         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
8586         relevant stmts which are simple and invariant.
8587         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
8588         instead of simple and invariant
8590 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
8592         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
8593         (vectorizable_reduction): Check for new relevant state.
8594         (vectorizable_live_operation): vectorize live stmts using
8595         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
8596         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
8597         (vect_stmt_relevant_p): Check for stmts which are only used live.
8598         (process_use): Use of a stmt does not inherit it's live value.
8599         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
8600         (vect_analyze_stmt): Check for new relevant state.
8601         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
8602         outside the loop, but not inside it.
8604 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
8606         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
8607         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
8608         (vect_get_vec_def_for_operand): Split out code.
8610 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
8612         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
8614 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
8616         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
8618 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8620         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
8622 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
8624         PR middle-end/71387
8625         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
8626         to noreturn e->callee->decl that has void return type and void
8627         arguments, adjust gimple_call_fntype and remove lhs even if it had
8628         previously addressable type.
8630 2016-06-02  Jeff Law  <law@redhat.com>
8632         PR tree-optimization/71328
8633         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
8634         error when checking for a jump back onto the copied path.
8636 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
8638         * config/microblaze/microblaze.c (get_branch_target): Add return
8639         NULL_RTX for the non-CALL_P case.
8640         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
8641         (insert_wic): Remove unused local "j".
8643 2016-06-02  Martin Liska  <mliska@suse.cz>
8645         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
8647 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
8648             Julia Koval  <julia.koval@intel.com>
8650         * function.c (assign_parm_setup_stack): Force source into a
8651         register if needed.
8652         * target.def (function_incoming_arg): Update documentation to
8653         allow arbitrary address computation based on hard register.
8654         * doc/tm.texi: Regenerated.
8656 2016-06-02  Martin Liska  <mliska@suse.cz>
8658         * predict.c (combine_predictions_for_bb): Fix first match in
8659         cases where a first predictor contains more than one occurence
8660         in list of predictors.  Take the best value in such case.
8662 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8664         PR rtl-optimization/71295
8665         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
8666         offset would go over the size of the inner mode reject it.
8668 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
8670         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
8671         x=x,x and v=v,m instead of x=x,m.
8673         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
8674         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
8675         alternative to v=rm,C.
8677         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
8678         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
8679         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
8680         instead of vex for the last two above mentioned alternatives.
8682 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8684         PR target/70830
8685         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
8687 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
8689         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
8691 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
8693         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
8694         from int to unsigned.
8696 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8698         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
8699         alternatives, eliminating preferred register class.  Add support
8700         for the MTVSRDD instruction in ISA 3.0.
8701         (vsx_splat_v4si_internal): Use splat_input_operand instead of
8702         reg_or_indexed_operand.
8703         (vsx_splat_v4sf_internal): Likewise.
8705 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
8707         PR target/71186
8708         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
8709         for loading up all 0's or all 1's.
8711 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8713         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
8715 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
8717         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
8718         extension.
8719         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
8720         * gcc.c (set_source_date_epoch_envvar): New function, sets
8721         the SOURCE_DATE_EPOCH environment variable to the current time.
8723 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8725         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
8726         the factor for live Phi nodes.
8728 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
8730         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
8731         * tree-parloops.c (parallelize_loops): likewise.
8732         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
8733         tree_unswitch_outer_loop): likewise.
8735 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
8737         PR middle-end/71371
8738         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
8739         around creation of the temporary.
8741 2016-06-01  Richard Biener  <rguenther@suse.de>
8743         PR tree-optimization/71366
8744         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
8745         (unloop_loops): Move removing edges here ...
8746         (try_unroll_loop_completely): ... from here.
8747         (try_peel_loop): ... and here.
8748         (tree_unroll_loops_completely_1): Track parent loops via
8749         bitmap of header BBs.
8750         (tree_unroll_loops_completely): Adjust for that.
8752 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8754         * config/rs6000/altivec.h (vec_slv): New macro.
8755         (vec_srv): New macro.
8756         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
8757         (UNSPEC_VSRV): New value.
8758         (vslv): New insn.
8759         (vsrv): New insn.
8760         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
8761         (vsrv): New builtin definition.
8762         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
8763         define argument types for new builtin.
8764         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
8765         new builtin.
8766         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
8767         functions.
8769 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
8770             Jocelyn Mayer  <l_indien@magic.fr>
8772         PR target/67310
8773         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
8774         detect processor family for signature_CENTAUR_ebx.
8775         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
8776         signature_CENTAUR_ebx.
8777         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
8778         <default>: Pass x86-64 for has_longmode.
8780 2016-06-01  Nathan Sidwell  <nathan@acm.org>
8782         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
8783         undefined weak.
8785 2016-06-01  Richard Biener  <rguenther@suse.de>
8787         PR tree-optimization/71261
8788         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
8789         of stmts successfully put in the bool pattern.  Remove
8790         single-use restriction.
8791         (adjust_bool_pattern_cast): Add cast at the use site via the
8792         pattern def sequence.
8793         (adjust_bool_pattern): Remove recursion, maintain a hash-map
8794         of patterned defs.  Use the pattern def seqence instead of
8795         multiple independent patterns.
8796         (sort_after_uid): New qsort compare function.
8797         (adjust_bool_stmts): New function to process stmts in the bool
8798         pattern in IL order.
8799         (vect_recog_bool_pattern): Adjust.
8800         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
8801         (ifcvt_walk_pattern_tree): Likewise.
8802         (stmt_is_root_of_bool_pattern): Likewise.
8803         (ifcvt_repair_bool_pattern): Likewise.
8804         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
8806 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
8808         * loop-unroll.c (decide_unroll_constant_iterations,
8809         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
8810         likely upper bounds.
8811         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
8813 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
8815         * tree-core.h (enum omp_clause_code): Remove
8816         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
8818 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8820         * config/arm/sync.md (arm_store_exclusive<mode>):
8821         Use 'H' output modifier on operands[2] rather than creating a new
8822         entry in out-of-bounds memory of the operands array.
8823         (arm_store_release_exclusivedi): Likewise.
8825 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8827         * config/arm/arm.c (arm_fusion_enabled_p): New function.
8828         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
8829         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
8830         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
8832 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
8834         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
8835         into account live statements for mask producers.
8837 2016-06-01  Richard Biener  <rguenther@suse.de>
8839         PR tree-optimization/71311
8840         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
8841         restrict to non-INTEGER_CST @0.
8843 2016-06-01  Richard Biener  <rguenther@suse.de>
8845         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
8846         (relational patterns): Use :c to avoid pattern duplications.
8848 2016-06-01  Richard Biener  <rguenther@suse.de>
8850         * genmatch.c (comparison_code_p): New predicate.
8851         (swap_tree_comparison): New function.
8852         (commutate): Add for_vec parameter to append new for entries.
8853         Support commutating relational operators by swapping it alongside
8854         operands.
8855         (lower_commutative): Adjust.
8856         (dt_simplify::gen): Do not pass artificial operators to gen
8857         functions.
8858         (decision_tree::gen): Do not add artificial operators as parameters.
8859         (parser::parse_expr): Verify operator commutativity when :c is
8860         applied.  Allow :C to override this.
8861         * match.pd: Adjust patterns to use :C instead of :c where required.
8863 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
8865         PR tree-optimization/71077
8866         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
8867         the combining step, use boolean_false_node and boolean_true_node
8868         as the designated false/true return values.
8870 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
8872         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
8873         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
8874         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
8875         PRED_LOOP_EXIT.
8877 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
8879         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
8880         of flags impliying the register renaming.
8881         * toplev.c (process_options): Do not imply flag_rename_registers with
8882         loop peeling.
8884 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
8886         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
8887         default implementation.
8889 2016-05-31  Nathan Sidwell  <nathan@acm.org>
8891         * dwarf2out.c (cur_line_info_table): Add GTY marker.
8893 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
8895         * config/sh/constraints.md (b): Remove constraint.
8896         * config/sh/predicates.md (arith_reg_operand): Remove
8897         TARGET_REGISTER_P.
8898         * config/sh/sh-modes.def (PDI): Remove.
8899         * config/sh/sh.c (sh_target_reg_class,
8900         sh_optimize_target_register_callee_saved): Remove functions.
8901         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
8902         (sh_expand_epilogue): Update comment.
8903         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
8904         sh_secondary_reload): Remove TARGET_REGS related code.
8905         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
8906         TARGET_REGISTER_P): Remove macros.
8907         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
8908         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
8909         TR1_REG, TR2_REG): Remove constants.
8910         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
8912 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
8914         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
8915         define_expand patterns.
8916         (adddi3_compact): Rename to adddi3.
8917         (subdi3_compact): Rename to subdi3.
8918         (*negdi2): Rename to negdi2.
8919         (*abs<mode>2): Rename to abs<mode>2.
8921 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
8923         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
8924         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
8925         (atomic_sub_fetchsi): ... this new pattern.
8926         (mvtc): Add CC_REG clobber.
8928 2016-05-31  Marek Polacek  <polacek@redhat.com>
8930         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
8932 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8934         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
8935         aarch64_fusion_enabled_p to check for fusion capabilities.
8937 2016-05-31  Richard Biener  <rguenther@suse.de>
8939         PR tree-optimization/71352
8940         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
8941         minus one and a negate.
8943 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8945         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
8946         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
8947         Delete prototype.
8948         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
8949         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
8950         Remove use of aarch64_simd_attr_length_move, set length attribute
8951         directly.
8952         (*aarch64_be_movoi): Likewise.
8953         (*aarch64_be_movci): Likewise.
8954         (*aarch64_be_movxi): Likewise.
8956 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
8958         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
8959         It no longer does that.
8960         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
8962 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
8964         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
8965         attribute __unused__.
8967 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8969         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
8970         * config/arm/arm.c (arm_arch_thumb1): Define.
8971         (arm_option_override): Initialize arm_arch_thumb1.
8972         * config/arm/arm.h (arm_arch_thumb1): Declare.
8973         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
8974         support Thumb-1 ISA.
8976 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
8978         PR target/71346
8979         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
8980         `Yv' for scalar operand.
8982 2016-05-31  Tom de Vries  <tom@codesourcery.com>
8984         PR tree-optimization/69068
8985         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
8986         phis with more than two args.
8988 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
8990         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
8991         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
8992         target.
8994 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
8996         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
8997         tune_64.
8998         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
8999         support on SPARC.
9000         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
9001         cpu_32, cpu_64, tune_32 and tune_64.
9002         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
9004 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
9006         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
9008 2016-05-30  Andi Kleen  <ak@linux.intel.com>
9010         * auto-profile.c (read_profile): Replace asserts with errors
9011         when file does not exist.
9012         * gcov-io.c (gcov_read_words): Dito.
9014 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9016         * tree-cfg.c (print_loop): Print likely upper bounds.
9018 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9020         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
9021         * opts.c (default_options): Enable peel loops at -O3.
9022         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
9023         (try_peel_loop): Do not re-peel already peeled loops;
9024         use likely upper bounds; fix profile updating.
9025         (pass_complete_unroll::execute): Initialize peeled_loops.
9027 2016-05-30  Martin Liska  <mliska@suse.cz>
9029         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
9030         computed costs by frequency of BB they belong to.
9031         (get_scaled_computation_cost_at): New function.
9033 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
9034             Marc Glisse  <marc.glisse@inria.fr>
9036         PR tree-optimization/71289
9037         * match.pd (-1 / B < A, A > -1 / B): New transformations.
9039 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9041         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
9043 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9045         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
9046         for peeled copies; avoid underflow when updating estimates; correctly
9047         scale loop profile.
9049 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
9051         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
9052         r236875. Corrected oe3 to oe2 as obvious.
9054 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
9056         PR middle-end/71269
9057         PR middle-end/71252
9058         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
9059         that inserted stmt will not dominate stmts that defines its operand.
9060         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
9061         (rewrite_expr_tree_parallel): Likewise.
9063 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
9065         PR middle-end/71252
9066         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
9067         all fields including stmt_to_insert are swapped.
9069 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9071         * predict.h (force_edge_cold): Declare.
9072         * predict.c (force_edge_cold): New function.
9073         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
9074         updating.
9075         (canonicalize_loop_induction_variables): Fix formating.
9077 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
9079         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
9080         (visium_expand_copysign): Use gen_int_mode directly.
9081         (visium_compute_frame_size): Minor tweaks.
9083 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
9085         * tree-vect-loop.c (vect_analyze_loop_2): Use
9086         likely_max_stmt_executions_int.
9088 2016-05-30  Tom de Vries  <tom@codesourcery.com>
9090         PR tree-optimization/69067
9091         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
9093 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
9095         PR target/71245
9096         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
9097         New peepholes to remove unneeded fild/fistp pairs.
9098         (define_peephole2 atomic_loaddi_fpu): Ditto.
9100 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9102         * predict.c (maybe_hot_frequency_p): Avoid division.
9104 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
9106         * doc/install.texi: Use https for shop.fsf.org.
9108 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9110         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
9111         likely_max_stmt_executions_int.
9113 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9115         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
9116         likely_max_stmt_executions_int.
9118 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9120         * profile.c (compute_branch_probabilities): Do not report hitrates
9121         here.
9122         (branch_prob): Report hitrates here.
9123         * predict.c (gimple_predict_edge): Do not assert profile status;
9124         fix formatting issues.
9126 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9128         * predict.c (edge_predicted_by_p): New function.
9129         (predict_paths_for_bb): Do not put multiple predictions of the same type
9130         on one edge.
9132 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9134         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
9135         commit.
9137 2016-05-28  Alan Modra  <amodra@gmail.com>
9139         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
9141 2016-05-28  Alan Modra  <amodra@gmail.com>
9143         PR rtl-optimization/71275
9144         * ira.c (ira): Free dominance info.
9146 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
9148         * doc/sourcebuild.texi: New address for upstream Go repository.
9150 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9152         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
9153         (TARGET_ARM_V7M): Likewise.
9155 2016-05-26  Jeff Law  <law@redhat.com>
9157         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
9158         (thread_across_edge): Remove calls to find_jump_threads_backwards.
9159         * passes.def: Add jump threading passes before DOM/VRP.
9160         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
9161         argument to a basic block from an edge.  Remove tests which are
9162         handled elsewhere.
9163         (pass_data_thread_jumps, class pass_thread_jumps): New.
9164         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
9165         (make_pass_thread_jumps): Likewise.
9166         * tree-pass.h (make_pass_thread_jumps): Declare.
9168 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
9170         * config/visium/visium-protos.h (split_double_move): Rename into...
9171         (visium_split_double_move): ...this.
9172         (visium_split_double_add): Declare.
9173         * config/visium/visium.c (split_double_move): Rename into...
9174         (visium_split_double_move): ...this.
9175         (visium_split_double_add): New function.
9176         (visium_expand_copysign): Renumber operands for consistency.
9177         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
9178         (DFmode move splitter): Likewise.
9179         (*addi3_insn): Split by means of visium_split_double_add.
9180         (*adddi3_insn_flags): Delete.
9181         (*plus_plus_sltu<subst_arith>): New insn.
9182         (*subdi3_insn): Split by means of visium_split_double_add.
9183         (subdi3_insn_flags): Delete.
9184         (*minus_minus_sltu<subst_arith>): New insn.
9185         (*negdi2_insn): Split by means of visium_split_double_add.
9186         (*negdi2_insn_flags): Delete.
9188 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
9190         * configure.ac: Treat a --with-headers option without argument
9191         the same as the default (i.e. consult sys-include directory).
9192         * configure: Regenerate.
9194 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9196         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
9197         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
9198         prototype.
9199         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
9200         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
9202 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
9204         PR target/63596
9205         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
9206         tree-stdarg analysis results.
9207         (aarch64_setup_incoming_varargs): Likewise.
9209 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
9211         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
9212         va_list_gpr_counter_field and va_list_fpr_counter_field.
9214 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
9216         PR67609
9217         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
9218         * config/aarch64/aarch64.c
9219         (aarch64_cannot_change_mode_class): Remove function.
9220         * config/aarch64/aarch64-protos.h
9221         (aarch64_cannot_change_mode_class): Remove.
9223 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
9225         * cfgloop.c (record_niter_bound): Record likely upper bounds.
9226         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
9227         get_likely_max_loop_iterations_int): New.
9228         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
9229         any_likely_upper_bound.
9230         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
9231         Declare.
9232         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
9233         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
9234         upper bound.
9235         (unroll_loop_constant_iterations): Likewise.
9236         (unroll_loop_runtime_iterations): Likewise.
9237         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
9238         * lto-streamer-out.c (output_cfg): Likewise.
9239         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
9240         bounds.
9241         (canonicalize_loop_induction_variables): Dump likely upper bounds.
9242         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
9243         (likely_max_loop_iterations): New.
9244         (likely_max_loop_iterations_int): New.
9245         (likely_max_stmt_executions): New.
9246         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
9247         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
9248         likely_max_stmt_executions): Declare.
9250 2016-05-27  Marek Polacek  <polacek@redhat.com>
9252         PR middle-end/71308
9253         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
9255 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9257         * config/s390/s390.md (2x risbg splitters): Use
9258         reg_overlap_mentioned_p instead of rtx_equal_p.
9260 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9262         * combine.c (make_compound_operation): Take known zero bits into
9263         account when checking for possible zero_extend.
9265 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9267         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
9268         Use const_int_operand for operand 2 predicate.  Simplify expand code
9269         as a result.
9271 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
9273         PR middle-end/71279
9274         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
9275         into comparison.
9277 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9279         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
9280         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
9281         that returns CC_SESWPmode and CC_ZESWPmode.
9282         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
9283         and CC_SESWPmode.
9284         (aarch64_rtx_costs): Likewise.
9286 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9288         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
9289         for ISA 3.0 min/max support.
9290         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
9291         conditional move support.
9292         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
9293         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
9294         available.
9295         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
9296         conditional moves where the comparison type is different from move
9297         type.
9298         (fp_minmax): New code iterator for smin/smax.
9299         (minmax): New code attributes for min/max.
9300         (SMINMAX): Likewise.
9301         (smax<mode>3): Combine min, max insns into one insn using the
9302         fp_minmax code iterator.  Add support for ISA 3.0 min/max
9303         instructions that don't need -ffast-math.
9304         (s<minmax><mode>3): Likewise.
9305         (smax<mode>3_vsx): Likewise.
9306         (smin<mode>3): Likewise.
9307         (s<minmax><mode>3_vsx): Likewise.
9308         (smin<mode>3_vsx): Likewise.
9309         (pre-VSX min/max splitters): Likewise.
9310         (s<minmax><mode>3_fpr): Likewise.
9311         (movsfcc): Rewrite floating point conditional moves to combine
9312         SFmode/DFmode into a single insn.
9313         (mov<mode>cc): Likewise.
9314         (movdfcc): Likewise.
9315         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
9316         SFDF2 iterators to handle all combinations.
9317         (fseldfsf4): Likewise.
9318         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
9319         (fseldfdf4): Likewise.
9320         (fselsfdf4): Likewise.
9321         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
9322         comparison instructions that set a 0/-1 mask, and use it for
9323         floating point conditional move via XXSEL.
9324         (fpmask<mode>): Likewise.
9325         (xxsel<mode>): Likewise.
9326         * config/rs6000/predicates.md (min_max_operator): Delete, no
9327         longer used.
9328         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
9329         instructions that generate a 0/-1 mask for use with XXSEL.
9330         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
9331         say whether floating point min/max is available, either through
9332         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
9333         (TARGET_MINMAX_DF): Likewise.
9335 2016-05-27  Alan Modra  <amodra@gmail.com>
9337         PR rtl-optimization/71275
9338         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
9339         for update_equiv_regs and combine_and_move_insns.
9341 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
9343         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
9344         if_then_else or cond RTXes to calculate attribute value.
9345         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
9346         <attr "length_immediate>: Ditto.
9347         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
9348         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
9349         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
9350         <attr "type">: Ditto.
9351         <attr "prefix_data16">: Ditto.
9352         <attr "prefix_extra">: Ditto.
9353         <attr "length_immediate">: Ditto.
9354         <attr "prefix">: Ditto.
9355         (vec_set<mode>_0) <attr "isa">: Ditto.
9356         <attr "prefix_extra">: Ditto.
9357         <attr "length_immediate">: Ditto.
9358         <attr "prefix">: Ditto.
9359         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
9360         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
9361         (sse2_storelpd) <attr "prefix_data16">: Ditto.
9362         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
9363         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
9364         <attr "length_immediate">: Ditto.
9365         <attr "prefix">: Ditto.
9366         (sse2_movsd) <attr "length_immediate">: Ditto.
9367         <attr "prefix">: Ditto.
9368         (vec_concatv2df)  <attr "isa">: Ditto.
9369         <attr "prefix">: Ditto.
9370         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
9371         (*vec_extractv2di_1) <attr "isa">: Ditto.
9372         <attr "type">: Ditto.
9373         <attr "length_immediate">: Ditto.
9374         <attr "prefix_rex">: Ditto.
9375         <attr "prefix_extra">: Ditto.
9376         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
9377         <attr "prefix_extra">: Ditto.
9378         <attr "length_immediate">: Ditto.
9379         (vec_concatv2di) <attr "isa">: Ditto.
9380         <attr "prefix_extra">: Ditto.
9381         <attr "length_immediate">: Ditto.
9382         <attr "prefix">: Ditto.
9384 2016-05-26  Martin Liska  <mliska@suse.cz>
9386         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
9387         function.
9388         (operator+): Likewise.
9389         (operator-): Likewise.
9390         (comp_cost::operator+=): Likewise.
9391         (comp_cost::operator-=): Likewise.
9392         (comp_cost::operator/=): Likewise.
9393         (comp_cost::operator*=): Likewise.
9394         (operator<): Likewise.
9395         (operator==): Likewise.
9396         (operator<=): Likewise.
9397         (new_cost): Remove.
9398         (infinite_cost_p): Likewise.
9399         (add_costs): Likewise.
9400         (sub_costs): Likewise.
9401         (compare_costs): Likewise.
9402         (set_group_iv_cost): Use the newly introduced functions.
9403         (get_address_cost): Likewise.
9404         (get_shiftadd_cost): Likewise.
9405         (force_expr_to_var_cost): Likewise.
9406         (split_address_cost): Likewise.
9407         (ptr_difference_cost): Likewise.
9408         (difference_cost): Likewise.
9409         (get_computation_cost_at): Likewise.
9410         (determine_group_iv_cost_generic): Likewise.
9411         (determine_group_iv_cost_address): Likewise.
9412         (determine_group_iv_cost_cond): Likewise.
9413         (autoinc_possible_for_pair): Likewise.
9414         (determine_group_iv_costs): Likewise.
9415         (cheaper_cost_pair): Likewise.
9416         (iv_ca_recount_cost): Likewise.
9417         (iv_ca_set_no_cp): Likewise.
9418         (iv_ca_set_cp): Likewise.
9419         (iv_ca_cost): Likewise.
9420         (iv_ca_new): Likewise.
9421         (iv_ca_dump): Likewise.
9422         (iv_ca_narrow): Likewise.
9423         (iv_ca_prune): Likewise.
9424         (iv_ca_replace): Likewise.
9425         (try_add_cand_for): Likewise.
9426         (try_improve_iv_set): Likewise.
9427         (find_optimal_iv_set): Likewise.
9429 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
9431         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
9432         that internal functions will clobber all caller-saved registers.
9434 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
9436         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
9437         Return a better case_values_threshold when optimizing.
9439 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
9441         * config/aarch64/aarch64-simd.md (aarch64_combinez):
9442         Add ? to integer variant.
9443         (aarch64_combinez_be): Likewise.
9445 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
9447         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
9448         instead of x constraint.
9449         (vcvtps2ph256<mask_name>): Likewise.
9451         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
9452         alternative.  Formatting fix.
9454         * config/i386/sse.md
9455         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
9456         to ...
9457         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
9458         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
9459         maybe_evex prefix instead of vex.
9460         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
9461         EXT_REX_SSE_REG_P (op0) case in the splitter.
9463 2016-05-25  Jeff Law  <law@redhat.com>
9465         PR tree-optimization/71272
9466         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
9467         Update comments.  Add test for empty path.
9469 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
9471         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
9472         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
9473         special case builtin.
9474         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
9475         code for ALTIVEC_BUILTIN_VEC_CMPNE.
9476         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
9477         for __builtin_vec_cmpne.
9479 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
9481         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
9482         redundant test and bail out if the type of the new operand is not
9483         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
9485 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
9487         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
9488         (x_ix86_target_flags_explicit): Remove.
9489         * config/i386/i386.c (ix86_function_specific_save): Do not copy
9490         x_ix86_target_flags_explicit.
9491         (ix86_function_specific_restore): Ditto.
9493 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
9494             H.J. Lu  <hongjiu.lu@intel.com>
9496         PR target/70738
9497         * common/config/i386/i386-common.c
9498         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
9499         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
9500         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
9501         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
9502         (-mgeneral-regs-only): Add new option.
9503         * config/i386/i386.c (ix86_option_override_internal): Don't enable
9504         x87 instructions if only general registers are allowed.
9505         (ix86_target_string): Add ix86_flags argument. Handle additional
9506         flags options through ix86_flags argument.  Update all callers.
9507         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
9509 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9511         PR rtl-optimization/66940
9512         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
9513         decrementing desired_val will not overflow before performing these
9514         operations.
9516 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
9518         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
9519         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
9520         * config/i386/i386.c (enum ix86_builtins): Add
9521         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
9522         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
9523         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
9524         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
9525         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
9526         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
9527         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
9528         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
9529         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
9530         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
9531         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
9532         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
9533         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
9534         __builtin_ia32_cvtps2dq512_mask.
9535         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
9536         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
9537         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
9538         * config/i386/sse.md
9539         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
9540         Rename to ...
9541         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
9542         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
9543         to ...
9544         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
9545         (avx512f_vec_pack_sfix_v8df): New define_expand.
9546         (avx512f_roundpd512): Rename to ...
9547         (avx512f_round<castmode>512): ... this.  Change iterator.
9548         (avx512f_roundps512_sfix): New define_expand.
9549         (round<mode>2_sfix): Change iterator.
9551 2016-05-25  Nick Clifton  <nickc@redhat.com>
9553         * config/msp430/msp430.c (msp430_attr): Produce an error if a
9554         static interrupt handler is detected.
9555         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
9556         default linker script.
9557         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
9558         the low part of a symbolic pointer.
9560 2016-05-25  Richard Biener  <rguenther@suse.de>
9562         PR tree-optimization/71261
9563         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
9564         interesting stmt instead of immediate uses when looking
9565         for the use operand to replace.
9567 2016-05-25  Martin Liska  <mliska@suse.cz>
9569         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
9571 2016-05-25  Richard Biener  <rguenther@suse.de>
9573         PR tree-optimization/71264
9574         * tree-vect-stmts.c (vect_init_vector): Properly deal with
9575         vector type val.
9577 2016-05-25  Martin Liska  <mliska@suse.cz>
9579         PR tree-optimization/71239
9580         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
9581         if DECL_SIZE is NULL.
9583 2016-05-25  Richard Biener  <rguenther@suse.de>
9585         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
9586         * tree-if-conv.c (pass_data_if_conversion): Use it.
9588 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9590         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
9591         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
9592         * varpool.c (varpool_node::get_availability): Likewise.
9594 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
9596         * config/rs6000/altivec.md (VNEG iterator): New iterator for
9597         VNEGW/VNEGD instructions.
9598         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
9599         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
9600         support for ISA 3.0 VNEGW/VNEGD instructions.
9602 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
9604         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
9605         pointers inside OACC_DATA regions.
9606         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
9607         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
9608         (gimplify_adjust_omp_clauses): Fix typo in comment.
9610 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
9612         * config/rs6000/altivec.md (VParity): New mode iterator for vector
9613         parity built-in functions.
9614         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
9615         zeros.
9616         (p9v_parity<mode>2): Likewise.
9617         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
9618         parity.
9619         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
9620         (parity<mode>2): ISA 3.0 expander for vector parity.
9621         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
9622         power9 built-ins.
9623         (BU_P9_64BIT_MISC_0): Likewise.
9624         (BU_P9_MISC_0): Likewise.
9625         (BU_P9V_AV_1): Likewise.
9626         (BU_P9V_AV_2): Likewise.
9627         (BU_P9V_AV_3): Likewise.
9628         (BU_P9V_AV_P): Likewise.
9629         (BU_P9V_VSX_1): Likewise.
9630         (BU_P9V_OVERLOAD_1): Likewise.
9631         (BU_P9V_OVERLOAD_2): Likewise.
9632         (BU_P9V_OVERLOAD_3): Likewise.
9633         (VCTZB): Add vector count trailing zeros support.
9634         (VCTZH): Likewise.
9635         (VCTZW): Likewise.
9636         (VCTZD): Likewise.
9637         (VPRTYBD): Add vector parity support.
9638         (VPRTYBQ): Likewise.
9639         (VPRTYBW): Likewise.
9640         (VCTZ): Add overloaded vector count trailing zeros support.
9641         (VPRTYB): Add overloaded vector parity support.
9642         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9643         overloaded vector count trailing zeros and parity instructions.
9644         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
9645         vector parity support.
9646         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
9647         trailing zeros support.
9648         (vec_cntlz): Likewise.
9649         (vec_vctzb): Likewise.
9650         (vec_vctzd): Likewise.
9651         (vec_vctzh): Likewise.
9652         (vec_vctzw): Likewise.
9653         (vec_vprtyb): Add ISA 3.0 vector parity support.
9654         (vec_vprtybd): Likewise.
9655         (vec_vprtybw): Likewise.
9656         (vec_vprtybq): Likewise.
9657         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9658         the ISA 3.0 vector count trailing zeros and vector parity built-in
9659         functions.
9661 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
9663         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
9664         when there is stmt_to_insert.
9666 2016-05-24  Martin Sebor  <msebor@redhat.com>
9668         PR c++/71147
9669         * tree.h (complete_or_array_type_p): New inline function.
9671 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
9673         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
9674         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
9675         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
9677         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
9678         Limit 1st alternative to noavx isa, split 2nd alternative into one
9679         noavx and one avx alternative, use *x and Bm in the former and
9680         x and m in the latter.
9682         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
9683         of sse4 for the first alternative, drop %v from the template
9684         and d operand modifier.  Split second alternative into one sse4_noavx
9685         and one avx alternative, use *x instead of *v in the former and v
9686         instead of *v in the latter.
9687         (*sse4_1_extractps): Use noavx isa instead of * for the first
9688         alternative, drop %v from the template.  Split second alternative into
9689         one noavx and one avx alternative, use *x instead of *v in the
9690         former and v instead of *v in the latter.
9691         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
9692         with noavx and the last one with avx.
9693         (sse4_1_phminposuw): Guard first alternative with noavx isa,
9694         split the second one into one noavx and one avx alternative,
9695         use *x and Bm in the former and x and m in the latter one.
9696         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
9697         alternatives.
9699         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
9700         first two alternatives to noavx, use *x instead of *v in the second
9701         one, add avx alternative without *.
9702         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
9703         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
9704         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
9706 2016-05-24  Jeff Law  <law@redhat.com>
9708         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
9709         New function, extracted from...
9710         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
9711         Allow simple copies and constant initializations in the SSA chain.
9713 2016-05-24  Marek Polacek  <polacek@redhat.com>
9715         PR c/71249
9716         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
9717         scope.
9719 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
9721         PR c++/71257
9722         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9723         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9724         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
9725         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
9726         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
9728 2016-05-24  Richard Biener  <rguenther@suse.de>
9730         PR tree-optimization/71240
9731         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
9732         has integral type.
9734 2016-05-24  Richard Biener  <rguenther@suse.de>
9736         PR tree-optimization/71230
9737         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
9739 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
9741         * tree-vectorizer.h (vectorizable_comparison): Delete.
9742         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
9743         PURE_SLP_STMT check.
9744         * tree-vect-stmts.c (vectorizable_call): Likewise.
9745         (vectorizable_simd_clone_call): Likewise.
9746         (vectorizable_conversion): Likewise.
9747         (vectorizable_assignment): Likewise.
9748         (vectorizable_shift): Likewise.
9749         (vectorizable_operation): Likewise.
9750         (vectorizable_load): Likewise.
9751         (vectorizable_condition): Likewise.
9752         (vectorizable_store): Likewise.  Assert that we don't have
9753         hybrid SLP.
9754         (vectorizable_comparison): Make static.  Remove redundant
9755         PURE_SLP_STMT check.
9756         (vect_transform_stmt): Assert that we always have an slp_node
9757         if PURE_SLP_STMT.
9759 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9761         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
9762         operands[2] against 1 with comparison against CONST1_RTX.
9763         (<shift>di3_neon): Likewise.
9764         * config/arm/predicates.md (const0_operand): Replace with comparison
9765         against CONST0_RTX.
9767 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9769         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
9770         operands[2] against 1 with comparison against CONST1_RTX.
9771         (ashrdi3): Likewise.
9772         (lshrdi3): Likewise.
9773         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
9774         UINTVAL.
9775         (ashrsi3): Likewise.
9776         (lshrsi3): Likewise.
9777         (rotrsi3): Likewise.
9778         (define_split above *compareqi_eq0): Likewise.
9779         (define_split above "prologue"): Likewise.
9780         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9781         * config/arm/predicates.md (shift_operator): Likewise.
9782         (shift_nomul_operator): Likewise.
9783         (sat_shift_operator): Likewise.
9784         (thumb1_cmp_operand): Likewise.
9785         (const_neon_scalar_shift_amount_operand): Replace manual range
9786         check with IN_RANGE.
9787         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
9788         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
9790 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9792         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
9793         with HOST_WIDE_INT_1.
9794         (insv): Likewise.
9795         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
9796         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
9797         (arm_canonicalize_comparison): Likewise.
9798         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
9799         HOST_WIDE_INT_1.
9800         (thumb1_size_rtx_costs): Likewise.
9801         (vfp_const_double_index): Replace cast of 1 to unsigned
9802         HOST_WIDE_INT with HOST_WIDE_INT_1U.
9803         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
9804         HOST_WIDE_INT_1.
9805         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
9806         HOST_WIDE_INT with HOST_WIDE_INT_1U.
9807         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
9808         HOST_WIDE_INT with HOST_WIDE_INT_1.
9810 2016-05-24  Marek Polacek  <polacek@redhat.com>
9812         * tree-cfg.h (should_remove_lhs_p): New predicate.
9813         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
9814         * gimplify.c (gimplify_modify_expr): Likewise.
9815         * tree-cfg.c (verify_gimple_call): Likewise.
9816         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
9817         * gimple-fold.c: Include "tree-cfg.h".
9818         (gimple_fold_call): Use should_remove_lhs_p.
9820 2016-05-24  Richard Biener  <rguenther@suse.de>
9822         PR tree-optimization/71253
9823         * cfganal.h (control_dependences): Make robust against edge
9824         and BB removal.
9825         (control_dependences::control_dependences): Remove edge_list argument.
9826         (control_dependences::get_edge): Remove.
9827         (control_dependences::get_edge_src): Add.
9828         (control_dependences::get_edge_dest): Likewise.
9829         (control_dependences::m_el): Make a vector of edge src/dest index.
9830         * cfganal.c (control_dependences::find_control_dependence): Adjust.
9831         (control_dependences::control_dependences): Likewise.
9832         (control_dependences::~control_dependence): Likewise.
9833         (control_dependences::get_edge): Remove.
9834         (control_dependences::get_edge_src): Add.
9835         (control_dependences::get_edge_dest): Likewise.
9836         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
9837         get_edge_src.
9838         (perform_tree_ssa_dce): Adjust.
9839         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
9840         get_edge_src.
9841         (pass_loop_distribution::execute): Adjust.  Do loop destroying
9842         conditional on changed.
9844 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9846         PR target/69857
9847         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
9848         return.  Reindent transformation comment and mention the ARM state
9849         behavior.
9851 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
9853         PR middle-end/71252
9854         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
9855         after build_and_add_sum creates new use stmt.
9857 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
9859         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
9860         load_lanes/grouped_load classification comes first.  Don't check
9861         whether the vectorization factor is a multiple of the group size
9862         for load_lanes.
9864 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
9866         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
9867         GROUP_GAP for single-element interleaving.
9868         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
9869         variable.
9871 2016-05-24  Richard Biener  <rguenther@suse.de>
9873         PR middle-end/70434
9874         PR c/69504
9875         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
9876         bases which are accessed with non-invariant indices.
9877         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
9878         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
9880 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
9882         PR middle-end/71170
9883         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
9884         (add_to_ops_vec): Add stmt_to_insert.
9885         (add_repeat_to_ops_vec): Init stmt_to_insert.
9886         (insert_stmt_before_use): New.
9887         (transform_add_to_multiply): Remove mult_stmt insertion and add it
9888         to ops vector.
9889         (get_ops): Init stmt_to_insert.
9890         (maybe_optimize_range_tests): Likewise.
9891         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
9892         (rewrite_expr_tree_parallel): Likewise.
9893         (reassociate_bb): Likewise.
9895 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9897         PR target/71201
9898         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
9899         ISA 3.0 xxperm fusion alternative.
9900         (altivec_vperm_v8hiv16qi): Likewise.
9901         (altivec_vperm_<mode>_uns_internal): Likewise.
9902         (vperm_v8hiv4si): Likewise.
9903         (vperm_v16qiv8hi): Likewise.
9905 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9906             Kelvin Nilsen  <kelvin@gcc.gnu.org>
9908         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
9909         vpermr/xxpermr on ISA 3.0.
9910         (altivec_expand_vec_perm_le): Likewise.
9911         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
9912         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
9913         ISA 3.0.
9915 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
9917         * config/i386/i386.h (IS_STACK_MODE): Enable for
9918         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
9919         SSE_FLOAT_MODE_P macros.
9920         * config/i386/i386.c (ix86_preferred_reload_class): Use
9921         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
9922         Cleanup regclass processing for CONST_DOUBLE_P.
9923         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
9924         (ix86_rtx_costs): Remove redundant TARGET_80387 check
9925         with IS_STACK_MODE macro.
9926         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
9927         with TARGET_SSE2.
9928         (*movdf_internal): Use IS_STACK_MODE macro.
9929         (*movsf_internal): Ditto.
9931 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
9933         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
9934         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
9936 2016-05-23  Jeff Law  <law@redhat.com>
9938         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
9939         extracted from ...
9940         (fsm_find_control_statement_thread_paths): Call it.
9942 2016-05-23  Martin Jambor  <mjambor@suse.cz>
9944         PR ipa/71234
9945         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
9946         from_global_constant if t is not NULL.
9948 2016-05-23  Marek Polacek  <polacek@redhat.com>
9950         PR c/49859
9951         * common.opt (Wswitch-unreachable): New option.
9952         * doc/invoke.texi: Document -Wswitch-unreachable.
9953         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
9954         warning.
9956 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
9958         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
9959         TMR_INDEX is non-NULL.
9961 2016-05-23  Richard Biener  <rguenther@suse.de>
9963         PR tree-optimization/71230
9964         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
9965         (try_special_add_to_ops): ... here.  Always test for single-use.
9967 2016-05-23  Martin Jambor  <mjambor@suse.cz>
9969         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
9970         default block if a PHI node in the original one would be resized.
9972 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9974         PR tree-optimization/58135
9975         * tree-vect-slp.c: When group size is not multiple
9976         of vector size, allow splitting of store group at
9977         vector boundary.
9979 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
9981         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
9983 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
9985         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
9986         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
9987         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
9988         of 64x2.
9990         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
9991         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
9992         v constraint instead of x and vinserti32x4 insn.
9994         * config/i386/sse.md (i128vldq): New mode iterator.
9995         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
9996         avx512dq and avx512vl alternatives.
9998         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
9999         constraint, use maybe_evex prefix instead of vex.
10000         (vec_dupv4sf): Use v constraint instead of x for output
10001         operand except for noavx alternative, use Yv constraint
10002         instead of x for input.  Use maybe_evex prefix instead of vex.
10003         (*vec_dupv4si): Likewise.
10004         (*vec_dupv2di): Likewise.
10006 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
10008         PR middle-end/40921
10009         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
10010         (linearize_expr_tree): Call try_special_add_to_ops.
10011         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
10013 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10015         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
10016         to computed stack_usage.
10018 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
10020         PR target/71103
10021         * config/avr/avr.md (define_expand "mov<mode>"): If the source
10022         operand is subreg (symbol_ref) then move the symbol ref to register.
10024 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
10026         * tree.c (array_at_struct_end_p): Look through MEM_REF.
10028 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
10030         PR middle-end/71179
10031         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
10032         VECTOR type.
10034 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
10036         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
10037         ranges by calling get_single_symbol and tidy up.  Look more closely
10038         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
10040 2016-05-20  Jeff Law  <law@redhat.com>
10042         * bitmap.c (bitmap_find_bit): Remove useless test.
10044 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
10046         * function.c (thread_prologue_and_epilogue_insns): Commit the
10047         insertion of the epilogue.
10049 2016-05-20  Martin Jambor  <mjambor@suse.cz>
10051         PR tree-optimization/70884
10052         * tree-sra.c (initialize_constant_pool_replacements): Do not check
10053         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
10054         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
10055         of constant pool data as a reason for scalarization.
10057 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
10059         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
10060         for naked functions.
10061         (thumb1_expand_prologue): Likewise.
10063 2016-05-20  Nathan Sidwell  <nathan@acm.org>
10065         * config/nvptx/nptx.c (nvptx_option_override): Only set
10066         flag_toplevel_reorder, if not explicitly specified.  Set
10067         flag_no_common, unless explicitly specified.
10069 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
10071         * calls.c (can_implement_as_sibling_call_p): Mark param
10072         reg_parm_stack_space with ATTRIBUTE_UNUSED.
10074 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
10076         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
10077         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
10078         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
10079         constants.
10080         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
10081         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
10082         and CASE_CONST_ANY.
10084 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
10086         * config/nvptx/nvptx.md (sincossf3): New pattern.
10088 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
10090         * calls.c (maybe_complain_about_tail_call): New function.
10091         (initialize_argument_information): Call
10092         maybe_complain_about_tail_call when clearing *may_tailcall.
10093         (can_implement_as_sibling_call_p): Call
10094         maybe_complain_about_tail_call when returning false.
10095         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
10096         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
10097         if tail-call optimization fails.
10098         * cfgexpand.c (expand_call_stmt): Initialize
10099         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
10100         * gimple-pretty-print.c (dump_gimple_call): Dump
10101         gimple_call_must_tail_p.
10102         * gimple.c (gimple_build_call_from_tree): Call
10103         gimple_call_set_must_tail with the value of
10104         CALL_EXPR_MUST_TAIL_CALL.
10105         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
10106         (gimple_call_set_must_tail): New function.
10107         (gimple_call_must_tail_p): New function.
10108         * print-tree.c (print_node): Update printing of TREE_STATIC
10109         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
10110         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
10111         trailing comment listing applicable flags.
10112         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
10114 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
10116         * calls.c (expand_call): Move "Rest of purposes for tail call
10117         optimizations to fail" to...
10118         (can_implement_as_sibling_call_p): ...this new function, and
10119         split into multiple "if" statements.
10121 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
10123         * cfgloop.h (expected_loop_iterations_unbounded,
10124         expected_loop_iterations): Unconstify.
10125         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
10126         profile with known upper bound; return 3 when profile is absent.
10127         (expected_loop_iterations): Update.
10129 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
10131         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
10132         and get_max_loop_iterations_int.
10134 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
10136         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
10137         realistic upper bounds here.
10139 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
10141         PR c++/71210
10142         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
10143         calls if the LHS is variable length or has addressable type.
10144         If targets[0]->decl is a noreturn call with void return type and
10145         zero arguments, adjust fntype and remove lhs in that case.
10147 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
10149         PR tree-optimization/71079
10150         PR tree-optimization/71206
10151         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
10153 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
10155         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
10156         (get_vec_alignment_for_array_decl): Likewise.
10157         (get_vec_alignment_for_record_decl): Likewise.
10158         (increase_alignment::execute): Move code to find alignment to
10159         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
10160         (type_align_map): New hash_map.
10162 2016-05-20  Richard Guenther  <rguenther@suse.de>
10164         PR tree-optimization/29756
10165         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
10166         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
10167         * fold-const.c (operand_equal_p): Likewise.
10168         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
10169         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
10170         * tree-inline.c (estimate_operator_cost): Likewise.
10171         * tree-pretty-print.c (dump_generic_node): Likewise.
10172         * tree-ssa-operands.c (get_expr_operands): Likewise.
10173         * cfgexpand.c (expand_debug_expr): Likewise.
10174         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
10175         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
10176         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
10177         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
10178         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
10179         (execute_update_addresses_taken): Do it.
10181 2016-05-20  Richard Biener  <rguenther@suse.de>
10183         PR tree-optimization/71185
10184         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
10185         register operations.
10187 2016-05-20  Richard Biener  <rguenther@suse.de>
10189         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
10190         gimple_seq_add_seq_without_update.
10191         (release_bb_predicate): Assert we have no operands to free.
10192         (if_convertible_loop_p_1): Calculate post dominators later.
10193         Do not free BB predicates here.
10194         (combine_blocks): Do not recompute BB predicates.
10195         (version_loop_for_if_conversion): Save BB predicates around
10196         loop versioning.
10198 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
10200         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
10201         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
10202         code.  Ignore sibcalls on EDGE_IGNORE edges.
10203         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
10204         on edges for sibcalls that run without prologue.  The rest of the
10205         function is combined from...
10206         (fix_fake_fallthrough_edge): ... this, and ...
10207         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
10208         function argument, make it a local variable.
10210 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
10212         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
10213         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
10214         for 32-bit mode and SEH for 64-bit.
10215         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
10216         TARGET_64BIT_DEFAULT.
10218 2016-05-19  Ryan Burn  <contact@rnburn.com>
10220         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
10221         * gengtype.c (open_base_files): Add cilk.h to ifiles.
10223 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
10225         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
10226         force pending loads from memory.
10228 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10230         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
10231         (UNSPEC_DARN_32): New unspec constant.
10232         (UNSPEC_DARN_RAW): New unspec constant.
10233         (darn_32): New instruction.
10234         (darn_raw): New instruction.
10235         (darn): New instruction.
10236         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
10237         support and documentation for this macro.
10238         (BU_P9_MISC_1): New macro definition.
10239         (BU_P9_64BIT_MISC_0): New macro definition.
10240         (BU_P9_MISC_0): New macro definition.
10241         (darn_32): New builtin definition.
10242         (darn_raw): New builtin definition.
10243         (darn): New builtin definition.
10244         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
10245         RS6000_BUILTIN_0 directives to surround each occurrence of
10246         #include "rs6000-builtin.def".
10247         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
10248         RS6000_BTM_64BIT flags to the returned mask, depending on
10249         configuration.
10250         (def_builtin): Correct an error in the assignments made to the
10251         debugging variable attr_string.
10252         (rs6000_expand_builtin): Add support for no-operand built-in
10253         functions.
10254         (builtin_function_type): Remove fatal_error assertion that is no
10255         longer valid.
10256         (rs6000_common_init_builtins): Add support for no-operand built-in
10257         functions.
10258         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
10259         definition.
10260         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
10261         definition.
10262         (RS6000_BTM_64BIT): New macro definition.
10263         * doc/extend.texi: Document __builtin_darn (void),
10264         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
10265         functions.
10267 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
10269         * tree-vect-loop.c (vect_analyze_loop_2): Use also
10270         max_loop_iterations_int.
10272 2016-05-19  Marek Polacek  <polacek@redhat.com>
10274         PR tree-optimization/71031
10275         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
10276         condition and adjust the code a bit.
10278 2016-05-19  Martin Liska  <mliska@suse.cz>
10280         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
10281         auto_vec instead of vec.
10283 2016-05-19  Martin Liska  <mliska@suse.cz>
10285         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
10287 2016-05-19  Martin Liska  <mliska@suse.cz>
10289         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
10291 2016-05-19  Martin Liska  <mliska@suse.cz>
10293         * ipa-pure-const.c (set_function_state): Remove an existing
10294         funct_state.
10295         (remove_node_data): Do not free it as it's released
10296         in set_function_state.
10298 2016-05-19  Martin Liska  <mliska@suse.cz>
10300         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
10301         bitmap.
10303 2016-05-19  Martin Liska  <mliska@suse.cz>
10305         * omp-simd-clone.c (simd_clone_adjust): Release vector.
10307 2016-05-19  Martin Liska  <mliska@suse.cz>
10309         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
10310         an auto_vec instead of re-creating it.
10312 2016-05-19  Martin Liska  <mliska@suse.cz>
10314         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
10315         auto_vec instead of vec.
10317 2016-05-19  Martin Liska  <mliska@suse.cz>
10319         * lto-section-in.c (lto_get_section_data): Call
10320         lto_check_version with additional argument.
10321         * lto-streamer.c (lto_check_version): Add new argument.
10322         * lto-streamer.h (lto_check_version): Likewise.
10324 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10326         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
10327         Don't add cost of inner memory when handling sign-extended loads.
10329 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
10331         PR rtl-optimization/71148
10332         * cse.c (cse_main): Free dominance info.
10333         (rest_of_handle_cse): Don't free dominance info.
10334         (rest_of_handle_cse2): Likewise.
10335         (rest_of_handle_cse_after_global_opts): Likewise.
10337 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10339         PR target/71056
10340         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
10341         NULL_TREE early if NEON is not available.  Remove now redundant check
10342         in ARM_CHECK_BUILTIN_MODE.
10344 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
10346         PR sanitizer/64354
10347         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
10348         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
10349         * doc/cpp.texi: Document new macros.
10351 2016-05-19  Bin Cheng  <bin.cheng@arm.com>
10353         PR tree-optimization/69848
10354         * tree-vect-loop.c (vectorizable_reduction): Don't factor
10355         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
10357 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
10359         * function.c (thread_prologue_and_epilogue_insn): Move the
10360         "goto epilogue_done" one block later.
10362 2016-05-19  Richard Biener  <rguenther@suse.de>
10364         PR tree-optimization/70729
10365         * passes.def: Move LIM pass before PRE.  Remove no longer
10366         required copyprop and move first DCE out of the loop pipeline.
10368 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
10370         PR driver/69265
10371         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
10372         (OBJS-libcommon-target): ...here.
10373         * opts-common.c: Include spellcheck.h.
10374         (cmdline_handle_error): Build a vec of valid options and use it
10375         to suggest provide hints for misspelled arguments.
10377 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
10379         PR c++/71100
10380         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
10381         lhs if it has TREE_ADDRESSABLE type.
10383 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
10385         PR target/71145
10386         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
10387         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
10389 2016-05-18  Martin Jambor  <mjambor@suse.cz>
10391         PR ipa/69708
10392         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
10393         input for NOP_EXPR pass-through functions.
10394         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
10395         aggregate global constant VAR_DECLs in constant jump functions.
10397 2016-05-18  Martin Jambor  <mjambor@suse.cz>
10399         PR ipa/69708
10400         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
10401         from TREE_READONLY parameters.
10403 2016-05-18  Martin Jambor  <mjambor@suse.cz>
10405         PR ipa/69708
10406         * cgraph.h (cgraph_indirect_call_info): New field
10407         guaranteed_unmodified.
10408         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
10409         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10410         appropriate.
10411         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
10412         pass the parameter value to ipa_find_agg_cst_for_param.
10413         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
10414         guaranteed_unmodified, store AA results there instead of bailing out
10415         if present.
10416         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
10417         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
10418         (find_constructor_constant_at_offset): New function.
10419         (ipa_find_agg_cst_from_init): Likewise.
10420         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
10421         static initializers of contants, report back through a new paameter
10422         from_global_constant if that was the case.
10423         (try_make_edge_direct_simple_call): Also pass parameter value to
10424         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10425         appropriate.
10426         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
10427         (ipa_read_indirect_edge_info): Likewise.
10428         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
10429         (ipa_load_from_parm_agg): Likewise.
10431 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
10433         PR rtl-optimization/71150
10434         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
10435         check.
10437 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
10439         PR target/70915
10440         * config/rs6000/constraints.md (wE constraint): New constraint
10441         for a vector constant that can be loaded with XXSPLTIB.
10442         (wM constraint): New constraint for a vector constant of a 1's.
10443         (wS constraint): New constraint for a vector constant that can be
10444         loaded with XXSPLTIB and a vector sign extend instruction.
10445         * config/rs6000/predicates.md (xxspltib_constant_split): New
10446         predicates for wE/wS constraints.
10447         (xxspltib_constant_nosplit): Likewise.
10448         (easy_vector_constant): Add support for constants that can be
10449         loaded via XXSPLTIB.
10450         (all_ones_constant): New predicate for vector constant with all
10451         1's set.
10452         (splat_input_operand): Add support for ISA 3.0 word splat operations.
10453         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
10454         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
10455         instruction and possibly with a sign extension.
10456         (output_vec_const_move): Add support for XXSPLTIB. If we are
10457         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
10458         instead of XXLXOR/XXLORC.
10459         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
10460         operations.
10461         (rs6000_legitimize_reload_address): Likewise.
10462         (rs6000_output_move_128bit): Use output_vec_const_move to emit
10463         constants.
10464         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
10465         combine VSX_M and VSX_M2 into one iterator.
10466         (VSX_M2): Likewise.
10467         (VSINT_84): New iterators for loading constants with XXSPLTIB.
10468         (VSINT_842): Likewise.
10469         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
10470         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
10471         XXSPLTIB instruction.
10472         (xxspltib_<mode>_nosplit): Likewise.
10473         (xxspltib_<mode>_split): New insn to load up constants with
10474         XXSPLTIB and a sign extend instruction.
10475         (vsx_mov<mode>): Replace single move that handled all vector types
10476         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
10477         moves (when -mvsx-timode is in effect) into the main vector
10478         moves.  Eliminate separate moves for <VSr> <VSa>, where the
10479         preferred register class (<VSr>) is listed first, and the
10480         secondary register class (<VSa>) is listed second with a '?' to
10481         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
10482         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
10483         that if the register was involved in a slow operation, the
10484         clear/set operation does not wait for the slow operation to
10485         finish.  Adjust the length attributes for 32-bit mode.  Use
10486         rs6000_output_move_128bit and drop the use of the string
10487         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
10488         spacing so that the alternatives and attributes don't generate
10489         long lines, and put things in columns, so that it is easier to
10490         match up the operands and attributes with the insn alternatives.
10491         (vsx_mov<mode>_64bit): Likewise.
10492         (vsx_mov<mode>_32bit): Likewise.
10493         (vsx_movti_64bit): Fold movti into normal vector moves.
10494         (vsx_movti_32bit): Likewise.
10495         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
10496         splat instructions.
10497         (vsx_splat_v4si_internal): Likewise.
10498         (vsx_splat_v4sf_internal): Likewise.
10499         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
10500         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
10501         extend vector elements.
10502         (vsx_sign_extend_hi_<mode>): Likewise.
10503         (vsx_sign_extend_si_v2di): Likewise.
10504         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
10505         declaration.
10506         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
10507         constraints.  Add trailing period to wL documentation.
10509 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
10511         PR middle-end/71020
10512         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
10513         * tree-dfa.c (replace_abnormal_ssa_names): New function.
10514         * tree-call-cdce.c: Include tree-dfa.h.
10515         (can_guard_call_p): New function, extracted from...
10516         (can_use_internal_fn): ...here.
10517         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
10518         and return void.
10519         (shrink_wrap_one_built_in_call): Likewise.
10520         (use_internal_fn): Likewise.
10521         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
10522         and return void.  Call replace_abnormal_ssa_names.
10523         (pass_call_cdce::execute): Check can_guard_call_p during the
10524         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
10525         will always change something.
10527 2016-05-18  Martin Jambor  <mjambor@suse.cz>
10529         PR ipa/70646
10530         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
10531         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
10533 2016-05-18  Martin Jambor  <mjambor@suse.cz>
10535         PR ipa/70646
10536         * ipa-inline.h (condition): New field size.
10537         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
10538         for comaprison and store it into the new condition.
10539         (evaluate_conditions_for_known_args): Use condition size to check
10540         access sizes for all but CHANGED conditions.
10541         (unmodified_parm_1): New parameter size_p, store access size into it.
10542         (unmodified_parm): Likewise.
10543         (unmodified_parm_or_parm_agg_item): Likewise.
10544         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
10545         (set_cond_stmt_execution_predicate): Extract access sizes and store
10546         them to conditions.
10547         (set_switch_stmt_execution_predicate): Likewise.
10548         (will_be_nonconstant_expr_predicate): Likewise.
10549         (will_be_nonconstant_predicate): Likewise.
10550         (inline_read_section): Stream condition size.
10551         (inline_write_summary): Likewise.
10553 2016-05-18  Richard Biener  <rguenther@suse.de>
10555         * tree-ssa-loop-im.c (determine_max_movement): Properly add
10556         condition cost to PHI cost instead of total_cost.
10558 2016-05-18  Martin Liska  <mliska@suse.cz>
10560         PR fortran/70856
10561         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
10562         merged variables.
10564 2016-05-18  Richard Biener  <rguenther@suse.de>
10566         * lto-streamer.h (LTO_major_version): Bump to 6.
10568 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
10570         * function.c (make_split_prologue_seq, make_prologue_seq,
10571         make_epilogue_seq): New functions, factored out from...
10572         (thread_prologue_and_epilogue_insns): Here.
10574 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
10576         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
10577         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
10578         of before.  Add a comment.
10580 2016-05-18  Bin Cheng  <bin.cheng@arm.com>
10582         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
10583         expression pointer, not pointer to the pointer.
10585 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
10587         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
10588         (avx2_pbroadcast<mode>): Add another alternative with v instead
10589         of x constraints in it, using <pbroadcast_evex_isa> isa.
10590         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
10592         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
10593         constraint x instead of v in second alternative, add avx512bw
10594         alternative.
10596         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
10597         constraint x instead of v in second alternative, add avx512bw
10598         alternative.
10600         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
10601         constraint x instead of v in second alternative, add avx512bw
10602         alternative.
10604         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
10605         avx512bw alternative.
10607 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10609         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
10610         array to 128 chars.
10611         (define_insn "*andnottf3"): Ditto.
10612         (define_insn "*<code><mode>3"/any_logic): Ditto.
10613         (define_insn "*<code>tf3"/any_logic): Ditto.
10614         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
10615         operand to block AVX-512VL insn variant emit when it is not enabled.
10617 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10619         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
10620         constraint fot SF mode.
10622 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
10623             Kirill Yukhin  <kirill.yukhin@intel.com>
10625         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
10626         modifiers.
10627         (define_insn "rsqrt14<mode>"): Ditto.
10628         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
10629         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
10630         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
10631         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
10632         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
10633         Ditto.
10634         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
10635         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
10636         * config/i386/i386.c (ix86_print_operand): Expand check for size
10637         override codes for Intel syntax.
10639 2016-05-18  Richard Biener  <rguenther@suse.de>
10641         PR tree-optimization/71168
10642         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
10643         initialization earlier.
10645 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
10647         * config/aarch64/aarch64-simd.md
10648         (aarch64_reduc_plus_internal<mode>): Rename to...
10649         (reduc_plus_scal): ...This, and remove previous implementation.
10651 2016-05-18  Richard Biener  <rguenther@suse.de>
10653         * passes.def: Put late dse and cd_dce in canonical order.
10655 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
10657         * ipa-inline-transform.c (preserve_function_body_p): Look for
10658         first non-thunk clone.
10659         (save_function_body): Save into first non-thunk.
10660         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
10661         up call stmt id.
10662         (lto_output_node): Inline thunks don't need body in every
10663         partition.
10664         * lto-streamer-in.c: Do not fixup thunk clones.
10665         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
10666         thunks.
10667         * tree-inline.c (copy_bb): Be prepared for target node to be new after
10668         folding suceeds.
10670 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
10672         PR middle-end/63586
10673         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
10674         (reassociate_bb): Call transform_add_to_multiply.
10676 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
10678         * config/aarch64/aarch64.c (all_extensions): Removed unused
10679         static variable.
10681 2016-05-17  Nathan Sidwell  <nathan@acm.org>
10683         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
10684         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
10686 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
10688         PR tree-optimization/54579
10689         PR middle-end/55299
10690         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
10692 2016-05-17  Marek Polacek  <polacek@redhat.com>
10694         PR ipa/71146
10695         * tree-inline.c (expand_call_inline): Call
10696         maybe_remove_unused_call_args.
10698 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
10700         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
10701         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
10702         * doc/md.texi (fmin@var{m}3): Likewise.
10704 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
10706         * match.pd (X & C): New transformation.
10708 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
10710         * match.pd (~X & Y): New transformation.
10712 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
10714         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
10715         information for new SSA_NAME.
10716         (simplify_conversion_using_ranges): Get range through get_range_info
10717         instead of get_value_range.
10719 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
10721         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
10722         Remove inline assembly.
10723         (vmvn_s16): Likewise.
10724         (vmvn_s32): Likewise.
10725         (vmvn_u8): Likewise.
10726         (vmvn_u16): Likewise.
10727         (vmvn_u32): Likewise.
10728         (vmvnq_s8): Likewise.
10729         (vmvnq_s16): Likewise.
10730         (vmvnq_s32): Likewise.
10731         (vmvnq_u8): Likewise.
10732         (vmvnq_u16): Likewise.
10733         (vmvnq_u32): Likewise.
10734         (vmvn_p8): Likewise.
10735         (vmvnq_p16): Likewise.
10737 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
10739         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
10740         Use builtin.
10741         (vmul_n_s16): Likewise.
10742         (vmul_n_s32): Likewise.
10743         (vmul_n_u16): Likewise.
10744         (vmul_n_u32): Likewise.
10745         (vmulq_n_f32): Likewise.
10746         (vmulq_n_f64): Likewise.
10747         (vmulq_n_s16): Likewise.
10748         (vmulq_n_s32): Likewise.
10749         (vmulq_n_u16): Likewise.
10750         (vmulq_n_u32): Likewise.
10752 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
10754         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
10755         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
10757 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
10759         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
10760         to *aarch64_fma4_elt_from_dup<mode>.
10761         (*aarch64_fnma4_elt_to_128df): Rename to
10762         *aarch64_fnma4_elt_from_dup<mode>.
10763         * config/aarch64/arm_neon.h (vfma_n_f64): New.
10764         (vfms_n_f32): Likewise.
10765         (vfms_n_f64): Likewise.
10766         (vfmsq_n_f32): Likewise.
10767         (vfmsq_n_f64): Likewise.
10769 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
10771         * wide-int.h: Change fixed_wide_int_storage from class to struct.
10773 2016-05-17  Richard Biener  <rguenther@suse.de>
10775         PR tree-optimization/71132
10776         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
10777         Only add control dependences for blocks in the loop.
10778         (build_rdg): Adjust.
10779         (generate_code_for_partition): Return whether loop should
10780         be destroyed and delay that.
10781         (distribute_loop): Likewise.
10782         (pass_loop_distribution::execute): Record loops to be destroyed
10783         and perform delayed destroying of loops.
10785 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10787         PR target/70809
10788         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
10790 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
10792         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
10794 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
10796         PR target/71114
10797         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
10798         insertion point for instructions generated by validize_mem.
10800 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
10802         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
10803         in brackets.
10805 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
10807         * config/aarch64/aarch64.c
10808         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
10809         rather than a macro.
10811 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
10813         * doc/invoke.texi (AArch64 Options): Various updates.
10815 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10817         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
10818         into instrumentation thunks.
10819         * cif-code.def (CIF_CHKP): New.
10821 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
10823         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
10825 2016-05-16  Martin Jambor  <mjambor@suse.cz>
10827         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
10828         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
10830 2016-05-16  Marek Polacek  <polacek@redhat.com>
10832         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
10833         commentary.
10835 2016-05-16  Martin Jambor  <mjambor@suse.cz>
10837         PR hsa/70857
10838         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
10839         the outlined kernel function.
10841 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
10843         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
10844         (ISA_HAS_DLSA): Ditto.
10846 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
10848         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
10850 2016-05-16  Nathan Sidwell  <nathan@acm.org>
10852         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
10853         (nvptx_name_replacement): Restore.  Add comment.
10854         (write_fn_proto, write_fn_proto_from_insn,
10855         nvptx_output_call_insn): Restore
10856         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
10858 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
10860         * config/aarch64/aarch64.md
10861         (add<mode>3_compareC_cconly_imm): Remove use of %w.
10862         (add<mode>3_compareC_imm): Likewise.
10863         (<optab>si3_uxtw): Split into register and immediate variants.
10864         (andsi3_compare0_uxtw): Likewise.
10865         (and<mode>3_compare0): Likewise.
10866         (and<mode>3nr_compare0): Likewise.
10867         (stack_protect_test_<mode>): Don't use %x for memory operands.
10869 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
10871         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
10873 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
10875         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10876         Split integer shifts into shift_reg and bfm.
10877         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
10878         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10879         (ror<mode>3_insn): Likewise.
10880         (<optab>si3_insn_uxtw): Likewise.
10881         (<optab><mode>3_insn): Change to rotate_imm.
10882         (extr<mode>5_insn_alt): Likewise.
10883         (extrsi5_insn_uxtw): Likewise.
10884         (extrsi5_insn_uxtw_alt): Likewise.
10886 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
10888         * doc/tm.texi: Regenerate.
10889         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
10890         (TARGET_INVALID_RETURN_TYPE): Remove.
10891         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
10892         TARGET_INVALID_RETURN_TYPE.
10893         * target.def (invalid_parameter_type): Remove.
10894         (invalid_return_type): Remove.
10896 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10898         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
10899         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
10900         calls from thunk.
10901         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
10902         gimple body.
10903         (preserve_function_body_p): No need to preserve function body
10904         * cif-codes.def (CIF_THUNK): Remove.
10905         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
10907 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10909         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
10911 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10913         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
10914         for thunks.
10916 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10918         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
10919         (inline_small_functions): Do not look for function symbol when
10920         resetting caches.
10922 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
10924         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
10925         of inline thunks
10927 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
10928             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10929             Jiong Wang  <jiong.wang@arm.com>
10931         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
10932         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
10933         Define __ARM_FP16_ARGS when appropriate.
10934         * config/arm/arm.c (arm_invalid_parameter_type): Remove
10935         declaration.
10936         (arm_invalid_return_type): Likewise.
10937         (TARGET_INVALID_PARAMETER_TYPE): Remove.
10938         (TARGET_INVALID_RETURN_TYPE): Remove.
10939         (aapcs_vfp_sub_candidate): Allow HFmode.
10940         (aapcs_vfp_allocate): Add comment.  Support HFmode.
10941         (aapcs_vfp_allocate_return_reg): Likewise.
10942         (struct aapcs_cp_arg_layout): Slightly reword comments for
10943         is_return_candidate and allocate_return_reg.
10944         (output_mov_vfp): Update assert.
10945         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
10946         condition.
10947         (arm_invalid_parameter_type): Remove.
10948         (amr_invalid_return_type): Remove.
10949         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
10950         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
10951         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
10953 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
10955         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
10956         * config/aarch64/arch64-protos.h
10957         (aarch64_legitimize_reload_address): Remove.
10958         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
10959         Remove.
10961 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
10963         * configure.ac: Add ACX_NONCANONICAL_HOST.
10964         * configure: Regenerate.
10965         * Makefile.in: Set host_noncanonical.
10967 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
10969         PR target/71097
10970         * config/i386/i386.md (*movtf_internal): Before register allocation,
10971         do not allow FP constants for CM_MEDIUM memory model, allow only
10972         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
10973         (*movxf_internal): Ditto.
10974         (*movdf_internal): Ditto.
10975         (*movsf_internal): Ditto.
10977 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
10979         PR rtl-optimization/67483
10980         * combine.c (make_compound_operation): Don't call extract_left_shift
10981         with negative shift amounts.
10983 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
10985         PR bootstrap/71071
10986         * fold-const.c (fold_checksum_tree): Allow modification
10987         of TYPE_ALIAS_SET during folding.
10989         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
10990         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
10991         (ix86_split_to_parts): Likewise.  Fix up formatting.
10993 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
10995         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
10996         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
10997         printf format.
10999 2016-05-13  Nathan Sidwell  <nathan@acm.org>
11001         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
11002         (nvptx_name_replacement): Delete.
11003         (write_fn_proto, write_fn_proto_from_insn,
11004         nvptx_output_call_insn): Remove nvptx_name_replacement call.
11005         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
11006         * langhooks.c (add_builtin_funcction_common): Call
11007         targetm.mangle_decl_assembler_name.
11009         * config/nvptx/nvptx.c (write_fn_proto): Handle
11010         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
11012 2016-05-13  Martin Liska  <mliska@suse.cz>
11014         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
11015         and PRIu64 in printf format.
11017 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11019         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
11020         comment.
11022 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11024         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
11025         Change --param max-completely-peeled-times to
11026         --param max-completely-peel-times in dump file printing.
11028 2016-05-13  Richard Biener  <rguenther@suse.de>
11030         PR tree-optimization/42587
11031         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
11032         (find_bswap_or_nop_1): Likewise.
11033         (bswap_replace): Likewise.
11035 2016-05-13  Martin Liska  <mliska@suse.cz>
11037         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
11038         Initialize a variable with default value.
11040 2016-05-13  Martin Liska  <mliska@suse.cz>
11042         * doc/invoke.texi: Enhance explanation of error recovery
11043         of sanitizers.
11045 2016-05-13  Martin Liska  <mliska@suse.cz>
11047         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
11048         (struct cost_pair): Change inv_expr_id (int) to inv_expr
11049         (iv_inv_expr_ent *).
11050         (struct iv_inv_expr_ent): Comment struct fields.
11051         (sort_iv_inv_expr_ent): New function.
11052         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
11053         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
11054         a hash_map between iv_inv_expr_ent and number of usages.
11055         (niter_for_exit): Fix coding style.
11056         (tree_ssa_iv_optimize_init): Use renamed variable.
11057         (determine_base_object): Fix coding style.
11058         (alloc_iv): Likewise.
11059         (find_interesting_uses_outside): Likewise.
11060         (add_candidate_1): Likewise.
11061         (add_standard_iv_candidates): Likewise.
11062         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
11063         (prepare_decl_rtl): Fix coding style.
11064         (get_address_cost): Likewise.
11065         (get_shiftadd_cost): Likewise.
11066         (force_expr_to_var_cost): Likewise.
11067         (compare_aff_trees): Likewise.
11068         (get_expr_id): Restructure the function.
11069         (get_loop_invariant_expr_id): Renamed to
11070         get_loop_invariant_expr.
11071         (get_computation_cost_at): Replace usage of inv_expr_id with
11072         inv_expr.
11073         (get_computation_cost): Likewise.
11074         (determine_group_iv_cost_generic): Likewise.
11075         (determine_group_iv_cost_address): Likewise.
11076         (iv_period): Fix coding style.
11077         (iv_elimination_compare_lt): Likewise.
11078         (may_eliminate_iv): Likewise.
11079         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
11080         inv_expr.
11081         (determine_group_iv_costs): Dump invariant expressions.
11082         (iv_ca_recount_cost): Use the newly added hash_map.
11083         (iv_ca_set_remove_invariants): Fix coding style.
11084         (iv_ca_set_add_invariants): Fix coding style.
11085         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
11086         invariants.
11087         (iv_ca_set_cp): Likewise.
11088         (iv_ca_new): Initialize the newly added hash_map and remove
11089         initialization of fields.
11090         (iv_ca_free): Delete the hash_map.
11091         (iv_ca_dump): Dump invariant expressions.
11092         (iv_ca_extend): Fix coding style.
11093         (try_add_cand_for): Likewise.
11094         (create_new_ivs): Dump information about # of avg iterations and
11095         # of used invariant expressions.
11096         (rewrite_use_compare): Fix coding style.
11097         (free_loop_data): Set default value for max_inv_expr_id.
11099 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
11101         * cse.c (rest_of_handle_cse): Use cleanup_cfg
11102         returned value cse_cfg_altered computation.
11103         (rest_of_handle_cse2): Likewise.
11104         (rest_of_handle_cse_after_global_opts): Likewise.
11106 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11108         PR target/53440
11109         * config/arm/arm.c (arm32_output_mi_thunk): New.
11110         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
11111         to split Thumb1 vs TARGET_32BIT functionality.
11112         (arm_thumb1_mi_thunk): New.
11114 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11116         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
11117         to true.
11119 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11121         PR target/71080
11122         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
11124 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
11126         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
11127         (expand_builtin_trap): Emit a regular call.
11128         (set_builtin_user_assembler_name): Remove obsolete cases.
11129         * dse.c (scan_insn): Adjust.
11130         * except.c: Include calls.h.
11131         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
11132         emit a regular call to setjmp.
11133         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
11134         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
11135         (emit_block_move_via_libcall): Delete.
11136         (block_move_fn): Delete.
11137         (init_block_move_fn): Likewise.
11138         (emit_block_move_libcall_fn): Likewise.
11139         (emit_block_op_via_libcall): New function.
11140         (set_storage_via_libcall): Tidy up and use memset builtin.
11141         (block_clear_fn): Delete.
11142         (init_block_clear_fn): Likewise.
11143         (clear_storage_libcall_fn): Likewise.
11144         (expand_assignment): Call emit_block_move_via_libcall.
11145         Do not include gt-expr.h.
11146         * expr.h (emit_block_op_via_libcall): Declare.
11147         (emit_block_copy_via_libcall): New inline function.
11148         (emit_block_move_via_libcall): Likewise.
11149         (emit_block_comp_via_libcall): Likewise.
11150         (block_clear_fn): Delete.
11151         (init_block_move_fn): Likewise.
11152         (init_block_clear_fn): Likewise.
11153         (emit_block_move_via_libcall): Likewise.
11154         (set_storage_via_libcall): Add default parameter value.
11155         * libfuncs.h (enum libfunc_index): Remove obsolete values.
11156         (abort_libfunc): Delete.
11157         (memcpy_libfunc): Likewise.
11158         (memmove_libfunc): Likewise.
11159         (memcmp_libfunc): Likewise.
11160         (memset_libfunc): Likewise.
11161         (setbits_libfunc): Likewise.
11162         (setjmp_libfunc): Likewise.
11163         (longjmp_libfunc): Likewise.
11164         (profile_function_entry_libfunc): Likewise.
11165         (profile_function_exit_libfunc): Likewise.
11166         (gcov_flush_libfunc): Likewise.
11167         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
11168         and DECL_VISIBILITY on the declaration.
11169         (init_optabs): Do not initialize obsolete libfuncs.
11170         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
11171         * tree-core.h (ECF_RET1): Define.
11172         (ECF_TM_PURE): Adjust.
11173         (ECF_TM_BUILTIN): Likewise.
11174         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
11175         (build_common_builtin_nodes): Initialize abort builtin.
11176         Add ECF_RET1 on memcpy, memmove and memset builtins.
11177         Pass final flags for alloca and alloca_with_align builtins.
11178         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
11179         obsolete builtins.
11180         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
11181         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
11182         set_storage_via_libcall and call emit_block_copy_via_libcall.
11184 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
11186         * config/i386/i386.md (*call_got_x32): Change operand 0 to
11187         DImode before it is passed to ix86_output_call_operand.
11188         (*call_value_got_x32): Ditto for operand 1.
11190 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
11192         PR rtl-optimization/70904
11193         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
11194         reload for wide mode.
11196 2016-05-12  Marek Polacek  <polacek@redhat.com>
11198         PR c/70756
11199         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
11200         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
11201         * langhooks.h (incomplete_type_error): Likewise.
11202         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
11203         parameter, pass it down to incomplete_type_error.
11204         * tree.h (size_in_bytes): New inline overload.
11205         (size_in_bytes_loc): Renamed from size_in_bytes.
11207 2016-05-12  Richard Biener  <rguenther@suse.de>
11209         PR tree-optimization/71059
11210         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
11211         nary before looking up or entering the expression into the VN
11212         hashes.
11213         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
11214         Make sure to re-use NARYs without result as inserted by
11215         phi-translation.
11217 2016-05-12  Richard Biener  <rguenther@suse.de>
11219         PR tree-optimization/71062
11220         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
11221         field.
11222         * tree-ssa-structalias.c (set_uids_in_ptset): Set
11223         vars_contains_restrict if the var is a restrict tag.
11224         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
11225         do not disambiguate pointers against it.
11226         (dump_points_to_solution): Re-structure and adjust for new
11227         vars_contains_restrict flag.
11228         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
11230 2016-05-12  Martin Liska  <mliska@suse.cz>
11232         * doc/invoke.texi: Explain connection between
11233         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
11235 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
11237         PR tree-optimization/71006
11238         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
11239         consider COND_EXPR as a mask producer.
11241 2016-05-12  Marek Polacek  <polacek@redhat.com>
11243         PR driver/71063
11244         * opts.c (common_handle_option): Detect missing argument for --help^.
11246 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11248         PR target/70830
11249         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
11250         when popping the PC and within an interrupt handler routine.
11251         Add missing tab to output of "ldmfd".
11252         (output_return_instruction): Output LDMFD with SP update rather
11253         than POP when returning from interrupt handler.
11255 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
11257         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
11258         TARGET_64BIT && TARGET_AVX512DQ.
11259         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
11260         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
11261         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
11262         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
11263         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
11264         (*vec_extractv4si_zext): Add avx512dq alternative.
11265         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
11266         use v instead of x constraint in other alternatives where possible.
11268         * config/i386/sse.md (sse2_loadld): Use v instead of x
11269         constraint in alternatives 0,1,4.
11271         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
11272         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
11273         v constraints instead of x and <pinsr_evex_isa> isa attribute.
11275         PR target/71019
11276         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
11277         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
11278         is not emitted unless TARGET_AVX512BW.
11279         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
11280         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
11281         for the result operand.
11283         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
11284         constraint instead of x in avx alternatives.  Use maybe_evex instead
11285         of vex prefix.
11287         * config/i386/constraints.md (Yv): New constraint.
11288         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
11289         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
11290         * config/i386/i386.md (avx512fvecmode): New mode attr.
11291         (*pushtf): Use v constraint instead of x.
11292         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
11293         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
11294         (*absneg<mode>2): Use Yv constraint instead of x constraint.
11295         (*absnegtf2_sse): Likewise.
11296         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
11297         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
11298         avx512f alternatives.
11299         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
11301 2016-05-12  Richard Biener  <rguenther@suse.de>
11303         PR tree-optimization/71060
11304         * tree-data-ref.c (initialize_data_dependence_relation): Do not
11305         require exact match of DR_BASE_OBJECT but only matching address and
11306         type.
11308 2016-05-12  Richard Biener  <rguenther@suse.de>
11310         PR tree-optimization/70986
11311         * cfganal.c: Include cfgloop.h.
11312         (dfs_find_deadend): Prefer to take edges exiting loops.
11314 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11316         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
11317         compile and run time.
11319 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
11321         PR c/43651
11322         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
11324 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
11326         * config/i386/i386.c (legitimize_pic_address): Use
11327         copy_to_suggested_reg instead of gen_movsi.
11329 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
11331         * config/rs6000/predicates.md (quad_memory_operand): Move most of
11332         the code into quad_address_p and call it to share code with
11333         vsx_quad_dform_memory_operand.
11334         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
11335         d-form support.
11336         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
11337         bit instead of being a separate word.  Split -mpower9-dform into
11338         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11339         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
11340         for the register class supporting 128-bit quad word memory offsets.
11341         (mode_supports_vsx_dform_quad): Helper function to return if the
11342         register class uses quad word memory offsets.
11343         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
11344         (rs6000_debug_reg_global): Always print if we are using LRA or not.
11345         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
11346         instructions are enabled, set up the appropriate addr_masks for
11347         128-bit types.
11348         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
11349         -mpower9-dform-scalar, instead of -mpower9-dform.
11350         (rs6000_option_override_internal): Split -mpower9-dform into two
11351         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
11352         -mpower9-dform switch sets or clears both.  If we are not using
11353         the LRA register allocator, do not enable -mpower9-dform-vector by
11354         default.  If we are using LRA, enable -mpower9-dform-vector and
11355         -mvsx-timode if it is appropriate.  Issue a warning if either
11356         -mpower9-dform-vector or -mvsx-timode are explicitly used without
11357         enabling LRA.
11358         (quad_address_offset_p): New helper function to return if the
11359         offset is legal for quad word memory instructions.
11360         (quad_address_p): New function to determin if GPR or vector
11361         register quad word memory addresses are legal.
11362         (mem_operand_gpr): Validate quad word address offsets.
11363         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
11364         d-form (register + offset) instructions.
11365         (offsettable_ok_by_alignment): Likewise.
11366         (rs6000_legitimate_offset_address_p): Likewise.
11367         (legitimate_lo_sum_address_p): Likewise.
11368         (rs6000_legitimize_address): Likewise.
11369         (rs6000_legitimize_reload_address): Add more debug statements for
11370         -mdebug=addr.
11371         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
11372         d-form instructions.
11373         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
11374         d-form instructions.  Distinguish different cases in debug
11375         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
11376         d-form instructions.
11377         (rs6000_preferred_reload_class): Likewise.
11378         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
11379         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
11380         of the ISA 2.06 indexed memory instructions.
11381         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
11382         use them to save/restore the saved vector registers instead of
11383         using Altivec instructions.
11384         (rs6000_emit_epilogue): Likewise.
11385         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
11386         (rs6000_opt_masks): Split -mpower9-dform into
11387         -mpower9-dform-scalar and -mpower9-dform-vector.
11388         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
11389         was not selected.
11390         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
11391         ISA 3.0 vector indexed memory instructions, and fold the code into
11392         the normal mov<mode> patterns.
11393         (p9_vecstore_<mode>): Likewise.
11394         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
11395         instructions.
11396         (vsx_movti_64bit): Likewise.
11397         (vsx_movti_32bit): Likewise.
11398         * config/rs6000/constraints.md (wO constraint): New constraint for
11399         ISA 3.0 vector d-form support.
11400         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
11401         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
11402         include -mpower9-dform-vector until we switch over to LRA.
11403         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
11404         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11405         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
11406         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
11407         for -mpower9-dform and -mlra.
11408         * doc/md.texi (wO constraint): Document wO constraint.
11410 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
11412         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
11413         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
11414         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
11415         Move handling of non-insn arguments inline into the sole user:
11416         (output_trans_func): ...here.
11417         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
11418         in emitted function prototype.
11419         (output_internal_insn_latency_func): Ditto.  Simplify.
11420         (output_internal_maximal_insn_latency_func): Ditto.  Delete
11421         always-unused argument.
11422         (output_insn_latency_func): Ditto.
11423         (output_maximal_insn_latency_func): Ditto.
11425 2016-05-11  Richard Biener  <rguenther@suse.de>
11427         PR tree-optimization/71055
11428         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
11429         sth with precision not equal to access size verify we don't chop
11430         off bits.
11432 2016-05-11  Richard Biener  <rguenther@suse.de>
11434         PR debug/71057
11435         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
11436         (dwarf2out_finish): Move retry_incomplete_types call ...
11437         (dwarf2out_early_finish): ... here.
11439 2016-05-11  Richard Biener  <rguenther@suse.de>
11441         PR middle-end/71002
11442         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
11443         if the langhook insists on it.
11444         * fold-const.c (make_bit_field_ref): Add arg for the original
11445         reference and preserve its alias-set.
11446         (decode_field_reference): Take exp by reference and adjust it
11447         to the original memory reference.
11448         (optimize_bit_field_compare): Adjust callers.
11449         (fold_truth_andor_1): Likewise.
11450         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
11452 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
11454         PR middle-end/70807
11455         * cfgrtl.h (delete_insn_and_edges): Now return bool.
11456         * cfgrtl.c (delete_insn_and_edges): Likewise.
11457         * config/i386/i386.c (convert_scalars_to_vector): Remove
11458         redundant code.
11459         * cse.c (cse_insn): Compute cse_cfg_altered.
11460         (delete_trivially_dead_insns): Likewise.
11461         (cse_cc_succs): Likewise.
11462         (rest_of_handle_cse): Free dominance info if required.
11463         (rest_of_handle_cse2): Likewise.
11464         (rest_of_handle_cse_after_global_opts): Likewise.
11466 2016-05-11  Alan Modra  <amodra@gmail.com>
11468         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
11469         abi_v4_pass_in_fpr): New functions.
11470         (rs6000_function_arg_boundary): Exclude complex IBM long double
11471         from 64-bit alignment when ABI_V4.
11472         (rs6000_function_arg, rs6000_function_arg_advance_1,
11473         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
11475 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
11477         PR rtl-optimization/71028
11478         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
11479         jump with just a return in the fallthrough block if the branch
11480         block contains just a return as well.
11482 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
11484         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
11485         * match.pd ((X & Y) ^ Y): ... this.
11486         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
11487         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
11489 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
11491         * read-md.c (require_char_ws): New function.
11492         (read_string): Simplify using require_char_ws.
11493         (handle_constants): Likewise.
11494         (handle_enum): Likewise.
11495         (handle_file): Likewise.
11496         * read-md.h (require_char_ws): New declaration.
11497         * read-rtl.c (read_conditions): Simplify using require_char_ws.
11498         (read_mapping): Likewise.
11499         (read_rtx_code): Likewise.
11500         (read_nested_rtx): Likewise.
11502 2016-05-10  James Norris  <jnorris@codesourcery.com>
11504         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
11505         if offloading is enabled and -fopenacc or -fopenmp is specified.
11506         (CRTOFFLOADEND): Likewise.
11507         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
11508         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
11510 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
11512         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
11513         gotoff_operand code paths.  Use copy_to_suggested_regs and
11514         expand_simple_binop where appropriate.  Cleanup.
11516 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
11518         PR target/70799
11519         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
11520         integer constants.
11521         (dimode_scalar_chain::vector_const_cost): New.
11522         (dimode_scalar_chain::compute_convert_gain): Handle constants.
11523         (dimode_scalar_chain::convert_op): Likewise.
11524         (dimode_scalar_chain::convert_insn): Likewise.
11526 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
11528         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
11529         unary operation, not a binary one.
11531 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
11533         PR middle-end/70877
11534         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
11535         calls with type casted fndecl.
11537 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
11539         PR tree-optimization/70786
11540         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
11541         * calls.c (initialize_argument_information): Bind bounds
11542         with corresponding args passed by reference.
11544 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
11546         PR target/70927
11547         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
11548         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
11549         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
11550         accordingly.
11552 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11554         PR target/70963
11555         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
11556         code for a zero scale factor.
11557         (vsx_xvcvdpuxds_scale): Likewise.
11559 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
11561         * diagnostic-show-locus.c (layout::layout): Call show_ruler
11562         if show_ruler_p was set on the context.
11563         (layout::show_ruler): New method.
11564         * diagnostic.h (struct diagnostic_context): Add field
11565         "show_ruler_p".
11567 2016-05-10  Richard Biener  <rguenther@suse.de>
11569         PR tree-optimization/71039
11570         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
11571         (chk_uses): New function.
11572         (propagate_with_phi): Verify we can safely replicate the lhs of an
11573         aggregate assignment on all incoming edges.
11575 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
11577         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
11578         Forward declare.
11579         (rx_atomic_sequence): New class.
11580         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
11581         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
11582         non-inline.
11583         (rx_atomic_sequence::rx_atomic_sequence,
11584         rx_atomic_sequence::~rx_atomic_sequence): New functions.
11585         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
11586         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
11587         CTRLREG_INTB): New constants.
11588         (FETCHOP): New code iterator.
11589         (fethcop_name, fetchop_name2): New iterator code attributes.
11590         (QIHI): New mode iterator.
11591         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
11592         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
11593         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
11595 2016-05-10  Martin Liska  <mliska@suse.cz>
11597         * tree-inline.c (remap_dependence_clique): Do not remap
11598         debugging statements.
11600 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11602         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
11603         ("*fixuns_truncdfdi2_z13")
11604         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
11605         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
11606         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
11608 2016-05-10  Richard Biener  <rguenther@suse.de>
11610         PR tree-optimization/70497
11611         PR tree-optimization/28367
11612         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
11613         split out from ...
11614         (visit_reference_op_load): ... here.
11615         (vn_reference_lookup_3): Use it to handle subreg-like accesses
11616         with simplified BIT_FIELD_REFs.
11617         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
11618         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
11619         correctly.
11621 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
11623         * dwarf2out.c (add_abstract_origin_attribute): Adjust
11624         documentation comment.  For BLOCK nodes, add a
11625         DW_AT_abstract_origin attribute that points to the DIE generated
11626         for the origin BLOCK.
11627         (gen_lexical_block_die): Call add_abstract_origin_attribute for
11628         blocks from inlined functions.
11630 2016-05-10  Alan Modra  <amodra@gmail.com>
11632         PR target/70947
11633         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
11634         regrename modifying insns saving lr before __morestack call.
11635         * config/rs6000/rs6000.md (split_stack_return): Similarly for
11636         insns restoring lr after __morestack call.
11638 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
11640         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
11641         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
11642         expanders.
11643         * config/i386/sse.md (vec_interleave_high<mode>,
11644         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
11645         <avx512>_vpermt2var<mode>3_maskz): Likewise.
11647 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
11649         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
11650         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
11651         parallel reassociation for power8 and forward.
11653 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
11655         * config/i386/i386.md (absneg splitters with general regs): Use
11656         general_reg_operand predicate.
11657         (btsq peephole2): Use x86_64_immediate_operand to check if new
11658         value is suitable for immediate operand.  Generate emitted insn
11659         using RTL expressions.
11660         (btcq peephole2): Ditto.
11661         (btrq peephole2): Ditto.  Generate correct immediate operand
11662         for AND masking.
11664 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
11666         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
11667         bitpos.
11669 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
11671         * tree-affine.c (wide_int_constant_multiple_p): Add missing
11672         pointer dereference.
11674 2016-05-09  Richard Biener  <rguenther@suse.de>
11676         PR tree-optimization/70985
11677         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
11678         op0 isn't a gimple register.
11680 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
11682         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
11683         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
11684         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
11685         (i6400_fpu_mult): New cpu units.
11686         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
11687         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
11688         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
11689         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
11690         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
11691         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
11692         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
11693         (i6400_msa_long_float4, i6400_msa_long_float5)
11694         (i6400_msa_long_float8, i6400_msa_fdiv_df)
11695         (i6400_msa_fdiv_sf): New reservations.
11696         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
11697         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
11698         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
11699         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
11700         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
11701         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
11702         (msa_short_cmp, msa_short_float2, msa_short_logic3)
11703         (msa_short_store4, msa_long_load, msa_short_store)
11704         (msa_long_logic, msa_long_float2, msa_long_float4)
11705         (msa_long_float5, msa_long_float8, msa_long_mult)
11706         (msa_long_fdiv, msa_long_div): New reservations.
11708 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
11709             Sameera Deshpande  <sameera.deshpande@imgtec.com>
11710             Matthew Fortune  <matthew.fortune@imgtec.com>
11711             Graham Stott  <graham.stott@imgtec.com>
11712             Chao-ying Fu  <chao-ying.fu@imgtec.com>
11714         * config.gcc: Add MSA header file for mips*-*-* target.
11715         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
11716         (Ubv8i, Urv8):  New constraints.
11717         * config/mips/mips-ftypes.def: Add function types for MSA
11718         builtins.
11719         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
11720         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
11721         * config/mips/mips-msa.md: New file.
11722         * config/mips/mips-protos.h
11723         (mips_split_128bit_const_insns): New prototype.
11724         (mips_msa_idiv_insns): Likewise.
11725         (mips_split_128bit_move): Likewise.
11726         (mips_split_128bit_move_p): Likewise.
11727         (mips_split_msa_copy_d): Likewise.
11728         (mips_split_msa_insert_d): Likewise.
11729         (mips_split_msa_fill_d): Likewise.
11730         (mips_expand_msa_branch): Likewise.
11731         (mips_const_vector_same_val_p): Likewise.
11732         (mips_const_vector_same_bytes_p): Likewise.
11733         (mips_const_vector_same_int_p): Likewise.
11734         (mips_const_vector_shuffle_set_p): Likewise.
11735         (mips_const_vector_bitimm_set_p): Likewise.
11736         (mips_const_vector_bitimm_clr_p): Likewise.
11737         (mips_msa_vec_parallel_const_half): Likewise.
11738         (mips_msa_output_division): Likewise.
11739         (mips_ldst_scaled_shift): Likewise.
11740         (mips_expand_vec_cond_expr): Likewise.
11741         * config/mips/mips.c (enum mips_builtin_type): Add
11742         MIPS_BUILTIN_MSA_TEST_BRANCH.
11743         (mips_gen_const_int_vector_shuffle): New prototype.
11744         (mips_const_vector_bitimm_set_p): New function.
11745         (mips_const_vector_bitimm_clr_p): Likewise.
11746         (mips_const_vector_same_val_p): Likewise.
11747         (mips_const_vector_same_bytes_p): Likewise.
11748         (mips_const_vector_same_int_p): Likewise.
11749         (mips_const_vector_shuffle_set_p): Likewise.
11750         (mips_symbol_insns): Forbid loading symbols via immediate for
11751         MSA.
11752         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
11753         stores.
11754         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
11755         MSA.
11756         (mips_lx_address_p): Add support load indexed address for MSA.
11757         (mips_address_insns): Add calculation of instructions needed for
11758         stores and loads for MSA.
11759         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
11760         CONST_VECTOR for MSA and let it fall through.
11761         (mips_ldst_scaled_shift): New function.
11762         (mips_subword_at_byte): Likewise.
11763         (mips_msa_idiv_insns): Likewise.
11764         (mips_legitimize_move): Validate MSA moves.
11765         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
11766         calculation of costs for MSA division.
11767         (mips_split_move_p): Check if MSA moves need splitting.
11768         (mips_split_move): Split MSA moves if necessary.
11769         (mips_split_128bit_move_p): New function.
11770         (mips_split_128bit_move): Likewise.
11771         (mips_split_msa_copy_d): Likewise.
11772         (mips_split_msa_insert_d): Likewise.
11773         (mips_split_msa_fill_d): Likewise.
11774         (mips_output_move): Handle MSA moves.
11775         (mips_expand_msa_branch): New function.
11776         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
11777         Reinstate 'y' modifier.
11778         (mips_file_start): Add MSA .gnu_attribute.
11779         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
11780         FPRs.
11781         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
11782         (mips_class_max_nregs): Add register size for MSA supported mode.
11783         (mips_cannot_change_mode_class): Allow conversion between MSA
11784         vector modes and TImode.
11785         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
11786         instruction.
11787         (mips_secondary_reload_class): Force MSA loads/stores via memory.
11788         (mips_preferred_simd_mode): Add preffered modes for MSA.
11789         (mips_vector_mode_supported_p): Add MSA supported modes.
11790         (mips_autovectorize_vector_sizes): New function.
11791         (mips_msa_output_division): Likewise.
11792         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
11793         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
11794         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
11795         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
11796         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
11797         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
11798         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
11799         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
11800         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
11801         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
11802         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
11803         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
11804         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
11805         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
11806         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
11807         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
11808         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
11809         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
11810         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
11811         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
11812         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
11813         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
11814         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
11815         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
11816         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
11817         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
11818         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
11819         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
11820         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
11821         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
11822         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
11823         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
11824         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
11825         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
11826         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
11827         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
11828         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
11829         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
11830         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
11831         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
11832         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
11833         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
11834         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
11835         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
11836         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11837         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11838         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11839         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11840         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11841         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11842         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11843         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11844         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
11845         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
11846         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
11847         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
11848         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
11849         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
11850         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
11851         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
11852         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
11853         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
11854         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
11855         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
11856         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
11857         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
11858         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
11859         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
11860         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
11861         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
11862         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
11863         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
11864         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
11865         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
11866         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
11867         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
11868         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
11869         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
11870         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
11871         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
11872         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
11873         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
11874         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
11875         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
11876         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
11877         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
11878         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
11879         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
11880         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
11881         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
11882         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
11883         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
11884         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
11885         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
11886         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
11887         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
11888         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
11889         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
11890         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
11891         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
11892         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
11893         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
11894         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
11895         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
11896         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
11897         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
11898         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
11899         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
11900         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
11901         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
11902         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
11903         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
11904         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
11905         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
11906         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
11907         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
11908         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
11909         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
11910         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
11911         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
11912         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
11913         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
11914         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
11915         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
11916         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
11917         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
11918         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
11919         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
11920         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
11921         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
11922         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
11923         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
11924         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
11925         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
11926         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
11927         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
11928         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
11929         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
11930         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
11931         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
11932         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
11933         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
11934         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
11935         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
11936         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
11937         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
11938         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
11939         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
11940         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
11941         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
11942         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
11943         move_v builtins.
11944         (mips_get_builtin_decl_index): New array.
11945         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
11946         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
11947         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
11948         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
11949         (mips_init_builtins): Initialize mips_get_builtin_decl_index
11950         array.
11951         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
11952         hook.
11953         (mips_expand_builtin_insn): Prepare operands for
11954         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
11955         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
11956         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
11957         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
11958         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
11959         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
11960         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
11961         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
11962         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
11963         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
11964         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
11965         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
11966         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
11967         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
11968         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
11969         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
11970         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
11971         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
11972         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
11973         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
11974         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
11975         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
11976         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
11977         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
11978         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
11979         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
11980         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
11981         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
11982         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
11983         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
11984         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
11985         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
11986         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
11987         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
11988         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
11989         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
11990         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
11991         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
11992         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
11993         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
11994         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
11995         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
11996         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
11997         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
11998         These are set implicitly and an error is reported if overridden.
11999         (mips_expand_builtin_msa_test_branch): New function.
12000         (mips_expand_msa_shuffle): Likewise.
12001         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
12002         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
12003         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
12004         (mips_expand_vec_unpack): Add support for MSA.
12005         (mips_expand_vector_init): Likewise.
12006         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
12007         instead of const0_rtx.
12008         (mips_msa_vec_parallel_const_half): New function.
12009         (mips_gen_const_int_vector): Likewise.
12010         (mips_gen_const_int_vector_shuffle): Likewise.
12011         (mips_expand_msa_cmp): Likewise.
12012         (mips_expand_vec_cond_expr): Likewise.
12013         * config/mips/mips.h
12014         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
12015         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
12016         specified.
12017         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
12018         (ISA_HAS_MSA): New macro.
12019         (UNITS_PER_MSA_REG): Likewise.
12020         (BITS_PER_MSA_REG): Likewise.
12021         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
12022         (MSA_REG_FIRST): New macro.
12023         (MSA_REG_LAST): Likewise.
12024         (MSA_REG_NUM): Likewise.
12025         (MSA_REG_P): Likewise.
12026         (MSA_REG_RTX_P): Likewise.
12027         (MSA_SUPPORTED_MODE_P): Likewise.
12028         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
12029         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
12030         * config/mips/mips.md: Include mips-msa.md.
12031         (alu_type): Add simd_add.
12032         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
12033         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
12034         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
12035         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
12036         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
12037         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
12038         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
12039         simd_move, simd_load, simd_store.  Choose "multi" for moves
12040         for "qword_mode".
12041         (qword_mode): New attribute.
12042         (insn_count): Add instruction count for quad moves.
12043         Increase the count for MIPS SIMD division.
12044         (UNITMODE): Add UNITMODEs for vector types.
12045         (addsub): New code iterator.
12046         * config/mips/mips.opt (mmsa): New option.
12047         * config/mips/msa.h: New file.
12048         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
12049         specified.
12050         * config/mips/mti-linux.h: Likewise.
12051         * config/mips/predicates.md
12052         (const_msa_branch_operand): New constraint.
12053         (const_uimm3_operand): Likewise.
12054         (const_uimm4_operand): Likewise.
12055         (const_uimm5_operand): Likewise.
12056         (const_uimm8_operand): Likewise.
12057         (const_imm5_operand): Likewise.
12058         (aq10b_operand): Likewise.
12059         (aq10h_operand): Likewise.
12060         (aq10w_operand): Likewise.
12061         (aq10d_operand): Likewise.
12062         (const_m1_operand): Likewise.
12063         (reg_or_m1_operand): Likewise.
12064         (const_exp_2_operand): Likewise.
12065         (const_exp_4_operand): Likewise.
12066         (const_exp_8_operand): Likewise.
12067         (const_exp_16_operand): Likewise.
12068         (const_vector_same_val_operand): Likewise.
12069         (const_vector_same_simm5_operand): Likewise.
12070         (const_vector_same_uimm5_operand): Likewise.
12071         (const_vector_same_uimm6_operand): Likewise.
12072         (const_vector_same_uimm8_operand): Likewise.
12073         (par_const_vector_shf_set_operand): Likewise.
12074         (reg_or_vector_same_val_operand): Likewise.
12075         (reg_or_vector_same_simm5_operand): Likewise.
12076         (reg_or_vector_same_uimm6_operand): Likewise.
12077         * doc/extend.texi (MIPS SIMD Architecture Functions): New
12078         section.
12079         * doc/invoke.texi (-mmsa): Document new option.
12081 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12083         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
12084         * configure: Regenerate.
12085         * config.in: Regenerate.
12086         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
12087         on -fvtable-verify.
12088         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
12089         (ENDFILE_VTV_SPEC): Define.
12091 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
12093         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
12094         registers in all interrupt handlers if necessary.
12095         (rl78_option_override): Add warning.
12096         (MUST_SAVE_MDUC_REGISTERS): New macro.
12097         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
12098         * config/rl78/rl78.c (check_mduc_usage): New function.
12099         (mduc_regs): New structure to hold MDUC register data.
12100         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
12101         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
12102         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
12103         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
12104         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
12105         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
12107 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
12109         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
12110         (tree-ssa-loop-niter.h): Ditto.
12111         (idx_within_array_bound, ref_within_array_bound): New functions.
12112         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
12113         Factor out check on writable base object to ...
12114         (base_object_writable): ... here.
12116 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12118         * config/arm/arm.md (probe_stack): Add modes to set source
12119         and destination.
12121 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
12123         * regrename.c (base_reg_class_for_rename): New static function.
12124         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
12126 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
12128         * cgraph.c (thunk_adjust): Export.
12129         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
12130         * cgraphunit.c (thunk_adjust): Export.
12131         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
12132         thunks.
12133         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
12134         inlinable.
12135         * tree-inline.c (expand_call_inline): Expand thunks inline.
12137 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
12139         PR target/70998
12140         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
12141         (*sse2_vd_cvtss2sd): Ditto.
12142         * config/i386/i386.md
12143         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
12144         Generate *sse2_vd_cvtsd2ss pattern.
12145         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
12146         Generate *sse2_vd_cvtss2sd pattern.
12148 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
12150         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
12151         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
12152         users.
12154 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
12156         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
12157         * config/sh/sh.c: Define and declare variables on first use throughout
12158         the file.
12159         (current_function_interrupt): Change to bool type.
12160         (frame_insn): Rename to emit_frame_insn and update users.
12161         (push_regs): Use bool for 'interrupt_handler' argument.
12162         (save_schedule_s): Remove.
12163         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
12164         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
12165         targetm.asm_out.unaligned_op.di.
12166         (gen_far_branch): Remove redundant forward declaration.
12167         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
12168         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
12169         (sh_set_return_address, sh_function_ok_for_sibcall,
12170         scavenge_reg): Update comments.
12171         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
12172         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
12173         (sh_attr_renesas_p): Remove unnecessary parentheses.
12174         (branch_dest): Simplify.
12175         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
12176         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
12177         (CUMULATIVE_ARGS): Change macro to typedef.
12178         (current_function_interrupt): Change to bool type.
12179         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
12180         Surround with __cplusplus ifdef.
12181         (sh_compare_op0, sh_compare_op1): Remove.
12182         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
12184 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
12186         * config/arm/arm.md: (arch): Add neon.
12187         (arch_enabled): Return yes for arch neon when TARGET_NEON.
12188         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
12189         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
12190         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
12191         attributes for alt renumbering.  Mark alt 3 as non-predicable.
12192         (thumb2_movdf_vfp): Likewise.
12194 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
12196         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
12197         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
12198         (*andqi_1): Add preferred_for_speed attribute to disparage
12199         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
12200         (*<code>qi_1): Ditto.
12201         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
12202         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
12203         (*ashlqi3_1): Ditto.
12204         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
12205         Add preferred_for_size attribute to disparage alternative 0 and
12206         preferred_for_speed attribute to disparage alternative 1 for
12207         TARGET_PARTIAL_REG_STALL targets.
12209 2016-05-07  Tom de Vries  <tom@codesourcery.com>
12211         PR tree-optimization/70956
12212         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
12213         def.
12215 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
12217         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
12218         * config/sh/sh.c (sh_cbranch_distance): Implement it.
12219         * config/sh/sh.md (branch_zero): Remove define_attr.
12220         (define_delay): Disable delay slot if branch distance is one insn.
12222 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
12224         * config/i386/i386.md (LEAMODE): New mode attribute.
12225         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
12226         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
12227         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
12228         operand 2 predicate.
12229         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
12230         (*lea<mode>_general_3): Ditto.
12231         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
12233 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
12235         * genmddump.c (main): Convert argv from char ** to const char **.
12237 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
12239         * coretypes.h (OVERRIDE): New macro.
12240         (FINAL): New macro.
12242 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
12244         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
12245         allow coalescing if the types are compatible.
12247 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
12249         * pass_manager.h (pass_manager::register_pass_name): New method.
12250         (pass_manager::get_pass_by_name): New method.
12251         (pass_manager::create_pass_tab): New method.
12252         (pass_manager::m_name_to_pass_map): New field.
12253         * passes.c (name_to_pass_map): Delete global in favor of field
12254         "m_name_to_pass_map" of pass_manager.
12255         (register_pass_name): Rename from a function to...
12256         (pass_manager::register_pass_name): ...this method, updating
12257         for renaming of global "name_to_pass_map" to field
12258         "m_name_to_pass_map".
12259         (create_pass_tab): Rename from a function to...
12260         (pass_manager::create_pass_tab): ...this method, updating
12261         for renaming of global "name_to_pass_map" to field.
12262         (get_pass_by_name): Rename from a function to...
12263         (pass_manager::get_pass_by_name): ...this method.
12264         (enable_disable_pass): Convert use of get_pass_by_name to
12265         a method call, locating the pass_manager singleton.
12267 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
12269         * genattr-common.c (main): Convert argv from char ** to const char **.
12270         * genattr.c (main): Likewise.
12271         * genattrtab.c (main): Likewise.
12272         * genautomata.c (initiate_automaton_gen): Likewise.
12273         (main): Likewise.
12274         * gencodes.c (main): Likewise.
12275         * genconditions.c (main): Likewise.
12276         * genconfig.c (main): Likewise.
12277         * genconstants.c (main): Likewise.
12278         * genemit.c (main): Likewise.
12279         * genenums.c (main): Likewise.
12280         * genextract.c (main): Likewise.
12281         * genflags.c (main): Likewise.
12282         * genmddeps.c (main): Likewise.
12283         * genopinit.c (main): Likewise.
12284         * genoutput.c (main): Likewise.
12285         * genpeep.c (main): Likewise.
12286         * genpreds.c (main): Likewise.
12287         * genrecog.c (main): Likewise.
12288         * gensupport.c (init_rtx_reader_args_cb): Likewise.
12289         (init_rtx_reader_args): Likewise.
12290         * gensupport.h (init_rtx_reader_args_cb): Likewise.
12291         (init_rtx_reader_args): Likewise.
12292         * gentarget-def.c (main): Likewise.
12293         * read-md.c (read_md_files): Likewise.
12294         * read-md.h (read_md_files): Likewise.
12296 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
12298         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
12299         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
12300         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
12301         Remove unused predicate.
12302         (register_and_not_fp_reg_operand): Ditto.
12304 2016-05-06  Martin Liska  <mliska@suse.cz>
12306         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
12307         instead of vec as the vector is local to the function.
12309 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
12311         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
12312         avx512bw alternative.
12314         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
12315         before the ashr<mode>3 pattern.
12317         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
12318         v instead of x in vex or maybe_vex alternatives, use
12319         maybe_evex instead of vex in prefix.
12321         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
12322         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
12323         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
12324         in vex or maybe_vex alternatives, use maybe_evex instead of vex
12325         in prefix.
12327         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
12328         v instead of x in vex or maybe_vex alternatives, use
12329         maybe_evex instead of vex in prefix.
12331         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
12332         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
12333         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
12334         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
12335         alternatives, use maybe_evex instead of vex in prefix.
12337         * config/i386/sse.md (vec_interleave_lowv4sf,
12338         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
12339         v instead of x in vex or maybe_vex alternatives, use
12340         maybe_evex instead of vex in prefix.
12342         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
12343         v instead of x in vex or maybe_vex alternatives, use
12344         maybe_evex instead of vex in prefix.
12346         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
12347         v constraint instead of x.
12349 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
12351         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
12352         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
12353         equality first.
12355 2016-05-06  Richard Biener  <rguenther@suse.de>
12357         PR tree-optimization/70948
12358         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12359         Properly clobber all fields of va_list for __builtin_va_start.
12361 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
12363         PR debug/70935
12364         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
12365         loop latch destination.
12367 2016-05-06  Martin Liska  <mliska@suse.cz>
12369         * tree-ssa-uninit.c: Apply manual changes
12370         to the GNU coding style.
12371         (prune_uninit_phi_opnds): Rename from
12372         prune_uninit_phi_opnds_in_unrealizable_paths.
12374 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12376         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
12377         mspace): Remove deprecated options.
12378         * doc/invoke.texi (SH options): Remove -mspace.
12380 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12382         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
12384 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12386         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
12387         corresponding combine split pattern.
12389 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12391         PR target/58219
12392         * config/sh/predicates.md (long_displacement_mem_operand): New.
12393         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
12394         Add movi20, movi20s alternatives.  Adjust length attribute for
12395         alternatives.
12396         (movsi_ie): Allow for any FPU.  Adjust length attribute for
12397         alternatives.
12398         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
12399         attribute for alternatives.
12400         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
12401         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
12402         length attribute for alternatives.
12404 2016-05-06  Richard Biener  <rguenther@suse.de>
12406         PR tree-optimization/70960
12407         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
12409 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12411         PR target/52933
12412         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
12413         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
12415 2016-05-06  Marek Polacek  <polacek@redhat.com>
12417         PR sanitizer/70875
12418         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
12420 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
12422         PR target/54089
12423         * config/sh/sh.md (*rotcr): Add another variant.
12425 2016-05-06  Richard Biener  <rguenther@suse.de>
12427         PR middle-end/70931
12428         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
12430 2016-05-06  Richard Biener  <rguenther@suse.de>
12432         PR middle-end/70941
12433         * fold-const.c (split_tree): Always convert to the original type
12434         before negating.
12436 2016-05-06  Richard Biener  <rguenther@suse.de>
12438         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
12439         (fwprop_addr): Likewise.
12441 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
12443         PR target/70873
12444         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
12445         New prototype.
12446         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
12447         * config/i386/i386.md (push mem splitter): Use find_constant_src in
12448         the splitter condition.
12449         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
12450         the splitter condition.
12451         (FP float_extend load splitter): Ditto.
12453 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
12455         * config/i386/i386.md (peehole2 patterns): Change true_regnum
12456         to REGNO in all peephole2 patterns.
12457         (post-reload splitters): Change true_regnum to REGNO in
12458         post-reload splitters.
12459         (zero_extend splitters): Use general_reg_operand and
12460         nonimmediate_gr_operand predicates.
12462 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
12464         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
12465         v constraint instead of x.
12467 2016-05-05  Alan Modra  <amodra@gmail.com>
12469         PR target/68662
12470         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
12471         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
12472         TARGET_NO_FP_IN_TOC for -mrelocatable.
12473         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
12474         TARGET_RELOCATABLE test.
12475         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12476         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12477         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12478         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12479         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12480         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12481         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12482         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12483         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
12484         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12485         Likewise.
12486         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
12487         (rs6000_stack_info): Likewise.
12488         (rs6000_elf_asm_out_constructor): Likewise.
12489         (rs6000_elf_asm_out_destructor): Likewise.
12490         (rs6000_elf_declare_function_name): Likewise.
12491         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
12492         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
12493         Don't define.
12495 2016-05-05  Alan Modra  <amodra@gmail.com>
12497         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
12499 2016-05-05  Alan Modra  <amodra@gmail.com>
12501         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
12502         out-of-line gpr restore for one or two regs if that would add
12503         a save of lr.
12505 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
12507         PR target/70873
12508         * config/i386/i386.md
12509         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
12510         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
12511         as operand 0 predicate.
12512         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
12513         Ditto.
12514         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
12515         Ditto.  Emit the pattern using RTX.
12517         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
12518         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
12519         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
12520         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
12521         Ditto.
12522         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
12523         sse_reg_operand as operand 0 predicate.
12525         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
12526         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
12527         instead of gen_rtx_REG.
12528         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
12529         Ditto.
12531 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
12533         * function.c (emit_use_return_register_into_block): Delete.
12534         (gen_return_pattern): Delete.
12535         (emit_return_into_block): Delete.
12536         (active_insn_between): Delete.
12537         (convert_jumps_to_returns): Delete.
12538         (emit_return_for_exit): Delete.
12539         (thread_prologue_and_epilogue_insns): Delete all code dealing with
12540         simple_return for shrink-wrapped blocks.
12541         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
12542         end of blocks that need one.
12543         (get_unconverted_simple_return): Delete.
12544         (convert_to_simple_return): Delete.
12545         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
12546         (convert_to_simple_return): Ditto.
12548 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
12550         * cfgcleanup.c (bb_is_just_return): New function.
12551         (try_optimize_cfg): Simplify jumps to return, branches to return,
12552         and branches around return.
12554 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
12556         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
12557         branch to a return.
12559 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
12561         PR c++/70906
12562         PR c++/70933
12563         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
12564         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
12565         assert flags & OEP_HASH_CHECK, instead of asserting it
12566         never happens.  Handle TARGET_EXPR.
12567         * fold-const.c (operand_equal_p): For hash verification,
12568         or in OEP_HASH_CHECK into flags.
12570 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
12572         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
12573         comment.
12574         (compute_samebase_partition_bases): Fix typo.
12576 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
12578         * config/i386/sse.md (vec_interleave_highv8sf,
12579         vec_interleave_lowv8sf, vec_interleave_highv4df,
12580         vec_interleave_lowv4df): Remove constraints from expanders.
12582         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
12584 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
12586         * tree-inline.c (expand_call_inline): Fix path dealing with
12587         making lhs of call statement undefined.
12589 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
12591         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
12592         Check availability on NODE, too.
12593         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
12594         (cgraph_node::call_for_symbol_and_aliases): Likewise.
12595         (varpool_node::call_for_symbol_and_aliase): Likewise.
12596         * ipa-pure-const.c (add_new_function): Analyze all bodies.
12597         (propagate_pure_const): Propagate across interposable functions, too.
12598         (skip_function_for_local_pure_const): Do not skip interposable bodies
12599         with aliases.
12600         (pass_local_pure_const::execute): Update.
12602 2016-05-04  Marek Polacek  <polacek@redhat.com>
12604         * doc/invoke.texi: Document -Wdangling-else.
12606 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12608         * config.gcc: Error out when conflicting multilib is detected.  Do not
12609         loop over multilibs since no combination is legal.
12611 2016-05-04  Alan Modra  <amodra@gmail.com>
12613         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
12614         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
12615         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12616         Align .toc.
12618 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
12620         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
12621         Clean up p5600 comments.
12623 2016-05-04  Richard Biener  <rguenther@suse.de>
12625         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
12626         constructor simplifications.
12627         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
12629 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
12631         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
12632         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
12633         result.set_rtx is null instead of aborting.
12634         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
12635         Always enable.
12636         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
12637         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
12638         *mov<mode>_store_postinc): New patterns.
12640 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
12642         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
12643         as commutative.  Check both conversions are NOP.
12644         ((A & B) OP (C & B)): Remove.
12646 2016-05-04  Alan Modra  <amodra@gmail.com>
12648         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
12650 2016-05-04  Alan Modra  <amodra@gmail.com>
12652         PR target/70866
12653         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
12654         when cr2,3,4 are all fixed regs.
12656 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
12658         PR rtl-optimization/57193
12659         * opts.c (default_options_table): Revert OPT_frename_registers change.
12660         * doc/invoke.texi (-frename-registers, -O2): Likewise.
12662 2016-05-03  Martin Sebor  <msebor@redhat.com>
12664         PR c++/66561
12665         * builtins.c (fold_builtin_FILE): New function.
12666         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
12667         (fold_builtin_0): Call them.
12668         * gimplify.c (gimplify_call_expr): Remove the handling of
12669         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
12671         PR c++/66561
12672         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
12673         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
12674         constants.
12676         PR c++/66639
12677         * doc/extend.texi (Function Names as Strings): Update __func__,
12678         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
12679         constants.
12681 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
12682             Richard Biener  <rguenther@suse.de>
12684         PR tree-optimization/70916
12685         * tree-if-conv.c: Include cfganal.h.
12686         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
12687         and remove_fake_exit_edges around the optimization pass.
12689 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
12691         * cgraph.c (symbol_table::create_edge): Set inline_failed.
12692         (cgraph_edge::make_direct): Likewise.
12693         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
12694         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
12695         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
12696         (CIF_THUNK): New code.
12697         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
12698         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
12699         (compute_inline_parameters): Set inline_failed for thunks.
12700         (inline_analyze_function): Cleanup.
12701         * ipa-inline.c (can_inline_edge_p): Do not deal with
12702         call_stmt_cannot_inline_p.
12703         (can_early_inline_edge_p): Likewise.
12704         (early_inliner): Initialize inline_failed.
12705         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
12707 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
12709         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
12710         from nonimm_ssenomem_operand.
12711         (nonimm_ssenomem_operand): New predicate.
12712         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
12713         as operand 0 predicate.
12714         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
12715         Disable unsupported alternatives using "enabled" attribute.
12716         Use register_ssemem_operand as operand 0 predicate.
12717         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
12719 2016-05-03  Marek Polacek  <polacek@redhat.com>
12721         PR c/70859
12722         * input.c (expansion_point_location): New function.
12723         * input.h (expansion_point_location): Declare.
12725 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
12727         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
12728         occurence with frame_offset_ ones.
12730 2016-05-03  Alan Modra  <amodra@gmail.com>
12732         PR rtl-optimization/70890
12733         * ira.c (combine_and_move_insns): When moving def_insn, remove
12734         equivs on use_insn.
12736 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12738         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
12739         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
12740         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
12741         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
12743 2016-05-03  Alan Modra  <amodra@gmail.com>
12745         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
12746         for SAVE_MULTIPLE/STORE_MULTIPLE.
12748 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
12750         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
12751         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
12753 2016-05-03  Richard Biener  <rguenther@suse.de>
12755         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
12756         default true.
12757         (gimplify_arg): Likewise.
12758         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
12759         re-writing the result to a decl if required.
12760         (internal_get_tmp_var): Add allow_ssa parameter
12761         and override into_ssa with it.
12762         (get_formal_tmp_var): Adjust.
12763         (get_initialized_tmp_var): Add allow_ssa parameter.
12764         (gimplify_arg): Add allow_ssa parameter and avoid generating
12765         SSA names for the result false.
12766         (gimplify_call_expr): If the call may return twice do not
12767         gimplify parameters into SSA.
12768         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
12769         (gimplify_modify_expr): Adjust assert.  For noreturn calls
12770         with a SSA name LHS adjust its def.
12771         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
12772         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
12773         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
12774         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
12775         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
12776         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
12777         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
12778         (optimize_target_teams): Do not allow SSA names for clause operands.
12779         (gimplify_expr): Likewise for where we mark the result addressable.
12780         * passes.def (pass_init_datastructures): Remove.
12781         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
12782         (rewrite_stmt): Likewise.
12783         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
12784         (replace_locals_op): Replace SSA names.
12785         (copy_gimple_seq_and_replace_locals): Init src_cfun.
12786         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
12787         * cgraph.c (release_function_body): Free CFG annotations only
12788         when we have a CFG.  Simplify.
12789         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
12790         force_gimple_operand instead of get_initialized_tmp_var.
12791         * tree-pass.h (make_pass_init_datastructures): Remove.
12792         * tree-ssa.c (execute_init_datastructures): Remove.
12793         (pass_data_init_datastructures): Likewise.
12794         (class pass_init_datastructures): Likewise.
12795         (make_pass_init_datastructures): Likewise.
12796         * omp-low.c (create_omp_child_function): Init SSA data structures.
12797         (grid_expand_target_grid_body): Likewise.
12798         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
12799         name before adding it to names_to_release.
12800         (remove_bb): Always release SSA defs.
12801         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
12802         before dereferencing it.
12803         * cgraphunit.c (init_lowered_empty_function): Always
12804         int SSA data structures.
12805         * tree-ssanames.c (release_defs): Remove assert that we are in
12806         SSA form.
12807         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
12809 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
12810             Uros Bizjak  <ubizjak@gmail.com>
12812         PR rtl-optimization/70467
12813         * config/i386/predicates.md (x86_64_hilo_int_operand,
12814         x86_64_hilo_general_operand): New predicates.
12815         * config/i386/constraints.md (Wd): New constraint.
12816         * config/i386/i386.md (mode attr di): Use Wd instead of e.
12817         (general_hilo_operand): New mode attr.
12818         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
12819         instead of <general_operand>.
12820         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
12821         x86_64_hilo_general_operand instead of <general_operand>.
12823 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
12825         PR tree-optimization/70916
12826         * tree-if-conv.c (constant_or_ssa_name): Removed.
12827         (fold_build_cond_expr): Use is_gimple_val instead of
12828         constant_or_ssa_name.
12830         PR tree-optimization/70916
12831         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
12832         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
12834         PR target/49244
12835         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
12836         (optimize_atomic_bit_test_and): New function.
12837         (pass_fold_builtins::execute): Use it.
12838         * optabs.def (atomic_bit_test_and_set_optab,
12839         atomic_bit_test_and_complement_optab,
12840         atomic_bit_test_and_reset_optab): New optabs.
12841         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
12842         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
12843         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
12844         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
12845         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
12846         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
12847         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
12848         * doc/md.texi (atomic_bit_test_and_set@var{mode},
12849         atomic_bit_test_and_complement@var{mode},
12850         atomic_bit_test_and_reset@var{mode}): Document.
12851         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
12852         atomic_bit_test_and_complement<mode>,
12853         atomic_bit_test_and_reset<mode>): New expanders.
12854         (atomic_bit_test_and_set<mode>_1,
12855         atomic_bit_test_and_complement<mode>_1,
12856         atomic_bit_test_and_reset<mode>_1): New insns.
12858 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
12860         PR rtl-optimization/70687
12861         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
12862         instead of unsigned HOST_WIDE_INT.
12864 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
12866         PR rtl-optimization/44281
12867         * hard-reg-set.h (struct target_hard_regs): New field
12868         x_fixed_nonglobal_reg_set.
12869         (fixed_nonglobal_reg_set): New macro.
12870         * reginfo.c (init_reg_sets_1): Initialize it.
12871         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
12872         of fixed_reg_set.
12873         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
12875 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
12877         PR tree-optimization/56541
12878         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
12879         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
12880         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
12881         (any_complicated_phi): new static variable.
12882         (aggressive_if_conv): delete.
12883         (if_convertible_phi_p): support phis with more than two arguments.
12884         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
12885         critical pred edges.
12886         (ifcvt_split_critical_edges): support phis with more than two
12887         arguments by checking new parameter.  only split critical edges
12888         if needed.
12889         (tree_if_conversion): handle simd pragma marked loop using new
12890         local variable aggressive_if_conv.  check any_complicated_phi.
12892 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
12894         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
12895         before using it.
12897 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
12899         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
12900         cbase.
12902 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
12904         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
12905         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
12906         define_insn_and_split.
12907         (mulsi3_i): New define_insn_and_split.
12908         (mulsi3_call): Convert to define_insn.
12909         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
12910         Remove constraints.
12912 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12914         * machmode.h (mode_complex): Add support to give the complex mode
12915         for a given mode.
12916         (GET_MODE_COMPLEX_MODE): Likewise.
12917         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
12918         stored by build_complex_type and gfc_build_complex_type instead of
12919         trying to figure out the appropriate mode based on the size. Raise
12920         an assertion error, if the type was not set.
12921         * genmodes.c (struct mode_data): Add field for the complex type of
12922         the given type.
12923         (blank_mode): Likewise.
12924         (make_complex_modes): Remember the complex mode created in the
12925         base type.
12926         (emit_mode_complex): Write out the mode_complex array to map a
12927         type mode to the complex version.
12928         (emit_insn_modes_c): Likewise.
12929         * tree.c (build_complex_type): Set the complex type to use before
12930         calling layout_type.
12931         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
12932         support for __float128 complex datatypes.
12933         (rs6000_hard_regno_mode_ok): Likewise.
12934         (rs6000_setup_reg_addr_masks): Likewise.
12935         (rs6000_complex_function_value): Likewise.
12936         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
12937         __float128 and __ibm128 complex.
12938         (FLOAT128_IBM_P): Likewise.
12939         (ALTIVEC_ARG_MAX_RETURN): Likewise.
12940         * doc/extend.texi (Additional Floating Types): Document that
12941         -mfloat128 must be used to enable __float128.  Document complex
12942         __float128 and __ibm128 support.
12944 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
12946         PR target/49244
12947         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
12948         char/short arguments promoted to int because of promote_prototypes.
12950 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
12952         * config/i386/predicates.md (register_ssemem_operand): New predicate.
12953         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
12954         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
12955         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
12956         alternatives using "enabled" attribute.  Use register_ssemem_operand
12957         as operand 1 predicate.
12958         (*cmpi<unord>xf_i387): Split XFmode pattern from
12959         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
12960         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
12961         *absneg<mode>2_i387.  Disable unsupported alternatives using
12962         "enabled" attribute.
12963         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
12965 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
12967         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
12968         marker.
12969         (oacc_loop_process): Check mask for loop termination.
12971 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
12973         * cif-code.def (CIF_THUNK): Add.
12974         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
12975         accidental change.
12977 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
12979         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
12980         (dump_inline_summary): Dump it.
12981         (fp_expression_p): New predicate.
12982         (estimate_function_body_sizes): Use it.
12983         (inline_merge_summary): Merge fp_expressions.
12984         (inline_read_section): Read fp_expressions.
12985         (inline_write_summary): Write fp_expressions.
12986         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
12987         codegen boundary if either caller or callee is !fp_expressions.
12988         * ipa-inline.h (inline_summary): Add fp_expressions.
12989         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
12990         to fp_expressions be sure the fp generation flags are updated.
12992 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
12994         PR rtl-optimization/70467
12995         * cse.c (cse_insn): Handle no-op MEM moves after folding.
12997         PR rtl-optimization/70467
12998         * ipa-pure-const.c (check_call): Handle internal calls even in
12999         ipa mode like in local mode.
13001 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13003         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
13005 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
13007         * match.pd (X u< X, X u> X): New transformations.
13009 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
13011         * flag-types.h (enum warn_strict_overflow_code): Move ...
13012         * coretypes.h: ... here.
13013         * fold-const.h (fold_overflow_warning): Declare.
13014         * fold-const.c (fold_overflow_warning): Make non-static.
13015         (fold_comparison): Move the transformation of X +- C1 CMP C2
13016         into X CMP C2 -+ C1 ...
13017         * match.pd: ... here.
13018         * gimple-fold.c (fold_stmt_1): Protect with
13019         fold_defer_overflow_warnings.
13021 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
13023         * omp-low.c (struct oacc_loop): Add 'inner' field.
13024         (new_oacc_loop_raw): Initialize it to zero.
13025         (oacc_loop_fixed_partitions): Initialize it.
13026         (oacc_loop_auto_partitions): Partition outermost loop to outermost
13027         available partitioning.
13029 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
13031         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
13032         register_operand.
13033         (umulsidi3): Likewise.
13034         (indirect_jump): Fix jump instruction assembly patterns.
13036 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
13038         PR target/70860
13039         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
13040         (nvptx_function_value): Assert non-NULL cfun.
13042 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
13044         PR rtl-optimization/70886
13045         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
13047         * cselib.h (rtx_equal_for_cselib_1): Declare.
13048         (rtx_equal_for_cselib_p: New inline function.
13049         * cselib.c (rtx_equal_for_cselib_p): Delete.
13050         (rtx_equal_for_cselib_1): Make public.
13052 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
13054         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
13055         (register_mixssei387nonimm_operand): Remove predicate.
13056         * config/i386/i386.md (*fop_<mode>_comm): Merge from
13057         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
13058         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
13059         for TARGET_MIX_SSE_I387 alternatives.
13060         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
13061         Disable unsupported alternatives using "enabled" attribute.  Use
13062         nonimm_ssenomem_operand as operand 1 predicate.  Also check
13063         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
13065 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
13067         * tree.c (cst_and_fits_in_hwi): Simplify.
13069 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
13071         * tree.h (wi::to_wide): New function.
13072         * expr.c (expand_expr_real_1): Use wi::to_wide.
13073         * fold-const.c (int_const_binop_1): Likewise.
13074         (extract_muldiv_1): Likewise.
13076 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
13078         * wide-int.h: Update offset_int and widest_int documentation.
13079         (WI_SIGNED_SHIFT_RESULT): New macro.
13080         (wi::binary_shift): Define signed_shift_result_type for
13081         shifts on offset_int- and widest_int-like types.
13082         (generic_wide_int): Support <<= and >>= if << and >> are supported.
13083         * tree.h (int_bit_position): Use shift operators instead of wi::
13084          shifts.
13085         * alias.c (adjust_offset_for_component_ref): Likewise.
13086         * expr.c (get_inner_reference): Likewise.
13087         * fold-const.c (fold_comparison): Likewise.
13088         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
13089         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
13090         * tree-dfa.c (get_ref_base_and_extent): Likewise.
13091         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13092         (stmt_kills_ref_p): Likewise.
13093         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
13094         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
13095         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13096         (ao_ref_init_from_vn_reference): Likewise.
13098 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
13100         * wide-int.h: Update offset_int and widest_int documentation.
13101         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
13102         (wi::binary_traits): Allow ordered comparisons between offset_int and
13103         offset_int, between widest_int and widest_int, and between either
13104         of these types and basic C types.
13105         (operator <, <=, >, >=): Define for the same combinations.
13106         * tree.h (tree_int_cst_lt): Use comparison operators instead
13107         of wi:: comparisons.
13108         (tree_int_cst_le): Likewise.
13109         * gimple-fold.c (fold_array_ctor_reference): Likewise.
13110         (fold_nonarray_ctor_reference): Likewise.
13111         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
13112         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
13113         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
13114         * tree-sra.c (completely_scalarize): Likewise.
13115         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
13116         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
13117         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
13118         (check_for_binary_op_overflow): Likewise.
13119         (search_for_addr_array): Likewise.
13120         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
13122 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
13124         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
13125         (arc_save_restore): Likewise.
13126         (arc_dwarf_register_span): Likewise.
13127         (arc_output_pic_addr_const): Initialize suffix variable.
13129 2016-05-02  Martin Liska  <mliska@suse.cz>
13131         * symbol-summary.h (function_summary::function_summary):
13132         Remove checking assert for all cgraph nodes.
13133         (function_summary::get): Check summary_uid.
13134         (symtab_insertion): Check summary_uid.
13136 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
13138         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
13139         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
13140         bmaskn instruction.
13141         (arc_dwarf_register_span): Remove enum keyword.
13142         (compact_memory_operand_p): New function.
13143         * config/arc/arc.h (reg_class): Add code density register classes.
13144         (REG_CLASS_NAMES): Likewise.
13145         (REG_CLASS_CONTENTS): Likewise.
13146         * config/arc/arc.md (*movqi_insn): Add code density instructions.
13147         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
13148         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
13149         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
13150         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
13151         constraints.
13152         (h, Rcd, Rsd, Rzd): New register constraints.
13153         (T): Use compact_memory_operand_p function.
13154         * config/arc/predicates.md (compact_load_memory_operand): Remove.
13156 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
13158         * config/sh/sh.md (*negnegt, *movtt): Remove.
13160 2016-05-02  Marek Polacek  <polacek@redhat.com>
13161             Tom de Vries  <tom@codesourcery.com>
13163         PR tree-optimization/70700
13164         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
13165         bigger than FIRST_REF_NODE.
13167 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
13169         PR target/52898
13170         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
13171         TARGET_CMPEQDI_T.
13172         (prepare_cbranch_operands): Don't use scratch register.  Assume that
13173         function is used when pseudos can be created.
13174         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
13175         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
13176         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
13177         define_expand.  Allow it only when pseudos can be created.
13178         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
13180 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
13182         * config/i386/constraints.md (BC): Only allow -1 operands.
13183         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
13184         Add "enabled" attribute.  Update XI mode attribute calculation.
13185         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
13186         (*movoi_internal_avx): Update XI mode attribute calculation.
13187         (*movti_internal): Ditto.
13189 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
13191         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
13192         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
13194 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
13196         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
13197         statement on instruction code.  Remove trailing spaces.
13198         (altivec_expand_stv_builtin): Likewise.
13200 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
13202         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
13203         (TARGET_FPU_DOUBLE): Simplify.
13204         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
13205         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
13206         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
13207         with 'TARGET_FPU_DOUBLE'.
13208         * config/sh/sh.md: Likewise.
13210 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
13212         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
13213         SH_DIV_STR_FOR_SIZE): Remove.
13214         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
13215         SH_DIV_STR_FOR_SIZE): Remove.
13217 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
13219         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
13220         logical_reg_operand): Delete.
13221         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
13222         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
13223         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
13224         match_operand and match_test.
13225         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
13226         variables on their first use.  Return bool values.
13227         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
13228         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
13229         arith_reg_operand for input operand.  Remove empty constraints.
13230         (xorsi3): Delete.
13231         (*xorsi3_compact): Rename to xorsi3.
13232         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
13233         (*zero_extend<mode>si2_disp_mem): Update comment.
13234         (mov_nop): Delete.
13236 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
13238         * config/sh/t-sh: Remove SH5 support.
13239         * config.gcc: Likewise.
13240         * configure: Likewise.
13242 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13244         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
13246 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
13248         * config/sh/sh.c (register_sh_passes, sh_option_override,
13249         sh_print_operand, prepare_move_operands,
13250         sh_can_follow_jump): Remove TARGET_SH1 checks.
13251         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
13252         PROMOTE_MODE): Likewise.
13253         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
13254         movdi): Likewise.
13256 2016-04-30  Alan Modra  <amodra@gmail.com>
13258         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
13259         restoring when fixed_reg_p, but allow out-of-line or stmw save.
13260         Check for user regs later to avoid unnecessary looping over regs.
13261         Merge user reg check with non-saved reg check.  Don't force
13262         inline VR restore when static chain used.
13263         (rs6000_frame_related): Omit eh_frame info for user regs when
13264         saving.
13265         (fixed_regs_p): Delete.
13267 2016-04-30  Alan Modra  <amodra@gmail.com>
13269         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
13270         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
13271         Update all uses.
13273 2016-04-30  Alan Modra  <amodra@gmail.com>
13275         PR target/69645
13276         * config/rs6000/rs6000.c (fixed_reg_p): New function.
13277         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
13278         Update all uses.
13280 2016-04-30  Alan Modra  <amodra@gmail.com>
13282         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
13283         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
13284         flag_pic test for Darwin.
13286 2016-04-30  Alan Modra  <amodra@gmail.com>
13288         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
13289         throw_calls_crossed.
13290         (REG_FREQ_CALLS_CROSSED): Delete.
13291         (REG_N_THROWING_CALLS_CROSSED): Delete.
13292         * regstat.c (regstat_bb_compute_ri): Don't calculate
13293         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
13294         (dump_reg_info): Don't print call cross frequency.
13295         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
13296         and REG_N_THROWING_CALLS_CROSSED.
13298 2016-04-30  Alan Modra  <amodra@gmail.com>
13300         * regs.h (struct reg_info_t): Delete live_length.
13301         (REG_LIVE_LENGTH): Delete macro.
13302         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
13303         local_live, local_processed and local_live_last_luid params.
13304         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
13305         Formatting fixes.
13306         (regstat_compute_ri): Adjust for above.  Don't set
13307         REG_LIVE_LENGTH.
13308         (dump_reg_info): Don't print live length.
13309         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
13310         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
13311         Localize loop_depth var.
13313 2016-04-30  Alan Modra  <amodra@gmail.com>
13315         * ira.c (enum valid_equiv): New.
13316         (validate_equiv_mem): Return enum.
13317         (update_equiv_mem): Create replacement in more cases.
13318         (add_store_equivs): Update validate_equiv_mem call.
13320 2016-04-30  Alan Modra  <amodra@gmail.com>
13322         * ira.c (combine_and_move_insns): Rather than scanning insns,
13323         use DF infrastucture to find use and def insns.
13325 2016-04-30  Alan Modra  <amodra@gmail.com>
13327         ira.c (combine_and_move_insns): Move invariant conditions..
13328         (ira.c): ..to here.  Call combine_and_move_insns before
13329         add_store_equivs.  Call grow_reg_equivs later.  Allocate
13330         req_equiv later using max_reg_num() rather than global max_regno.
13331         (contains_replace_regs): Delete.
13332         (add_store_equivs): Remove contains_replace_regs test.
13334 2016-04-30  Alan Modra  <amodra@gmail.com>
13336         * ira.c (struct equiv_mem_data): New.
13337         (equiv_mem, equiv_mem_modified): Delete static vars.
13338         (validate_equiv_mem_from_store): Use "data" param to communicate..
13339         (validate_equiv_mem): ..from here.
13341 2016-04-30  Alan Modra  <amodra@gmail.com>
13343         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
13344         split out from..
13345         (update_reg_equivs): ..here.  Move allocation and freeing of
13346         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
13347         end_alias_analysis to..
13348         (ira): ..here.
13350 2016-04-30  Alan Modra  <amodra@gmail.com>
13352         * ira.c (pdx_subregs): Delete.
13353         (struct equivalence): Add pdx_subregs field.
13354         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
13355         pdx_subregs access.
13356         (update_equiv_regs): Don't create or free pdx_subregs.  Update
13357         pdx_subregs access.
13359 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13361         * config/rs6000/altivec.h: Change definitions of vec_xl and
13362         vec_xst.
13363         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
13364         (LD_ELEMREV_V2DI): New.
13365         (LD_ELEMREV_V4SF): New.
13366         (LD_ELEMREV_V4SI): New.
13367         (LD_ELEMREV_V8HI): New.
13368         (LD_ELEMREV_V16QI): New.
13369         (ST_ELEMREV_V2DF): New.
13370         (ST_ELEMREV_V2DI): New.
13371         (ST_ELEMREV_V4SF): New.
13372         (ST_ELEMREV_V4SI): New.
13373         (ST_ELEMREV_V8HI): New.
13374         (ST_ELEMREV_V16QI): New.
13375         (XL): New.
13376         (XST): New.
13377         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13378         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
13379         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
13380         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
13381         (altivec_expand_builtin): Add handling for
13382         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
13383         (rs6000_invalid_builtin): Add error-checking for
13384         RS6000_BTM_P9_VECTOR.
13385         (altivec_init_builtins): Define builtins used to implement vec_xl
13386         and vec_xst.
13387         (rs6000_builtin_mask_names): Define power9-vector.
13388         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
13389         (RS6000_BTM_P9_VECTOR): Define.
13390         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
13391         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
13392         (vsx_ld_elemrev_v2df): Likewise.
13393         (vsx_ld_elemrev_v4sf): Likewise.
13394         (vsx_ld_elemrev_v4si): Likewise.
13395         (vsx_ld_elemrev_v8hi): Likewise.
13396         (vsx_ld_elemrev_v16qi): Likewise.
13397         (vsx_st_elemrev_v2df): Likewise.
13398         (vsx_st_elemrev_v2di): Likewise.
13399         (vsx_st_elemrev_v4sf): Likewise.
13400         (vsx_st_elemrev_v4si): Likewise.
13401         (vsx_st_elemrev_v8hi): Likewise.
13402         (vsx_st_elemrev_v16qi): Likewise.
13403         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
13404         grammar.
13406 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
13408         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
13409         out into ...
13410         (simplify_control_stmt_condition_1): ... here.  Recurse into
13411         BIT_AND_EXPRs and BIT_IOR_EXPRs.
13413 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
13415         PR target/69810
13416         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
13417         (zero_extendqi<mode>2_dot): Revert earlier conversion from
13418         define_insn_and_split to define_insn.
13419         (zero_extendqi<mode>2_dot2): Same.
13420         (extendqi<mode>2_dot): Same.
13421         (extendqi<mode>2_dot2): Same.
13423 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
13425         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
13426         (probe_stack): New expander.
13427         (probe_stack_<mode>): New insn pattern.
13429 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
13431         * config/i386/i386.md
13432         (operations with memory inputs setting flags peephole2):
13433         Remove uneeded REG_P checks.  Cleanup pattern generation.
13435 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
13437         * tree-vect-loop.c (vect_transform_loop): Fix
13438         nb_iterations_upper_bound computation for vectorized loop.
13440 2016-04-29  Marek Polacek  <polacek@redhat.com>
13441             Jakub Jelinek  <jakub@redhat.com>
13443         PR sanitizer/70342
13444         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
13445         TARGET_EXPR_SLOT as a base.
13447 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
13449         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
13450         with 'rCm2' constraints to limit possible immediate size.
13451         (*load_zeroextendqisi_update): Likewise.
13452         (*load_signextendqisi_update): Likewise.
13453         (*loadhi_update): Likewise.
13454         (*load_zeroextendhisi_update): Likewise.
13455         (*load_signextendhisi_update): Likewise.
13456         (*loadsi_update): Likewise.
13457         (*loadsf_update): Likewise.
13459 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
13461         * config/i386/predicates.md (constm1_operand): Fix comparison.
13463 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
13465         * testsuite/gcc.target/arc/ieee_eq.c: New test.
13467 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
13469         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
13470         remaining SH5 related settings.
13471         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
13472         shmedia_prepare_call_address): Delete.
13473         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
13474         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
13475         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
13476         UNSUPPORTED_SH2A): Remove m5 checks.
13477         (sh_divide_strategy_e): Remove SH5 division strategies.
13478         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
13479         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
13481 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13483         * config/s390/s390.c (s390_rtx_costs): Update documentation.
13485 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13487         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
13488         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
13489         Change lder to ldr.
13490         * config/s390/vector.md ("mov<mode>"): Likewise.
13492 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
13494         * config/s390/constraints.md ("U", "W"): Invoke
13495         s390_mem_constraint with "ZR" and "ZT".
13496         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
13497         addresses when using LRA.  Accept also short displacements for S
13498         and T constraints.  Do not check for long displacement target for
13499         S and T constraints.
13500         (s390_mem_constraint): Remove handling of U and W constraints.
13501         * config/s390/s390.md (various patterns): Remove the short
13502         displacement constraints (Q and R) if a long displacement
13503         constraint is present.  Add longdisp as required CPU capability.
13504         * config/s390/vector.md: Likewise.
13505         * config/s390/vx-builtins.md: Likewise.
13507 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13509         PR target/60040
13510         * reload1.c (reload): Call finish_spills before
13511         restarting reload loop. Skip select_reload_regs
13512         if update_eliminables_and_spill returns true.
13514 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
13516         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
13517         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
13518         (umulhisi3_imm): Update predicates and constraint letters.
13519         (umulhisi3_reg): Declare instruction as commutative.
13520         * config/arc/constraints.md (J12, J16): New constraints.
13521         * config/arc/predicates.md (short_unsigned_const_operand): New
13522         predicate.
13523         (arc_short_operand): Likewise.
13524         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
13526 2016-04-29  Richard Biener  <rguenther@suse.de>
13528         PR tree-optimization/13962
13529         PR tree-optimization/65686
13530         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
13531         * tree-ssa-alias.c (ptrs_compare_unequal): New function
13532         using PTA to compare pointers.
13533         * match.pd: Add pattern for pointer equality compare simplification
13534         using ptrs_compare_unequal.
13536 2016-04-29  Richard Biener  <rguenther@suse.de>
13538         * stor-layout.c (layout_type): Do not build a pointer-to-element
13539         type for arrays.
13541 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
13543         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
13544         Use SWI mode iterator.  Use general_reg_operand predicate.
13545         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
13546         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
13547         predicates.
13549 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
13551         PR middle-end/70843
13552         * fold-const.c (operand_equal_p): Don't verify hash value equality
13553         if arg0 == arg1.
13554         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
13555         and OMP_CLAUSE.
13557 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
13559         PR target/70858
13560         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
13561         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
13562         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
13563         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
13564         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
13566 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
13568         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
13569         to info.  Don't initialize separate fields to 0.  Clean up
13570         formatting a bit.
13572 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
13574         * config/i386/i386.md (peephole2s for operations with memory inputs):
13575         Use SWI mode iterator.
13576         (peephole2s for operations with memory outputs): Ditto.
13577         Do not check for stack checking probe.
13579         (probe_stack): Remove expander.
13581 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
13582             Andrew Burgess  <andrew.burgess@embecosm.com>
13584         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
13585         operands as 32-bits.
13587 2016-04-28  Jason Merrill  <jason@redhat.com>
13589         * gdbinit.in: Skip line-map.h.
13591 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
13592             Andrew Burgess  <andrew.burgess@embecosm.com>
13594         * config/arc/arc.c (arc_conditional_register_usage): Take
13595         TARGET_RRQ_CLASS into account.
13596         (arc_print_operand): Support printing 'p' and 's' operands.
13597         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
13598         as 0.
13599         (TARGET_RRQ_CLASS): Define.
13600         (IS_POWEROF2_OR_0_P): Define.
13601         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
13602         alternatives.
13603         (*tst_movb): New define_insn.
13604         (*tst): Avoid recognition if it could prevent '*tst_movb'
13605         combination; replace c/CnL with c/Chs alternative.
13606         (*tst_bitfield_tst): New define_insn.
13607         (*tst_bitfield_asr): New define_insn.
13608         (*tst_bitfield): New define_insn.
13609         (andsi3_i): Add Rrq variant.
13610         (extzv): New define_expand.
13611         (insv): New define_expand.
13612         (*insv_i): New define_insn.
13613         (*movb): New define_insn.
13614         (*movb_signed): New define_insn.
13615         (*movb_high): New define_insn.
13616         (*movb_high_signed): New define_insn.
13617         (*movb_high_signed + 1): New define_split pattern.
13618         (*mrgb): New define_insn.
13619         (*mrgb + 1): New define_peephole2 pattern.
13620         (*mrgb + 2): New define_peephole2 pattern.
13621         * config/arc/arc.opt (mbitops): New option for nps400, uses
13622         TARGET_NPS_BITOPS_DEFAULT.
13623         * config/arc/constraints.md (q): Make register class conditional.
13624         (Rrq): New register constraint.
13625         (Chs): New constraint.
13626         (Clo): New constraint.
13627         (Chi): New constraint.
13628         (Cbf): New constraint.
13629         (Cbn): New constraint.
13630         (C18): New constraint.
13631         (Cbi): New constraint.
13633 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
13635         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
13636         dst->popcount.
13637         (bitmap_intersection_of_preds): Ditto.
13638         (bitmap_union_of_succs): Ditto.
13639         (bitmap_union_of_preds): Ditto.
13640         * sbitmap.c (do_popcount): Delete.
13641         (BITMAP_DEBUGGING): Delete.
13642         (sbitmap_verify_popcount): Delete.
13643         (sbitmap_alloc): Don't initialize the popcount field.
13644         (sbitmap_alloc_with_popcount): Delete.
13645         (sbitmap_resize): Don't resize the popcount array.
13646         (sbitmap_vector_alloc): Don't initialize the popcount field.
13647         (bitmap_copy): Don't copy the popcount array.
13648         (bitmap_clear): Don't clear the popcount array.
13649         (bitmap_clear): Delete the popcount array handling.
13650         (bitmap_ior_and_compl): Delete the popcount assert.
13651         (bitmap_not): Ditto.
13652         (bitmap_and_compl): Ditto.
13653         (bitmap_and): Delete the popcount array handling.
13654         (bitmap_xor): Ditto.
13655         (bitmap_ior): Ditto.
13656         (bitmap_or_and): Delete the popcount assert.
13657         (bitmap_and_or): Ditto.
13658         (popcount_table): Delete.
13659         (sbitmap_elt_popcount): Delete.
13660         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
13661         (bitmap_set_bit): Delete the popcount assert.
13662         (bitmap_clear_bit): Ditto.
13663         (sbitmap_free): Don't free the popcount array.
13664         (sbitmap_alloc_with_popcount): Delete declaration.
13665         (sbitmap_popcount): Ditto.
13667 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
13668             Andrew Burgess  <andrew.burgess@embecosm.com>
13670         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
13671         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
13672         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
13673         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
13674         * config/arc/arc.opt (mcmem): New option.
13675         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
13676         supply length for r/m alternative.
13677         (*extendqisi2_ac): Likewise.
13678         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
13679         r/Uex alternative.
13680         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
13681         (movhi_insn): Likewise.
13682         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
13683         (*zero_extendqihi2_i): Add r/Ucm alternative.
13684         (*zero_extendqisi2_ac): Likewise.
13685         (*zero_extendhisi2_i): Likewise.
13686         * config/arc/constraints.md (Uex): New memory constraint.
13687         (Ucm): New define_constraint.
13688         * config/arc/predicates.md (long_immediate_loadstore_operand):
13689         Return 0 for MEM with cmem_address address.
13690         (cmem_address_0): New predicates.
13691         (cmem_address_1): Likewise.
13692         (cmem_address_2): Likewise.
13693         (cmem_address): Likewise.
13695 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
13697         * config/rs6000/rs6000.c (machine_function): Rename
13698         insn_chain_scanned_p to spe_insn_chain_scanned_p.
13699         (rs6000_stack_info): Adjust.
13701 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
13702             Andrew Burgess  <andrew.burgess@embecosm.com>
13704         * config/arc/constraints.md (Usd): Convert to define_constraint.
13705         (Us<): Likewise.
13706         (Us>): Likewise.
13708 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
13710         PR target/70821
13711         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
13712         Add new peephole2 where the first insn is *mov<mode>_or instead of
13713         *mov<mode>_internal.
13715 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
13717         * tracer.c (bb_seen): Make static.
13719 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
13721         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
13722         support, setup defaults.
13723         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
13724         * config/arc/arc.c (arc_init): Add NPS400 support.
13725         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
13726         (TARGET_ARC700): NPS400 is also an ARC700.
13727         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
13729 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
13731         PR target/70668
13732         * config/nds32/nds32.md (casesi): Don't access the operands array
13733         out of bounds.
13735 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
13737         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
13738         (or $-1,reg peephole2): Ditto.
13739         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
13741 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
13743         * doc/extend.texi (Common Function Attributes) [optimize]:
13744         Discourage use of the optimize attribute.
13746 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
13748         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
13749         special case builtin.
13750         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
13751         ALTIVEC_BUILTIN_VEC_ADDE.
13752         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13753         support for ALTIVEC_BUILTIN_VEC_ADDE.
13754         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13755         for __builtin_vec_adde.
13757 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
13759         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
13760         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
13762 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13764         PR testsuite/70595
13765         * doc/sourcebuild.texi (Effective-Target Keywords, Other
13766         attributes): Document cilkplus_runtime.
13768 2016-04-28  Martin Jambor  <mjambor@suse.cz>
13770         * tree-cfg.c (verify_expr): Verify that local declarations belong to
13771         this function.  Call verify_expr on MEM_REFs and bases of other
13772         handled_components.
13774 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13776         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
13777         for WORD_REGISTER_OPERATIONS to runtime check.
13779 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
13781         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
13783 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
13785         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
13786         big-endian compilation.
13787         * config/arc/arc.md (addf3): Likewise.
13788         (subdf3): Likewise.
13789         (muldf3): Likewise.
13791 2016-04-28  Richard Biener  <rguenther@suse.de>
13793         PR tree-optimization/70840
13794         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
13795         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
13796         Mark x * pow(x,c) -> pow(x,c+1) commutative.
13797         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
13799 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13801         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
13802         and explain why in a comment.
13804 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
13806         * config/arc/arc.md (cpu_facility): Add fpx variant.
13807         (subdf3): Prohibit use reverse sub when assist operations option
13808         is enabled.
13809         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
13810         instructions only when FPX is enabled.
13811         * testsuite/gcc.target/arc/trsub.c: New test.
13813 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
13815         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
13816         mult_operator when calculating "type" attribute.
13817         (*fop_<mode>_1_i387): Ditto.
13818         (*fop_xf_1_i387): Ditto.
13819         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
13820         Use std::swap to swap operands.  Use RTL expressions to generate
13821         converted pattern.
13823 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
13824             Joern Rennecke  <joern.rennecke@embecosm.com>
13826         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
13827         declaration.
13828         (emit_pic_move): Remove.
13829         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
13830         * config/arc/arc.c (emit_pic_move): Removed.
13831         (TARGET_HAVE_TLS): Define.
13832         (arc_conditional_register_usage): Test for arc_tp_regno.
13833         (arc_print_operand, arc_print_operand_address): Handle TLS
13834         unspecs.
13835         (arc_needs_pcl_p): New function.
13836         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
13837         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
13838         (arc_raw_symbolic_reference_mentioned_p): Likewise.
13839         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
13840         (arc_legitimize_tls_address): Likewise.
13841         (DTPOFF_ZERO_SYM): Define.
13842         (arc_legitimize_pic_address): Make it static, handle TLS cases.
13843         (arc_output_pic_addr_const): Print TLS unspecs.
13844         (prepare_pic_move): New function, replaces emit_pic_move.
13845         (arc_legitimate_constant_p): Handle TLS unspecs.
13846         (arc_legitimate_address_p): Likewise.
13847         (arc_rewrite_small_data_p): Use assert for TLS constants.
13848         (prepare_move_operands): Use prepare_pic_move.
13849         (arc_legitimize_address): Legitimize tls addresses.
13850         (arc_epilogue_uses): Check for arc_tp_regno.
13851         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
13852         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
13853         Define.
13854         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
13855         Likewise.
13856         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
13857         %(arc_tls_extra_start_spec).
13858         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
13859         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
13860         (EH_USES): Define.
13861         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
13862         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
13863         (UNSPEC_TLS_OFF): Add.
13864         (R10_REG): Define.
13865         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
13866         (get_thread_pointersi): New patterns.
13867         * config/arc/arc.opt (mtp-regno): New option.
13868         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
13869         (move_dest_operand): Likewise.
13870         * configure: Regenerate.
13871         * configure.ac: Add arc*-*-* case to test for tls.
13872         * doc/invoke.texi (ARC options): Document mtp-regno.
13874 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
13876         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
13877         the new ARC HS SIMD instructions.
13878         (arc_preferred_simd_mode): New function.
13879         (arc_autovectorize_vector_sizes): Likewise.
13880         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
13881         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
13882         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
13883         (arc_init_builtins): Add new SIMD builtin types.
13884         (arc_split_move): Handle 64 bit vector moves.
13885         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
13886         (TARGET_PLUS_QMACW): Define.
13887         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
13888         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
13889         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
13890         (VSUBADD4H): New builtins.
13891         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
13892         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
13894 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
13895             Matthias Klose  <doko@debian.org>
13897         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
13899 2016-04-28  Richard Biener  <rguenther@suse.de>
13901         PR middle-end/70777
13902         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
13903         canonicalization.
13905 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
13907         * common/config/sh/sh-common.c: Remove SH5 support.
13908         * config/sh/constraints.md: Likewise.
13909         * config/sh/config/sh/elf.h: Likewise.
13910         * config/sh/linux.h: Likewise.
13911         * config/sh/netbsd-elf.h: Likewise.
13912         * config/sh/predicates.md: Likewise.
13913         * config/sh/sh-c.c: Likewise.
13914         * config/sh/sh-protos.h: Likewise.
13915         * config/sh/sh.c: Likewise.
13916         * config/sh/sh.h: Likewise.
13917         * config/sh/sh.md: Likewise.
13918         * config/sh/sh.opt: Likewise.
13919         * config/sh/sync.md: Likewise.
13920         * config/sh/sh64.h: Delete.
13921         * config/sh/shmedia.h: Likewise.
13922         * config/sh/shmedia.md: Likewise.
13923         * config/sh/sshmedia.h: Likewise.
13924         * config/sh/t-netbsd-sh5-64: Likewise.
13925         * config/sh/t-sh64: Likewise.
13926         * config/sh/ushmedia.h: Likewise.
13928 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
13930         * config/i386/i386.md (sign_extend to memory peephole2s): Use
13931         general_reg_operand instead of register_operand predicate.
13933 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13935         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
13937 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
13939         * match.pd (A - B > A, A + B < A): New transformations.
13941 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
13943         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
13944         which defaults to true.  Emit an outer pair of parentheses only if
13945         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
13946         don't emit parentheses for the right-hand operand.
13948 2016-04-27  Jeff Law  <law@redhat.com>
13950         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
13952 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13954         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
13955         (altivec_lvx_<mode>_internal): Document.
13956         (altivec_lvx_<mode>_2op): New define_insn.
13957         (altivec_lvx_<mode>_1op): Likewise.
13958         (altivec_lvx_<mode>_2op_si): Likewise.
13959         (altivec_lvx_<mode>_1op_si): Likewise.
13960         (altivec_stvx_<mode>): Remove.
13961         (altivec_stvx_<mode>_internal): Document.
13962         (altivec_stvx_<mode>_2op): New define_insn.
13963         (altivec_stvx_<mode>_1op): Likewise.
13964         (altivec_stvx_<mode>_2op_si): Likewise.
13965         (altivec_stvx_<mode>_1op_si): Likewise.
13966         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13967         Expand vec_ld and vec_st during parsing.
13968         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
13969         changes.
13970         (altivec_expand_stvx_be): Likewise.
13971         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
13972         address-masking behavior in RTL.
13973         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
13974         address-masking behavior in RTL.
13975         (altivec_expand_builtin): Change builtin code arguments for calls
13976         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
13977         (insn_is_swappable_p): Avoid incorrect swap optimization in the
13978         presence of lvx/stvx patterns.
13979         (alignment_with_canonical_addr): New function.
13980         (alignment_mask): Likewise.
13981         (find_alignment_op): Likewise.
13982         (recombine_lvx_pattern): Likewise.
13983         (recombine_stvx_pattern): Likewise.
13984         (recombine_lvx_stvx_patterns): Likewise.
13985         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
13986         stvx patterns from expand.
13987         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
13988         expansions.
13989         (vector_altivec_store_<mode>): Likewise.
13991 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
13993         * config/aarch64/aarch64.md
13994         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
13995         remove the "fp" attributes.
13996         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
13997         add the "simd" attributes.
13998         (*movdf_aarch64): Likewise.
13999         (*movtf_aarch64): Remove the "fp" attributes.
14000         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
14001         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
14003 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
14005         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
14006         rtx to rtx_code_label *.
14007         * rtl.h (maybe_set_first_label_num): Likewise.
14009 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
14011         * df-core.c (df_add_problem): Make the problem param be const.
14012         (df_remove_problem): Make local "problem" be const.
14013         * df-problems.c (problem_RD): Make const.
14014         (problem_LR): Likewise.
14015         (problem_LIVE): Likewise.
14016         (problem_MIR): Likewise.
14017         (problem_CHAIN): Likewise.
14018         (problem_WORD_LR): Likewise.
14019         (problem_NOTE): Likewise.
14020         (problem_MD): Likewise.
14021         * df-scan.c (problem_SCAN): Likewise.
14022         * df.h (struct df_problem): Make field "dependent_problem" be
14023         const.
14024         (struct dataflow): Likewise for field "problem".
14025         (df_add_problem): Make param const.
14027 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
14029         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
14030         inter-unit moves to/from vector registers are enabled.  Do not disable
14031         for TARGET_MMX.
14033 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
14035         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
14036         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
14037         #define to...
14038         (enum df_problem_id): ...this new enum.
14039         (struct df_problem): Convert field "id" from "int" to
14040         enum df_problem_id.
14042 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
14044         * rtl.def: Update comment for "things in the instruction chain" to
14045         reflect the removal of the leading "i" field for INSN_UID in
14046         r210360.  Fix bogus apostrophe.
14048 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
14050         * config/i386/i386.md
14051         (lea arith with mem operand + setcc peephole2): Set operator mode.
14053 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
14055         PR target/70155
14056         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
14057         (dimode_scalar_to_vector_candidate_p): This.
14058         (timode_scalar_to_vector_candidate_p): New function.
14059         (scalar_to_vector_candidate_p): Likewise.
14060         (timode_check_non_convertible_regs): Likewise.
14061         (timode_remove_non_convertible_regs): Likewise.
14062         (remove_non_convertible_regs): Likewise.
14063         (remove_non_convertible_regs): Renamed to ...
14064         (dimode_remove_non_convertible_regs): This.
14065         (scalar_chain::~scalar_chain): Make it virtual.
14066         (scalar_chain::compute_convert_gain): Make it pure virtual.
14067         (scalar_chain::mark_dual_mode_def): Likewise.
14068         (scalar_chain::convert_insn): Likewise.
14069         (scalar_chain::convert_registers): Likewise.
14070         (scalar_chain::add_to_queue): Make it protected.
14071         (scalar_chain::emit_conversion_insns): Likewise.
14072         (scalar_chain::replace_with_subreg): Likewise.
14073         (scalar_chain::replace_with_subreg_in_insn): Likewise.
14074         (scalar_chain::convert_op): Likewise.
14075         (scalar_chain::convert_reg): Likewise.
14076         (scalar_chain::make_vector_copies): Likewise.
14077         (scalar_chain::convert_registers): New pure virtual function.
14078         (class dimode_scalar_chain): New class.
14079         (class timode_scalar_chain): Likewise.
14080         (scalar_chain::mark_dual_mode_def): Renamed to ...
14081         (dimode_scalar_chain::mark_dual_mode_def): This.
14082         (timode_scalar_chain::mark_dual_mode_def): New function.
14083         (timode_scalar_chain::convert_insn): Likewise.
14084         (dimode_scalar_chain::convert_registers): Likewise.
14085         (scalar_chain::compute_convert_gain): Renamed to ...
14086         (dimode_scalar_chain::compute_convert_gain): This.
14087         (scalar_chain::replace_with_subreg): Renamed to ...
14088         (dimode_scalar_chain::replace_with_subreg): This.
14089         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
14090         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
14091         (scalar_chain::make_vector_copies): Renamed to ...
14092         (dimode_scalar_chain::make_vector_copies): This.
14093         (scalar_chain::convert_reg): Renamed to ...
14094         (dimode_scalar_chain::convert_reg ): This.
14095         (scalar_chain::convert_op): Renamed to ...
14096         (dimode_scalar_chain::convert_op): This.
14097         (scalar_chain::convert_insn): Renamed to ...
14098         (dimode_scalar_chain::convert_insn): This.
14099         (scalar_chain::convert): Call convert_registers.
14100         (convert_scalars_to_vector): Change to scalar_chain pointer to
14101         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
14102         in 32-bit mode.  Delete scalar_chain pointer.  Call
14103         free_dominance_info in 64-bit mode.
14104         (pass_stv::gate): Remove TARGET_64BIT check.
14105         (ix86_option_override): Put the 64-bit STV pass before the CSE
14106         pass.
14108 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
14110         * dwarf2out.h (struct dw_loc_descr_node): Remove the
14111         dw_loc_frame_offset field.
14112         * dwarf2out.c (new_loc_descr): Likewise.
14113         (resolve_args_picking_1): Turn the VISITED hash set into a
14114         FRAME_OFFSET hash map. Use it to associate a frame offset to
14115         visited nodes. Remove uses of the CHECKING_P macro.
14116         (resolve_args_picking): Update call to resolve_args_picking_1.
14118 2016-04-27  Martin Liska  <mliska@suse.cz>
14120         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
14121         (free_loop_data): Release vuses of groups.
14123 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
14125         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
14126         instead of redundant use_id and boolean have_use_for.
14127         (struct iv_use): Change sub_id into group_id.  Remove field next.
14128         Move fields: related_cands, n_map_members, cost_map and selected
14129         to ...
14130         (struct iv_group): ... here.  New structure.
14131         (struct iv_common_cand): Use structure declaration directly.
14132         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
14133         (MAX_CONSIDERED_USES): Rename macro to ...
14134         (MAX_CONSIDERED_GROUPS): ... here.
14135         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
14136         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
14137         (dump_uses): Rename to ...
14138         (dump_groups): ... here.  Update all uses.
14139         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
14140         (find_induction_variables): Refactor format of dump information.
14141         (record_sub_use): Delete.
14142         (record_use): Update all uses.
14143         (record_group): New function.
14144         (record_group_use, find_interesting_uses_op): Call above functions.
14145         Update all uses.
14146         (find_interesting_uses_cond): Ditto.
14147         (group_compare_offset): New function.
14148         (split_all_small_groups): Rename to ...
14149         (split_small_address_groups_p): ... here.  Update all uses.
14150         (split_address_groups):  Update all uses.
14151         (find_interesting_uses): Refactor format of dump information.
14152         (add_candidate_1): Update all uses.  Remove redundant check on iv,
14153         base and step.
14154         (add_candidate, record_common_cand): Remove redundant assert.
14155         (add_iv_candidate_for_biv): Update use.
14156         (add_iv_candidate_derived_from_uses): Update all uses.
14157         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
14158         (alloc_use_cost_map): Ditto.
14159         (set_use_iv_cost, get_use_iv_cost): Rename to ...
14160         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
14161         (determine_use_iv_cost_generic): Ditto.
14162         (determine_group_iv_cost_generic): Ditto.
14163         (determine_use_iv_cost_address): Ditto.
14164         (determine_group_iv_cost_address): Ditto.
14165         (determine_use_iv_cost_condition): Ditto.
14166         (determine_group_iv_cost_cond): Ditto.
14167         (determine_use_iv_cost): Ditto.
14168         (determine_group_iv_cost): Ditto.
14169         (set_autoinc_for_original_candidates): Update all uses.
14170         (find_iv_candidates): Update all uses.  Refactor dump information.
14171         (determine_use_iv_costs): Ditto.
14172         (determine_iv_costs): Ditto.
14173         (iv_ca_cand_for_use): Rename to ...
14174         (iv_ca_cand_for_group): ... here.  Update all uses.
14175         (iv_ca_add_use, iv_ca_add_group): Ditto.
14176         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
14177         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
14178         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
14179         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
14180         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
14181         (create_new_iv, adjust_iv_update_pos): Ditto.
14182         (rewrite_use_address): Delete.
14183         (rewrite_use_address_1): Rename to ...
14184         (rewrite_use_address): ... here.
14185         (rewrite_use_compare): Update all uses.
14186         (rewrite_use): Delete.
14187         (rewrite_uses): Rename to ...
14188         (rewrite_groups): ... here.  Update all uses.
14189         (remove_unused_ivs, free_loop_data): Update all uses.
14190         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
14192 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14194         * rtlanal.c (nonzero_bits1): Convert preprocessor check
14195         for WORD_REGISTER_OPERATIONS to runtime check.
14197 2016-04-27  Richard Biener  <rguenther@suse.de>
14199         PR ipa/70760
14200         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
14201         aggregate_value_p to determine if a function result is
14202         returned by reference.
14203         (ipa_pta_execute): Functions having their address taken are
14204         not automatically nonlocal.
14206 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
14208         PR sanitizer/70683
14209         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
14210         * fold-const.c (operand_equal_p): If flag_checking and
14211         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
14212         and if it returns non-zero, assert iterative_hash_expr on both
14213         args is the same.
14215 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
14217         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
14219 2016-04-27  Nick Clifton  <nickc@redhat.com>
14221         PR middle-end/49889
14222         * varasm.c (merge_weak): Generate an error if an attempt is made
14223         to convert a non-weak static function into a weak, public function.
14225 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14227         * params.def (MAX_PARTITION_SIZE): New param.
14228         * doc/invoke.texi: Document lto-max-partition.
14230 2016-04-27  Richard Biener  <rguenther@suse.de>
14232         PR ipa/70785
14233         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
14234         function cummulating used_from_other_partition, externally_visible
14235         and force_output from aliases.
14236         (refered_from_nonlocal_var): Likewise.
14237         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
14238         node flags properly.
14240 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
14242         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
14243         (-Wmemset-elt-size): New item.
14245 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
14247         PR ada/70759
14248         * stor-layout.h (internal_reference_types): Delete.
14249         * stor-layout.c (reference_types_internal): Likewise.
14250         (internal_reference_types): Likewise.
14251         (layout_type) <REFERENCE_TYPE>: Adjust.
14253 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
14255         PR sanitizer/70683
14256         * tree.h (inchash::add_expr): Add FLAGS argument.
14257         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
14258         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
14259         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
14260         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
14261         if swap_tree_comparison (code) is smaller than code, hash that
14262         and arguments in the other order.  Hash CONVERT_EXPR the same
14263         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
14264         of ADDR_EXPR of decl as the decl itself.  Add or remove
14265         OEP_ADDRESS_OF from recursive flags as needed.  For
14266         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
14267         operands commutatively and only the third one normally.
14268         For internal CALL_EXPR hash in CALL_EXPR_IFN.
14270 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
14272         * config/rtems.h (LIB_SPEC): Add -latomic.
14274 2016-04-27  Joel Sherrill  <joel@rtems.org>
14276         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
14277         xilink.ld and flags not relevant to RTEMS.
14279 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
14281         * toplev.c (backend_init_target): Avoid calling init_reload when using
14282         LRA.
14284 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
14286         * reorg.c (try_merge_delay_insns): Declare i and j inside the
14287         for loops rather than one for the whole function.
14289 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
14291         * match.pd (X + CST CMP X): New transformation.
14293 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
14295         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
14296         * fold-const.c (fold_binary_loc): Remove 2 transformations
14297         superseded by match.pd.
14298         * match.pd (x+x -> x*2): Generalize to integers.
14300 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
14302         * config/i386/i386.md (operation on memory peephole): Duplicate an
14303         existing peephole and adapt it to match lea rather than an operation
14304         that clobbers CC.
14306         PR rtl-optimization/57193
14307         * opts.c (default_options_table): Add OPT_frename_registers at -O2
14308         and above.
14309         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
14311 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
14313         * tree-if-conv.c (any_pred_load_store): New static variable.
14314         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
14315         any_pred_load_store instead of and_mask_load_store.
14316         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
14317         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
14318         (combine_blocks, tree_if_conversion): Ditto.
14320 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
14322         PR tree-optimization/70771
14323         PR tree-optimization/70775
14324         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
14325         virtual PHI nodes.  Delete parameter.
14326         (if_convertible_loop_p_1): Delete argument to above function.
14327         (predicate_all_scalar_phis): Delete code handling single-argument
14328         PHIs.
14329         (tree_if_conversion): Mark and update virtual SSA.
14331 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14333         PR target/61821
14334         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
14335         (x86_elf_aligned_common): Rename to ...
14336         (x86_elf_aligned_decl_common): ... this.
14337         Add decl arg.  Switch to .lbss for largecomm object.  Use
14338         LARGECOMM_SECTION_ASM_OP.
14339         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
14340         renaming.
14341         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
14342         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
14343         Pass new decl arg.
14344         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14345         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
14347 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14349         PR target/59407
14350         * config/i386/i386.c (SECTION_LARGE): Define.
14351         (x86_64_elf_select_section): Set it for large data/bss sections.
14352         Only clear SECTION_WRITE for .lrodata.
14353         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
14354         data/bss sections.
14355         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
14356         * varasm.c (default_elf_asm_named_section): Grow flagchars.
14357         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
14358         SECTION_MACH_DEP.
14359         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
14360         * doc/tm.texi: Regenerate.
14362 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
14364         PR bootstrap/70704
14365         * configure.ac (--enable-checking): Document extra flag, for
14366         non-release builds default to --enable-checking=yes,extra.
14367         If misc checking and extra checking, define CHECKING_P to 2 instead
14368         of 1.
14369         * common.opt (fchecking=): Add.
14370         * doc/invoke.texi (-fchecking=): Document.
14371         * doc/install.texi: Document --enable-checking changes.
14372         * configure: Regenerated.
14373         * config.in: Regenerated.
14375 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
14377         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
14378         attribute instead of which_alternative.
14379         * config/i386/sse.md (*mov<mode>_internal): Ditto.
14380         Use EXT_REX_SSE_REG_P where appropriate.
14382 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
14384         * config/i386/predicates.md (const0_operand): Do not match
14385         const_wide_int code.
14386         (const1_operand): Ditto.
14388 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
14390         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
14391         for SSE constm1 operands and TARGET_AVX512VL.
14392         (*movti_internal): Ditto.
14393         (*mov<mode>_or): Use constm1_operand predicate.
14394         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
14395         for SSE vector_all_ones operands and TARGET_AVX512VL.
14396         * config/i386/predicates.md (constm1_operand): New predicate.
14397         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
14398         emission of constant -1 load.
14400 2016-04-25  Jason Merrill  <jason@redhat.com>
14402         * gdbinit.in: Skip is-a.h.
14404         * attribs.c (register_scoped_attributes): Fix logic.
14405         * attribs.h: Declare register_scoped_attributes.
14407 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14409         * config/rs6000/rs6000-builtin.def: Correct pasto error for
14410         stxvd2x and stxvw4x built-in functions.
14412 2016-04-25  DJ Delorie  <dj@redhat.com>
14414         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
14415         (ashrhi3): Likewise.
14416         (lshrhi3): Likewise.
14418 2016-04-25  Richard Biener  <rguenther@suse.de>
14420         PR tree-optimization/70780
14421         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
14422         wasn't visited yet.
14423         (compute_antic): Mark blocks with abnormal preds as visited as
14424         they have a final empty antic-in solution already.
14426 2016-04-25  Michael Collison  <michael.collison@linaro.org>
14428         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
14430 2016-04-25  Michael Collison  <michael.collison@linaro.org>
14432         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
14433         mode is VQI to improve mixed mode vectorization.
14434         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
14435         define_insn to match low half of signed vaddw.
14436         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
14437         define_insn to match high half of signed vaddw.
14438         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
14439         define_insn to match low half of unsigned vaddw.
14440         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
14441         define_insn to match high half of unsigned vaddw.
14442         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
14443         (arm_simd_check_vect_par_cnst_half_p): Likewise.
14444         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
14445         for new function.
14446         (arm_simd_check_vect_par_cnst_half_p): Likewise.
14447         * config/arm/predicates.md (vect_par_constant_high): Support
14448         big endian and simplify by calling
14449         arm_simd_check_vect_par_cnst_half
14450         (vect_par_constant_low): Likewise.
14452 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
14454         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
14455         predicate for operand 2.
14457 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
14458             H.J. Lu  <hongjiu.lu@intel.com>
14460         * config/i386/i386-protos.h (standard_sse_constant_p): Add
14461         machine_mode argument.
14462         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
14463         constm1_rtx operands.  For VOIDmode constants, get mode from
14464         pred_mode.  Check mode size if the mode is supported by ABI.
14465         (standard_sse_constant_opcode): Do not use standard_constant_p.
14466         Strictly check ABI support for all-ones operands.
14467         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
14468         immediates. Update calls to standard_sse_constant_p.
14469         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
14470         (ix86_rtx_costs): Ditto.
14471         * config/i386/i386.md (*movxi_internal_avx512f): Use
14472         nonimmediate_or_sse_const_operand instead of vector_move_operand.
14473         Use (v,BC) alternative instead of (v,C). Use register_operand
14474         checks instead of MEM_P.
14475         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
14476         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
14477         isa attribute.  Use register_operand checks instead of MEM_P.
14478         (*movti_internal): Use nonimmediate_or_sse_const_operand for
14479         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
14480         alternative and corresponding sse2 isa attribute.
14481         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
14482         to standard_sse_constant_p.
14483         (FP constant splitters): Ditto.
14484         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
14485         (C): Ditto.
14486         * config/i386/predicates.md (constm1_operand): Remove.
14487         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
14488         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
14489         vector_all_ones_operand instead of constm1_operand.
14491 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14493         * print-rtl.c (print_rtx_insn_vec): New function.
14494         * print-rtl.h: New prototype.
14495         * store-motion.c (struct st_expr): Make avail_stores a vector.
14496         (st_expr_entry): Adjust.
14497         (free_st_expr_entry): Likewise.
14498         (print_store_motion_mems): Likewise.
14499         (find_moveable_store): Likewise.
14500         (compute_store_table): Likewise.
14501         (delete_store): Likewise.
14502         (build_store_vectors): Likewise.
14504 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14506         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
14508 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14510         * vec.h (vec_safe_contains): New function.
14511         (vec::contains): Likewise.
14512         (vec::begin): Likewise.
14513         (vec::end): Likewise.
14515 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
14517         PR sanitizer/70712
14518         * cfgexpand.c (expand_stack_vars): Fix typo.
14520 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14522         * system.h (list, map, set, vector): Include conditionally.
14523         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
14524         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
14525         * ipa-icf.c (INCLUDE_LIST): Define.
14526         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
14527         * config/sh/sh.c (INCLUDE_VECTOR): Define.
14528         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
14529         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
14530         * cp/logic.cc (INCLUDE_LIST): Define.
14531         * fortran/trans-common.c (INCLUDE_MAP): Define.
14533 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14535         * auto-profile.c: Remove <string.h> include.
14536         * ipa-icf-gimple.c: Remove <list> include.
14537         * diagnostic.c: Remove <new> include.
14538         * genmatch.c: Likewise.
14539         * pretty-print.c: Likewise.
14540         * toplev.c: Likewise
14541         * c/c-objc-common.c: Likewise.
14542         * cp/error.c: Likewise.
14543         * fortran/error.c: Likewise.
14545 2016-04-22  Richard Biener  <rguenther@suse.de>
14547         * lto-streamer-in.c (input_ssa_names): Do not allocate
14548         GIMPLE_NOP for all SSA names.
14549         * lto-streamer-out.c (output_ssa_names): Do not output
14550         SSA names that should have been released.
14552 2016-04-22  Richard Biener  <rguenther@suse.de>
14554         PR tree-optimization/70740
14555         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
14556         VDEF.
14558 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
14560         PR target/70750
14561         * config/i386/predicates.md (call_insn_operand): Replace
14562         sibcall_memory_operand with memory_operand.
14564 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
14566         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
14567         has_single_use() tests.
14568         (register_edge_assert_for_1): Likewise.
14569         (find_assert_locations_1): Check the liveness bitmap instead of
14570         checking has_single_use().
14572 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
14574         PR target/70728
14575         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
14576         Extract AVX-512BW constraint from AVX.
14578 2016-04-21  Richard Biener  <rguenther@suse.de>
14580         PR tree-optimization/70725
14581         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
14582         for phi_convertible_by_degenerating_args.
14583         (predicate_all_scalar_phis): Handle single-argument PHIs.
14585 2016-04-21  Richard Biener  <rguenther@suse.de>
14587         PR middle-end/70747
14588         * fold-const.c (fold_comparison): Return properly typed
14589         constant boolean.
14591 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
14593         PR tree-optimization/70715
14594         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
14595         after expanding BASE using expand_simple_operations.
14597 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
14599         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
14600         New transformations.
14602 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
14604         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
14606 2016-04-20  Jan Hubicka  <jh@suse.cz>
14608         * ipa-inline.c (can_inline_edge_p): Pass caller info to
14609         ultiimate_alias_target.
14610         (update_callee_keys): Likewise.
14611         (lookup_recursive_calls): Likewise.
14612         (speculation_useful_p): Likewise.
14614 2016-04-20  Jan Hubicka  <jh@suse.cz>
14616         PR ipa/70018
14617         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
14618         (set_nothrow_flag_1): ... this; handle interposition correctly;
14619         recurse on aliases and thunks.
14620         (cgraph_node::set_nothrow_flag): New.
14621         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
14622         functions compiled with non-call exceptions that binds to current
14623         def.
14624         (propagate_nothrow): Be safe WRT interposition.
14625         * cgraph.h (set_nothrow_flag): Update prototype.
14627 2016-04-18  Jan Hubicka  <jh@suse.cz>
14629         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
14630         max_loop_iterations_int.
14631         (tree_unswitch_outer_loop): Likewise.
14633 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
14635         PR tree-optimization/69489
14636         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
14637         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
14638         Revise dump message.
14639         (if_convertible_bb_p): Remove check on edge count of basic block's
14640         predecessors.
14642 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
14644         PR tree-optimization/56625
14645         PR tree-optimization/69489
14646         * tree-data-ref.h (DR_INNERMOST): New macro.
14647         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
14648         hashing struct innermost_loop_behavior.
14649         (ref_DR_map): Remove.
14650         (innermost_DR_map): New map.
14651         (baseref_DR_map): Revise comment.
14652         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
14653         to innermost_DR_map accroding to its innermost loop behavior.
14654         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
14655         to its innermost loop behavior.
14656         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
14657         Add initialization for innermost_DR_map.  Record memory reference
14658         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
14659         have innermost loop behavior.
14660         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
14661         innermost_DR_map.
14663 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
14665         * config/i386/i386.md (*lea<mode>_general_1): Rename from
14666         *lea_general_1.  Use explicit SWI12 mode interator.
14667         (*lea<mode>_general_2): Rename from *lea_general_2.
14668         Use explicit SWI12 mode interator.
14669         (*lea<mode>_general_3): Rename from *lea_general_3.
14670         Use explicit SWI12 mode interator.
14671         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
14672         Use explicit SWI12 mode interator.
14673         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
14674         Use explicit SWI48 mode interator.
14676 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
14678         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
14679         Short-cut unaligned load and store cases.  Handle all integer
14680         vector modes.
14681         (ix86_expand_vector_move_misalign): Short-cut unaligned load
14682         and store cases.  Call ix86_avx256_split_vector_move_misalign
14683         directly without checking mode class.
14685 2016-04-20  Andrew Pinski  <apinski@cavium.com>
14686             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14688         PR target/64971
14689         * config/aarch64/aarch64.md (sibcall): Force call
14690         address to be DImode for ILP32.
14691         (sibcall_value): Likewise.
14693 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
14695         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
14697 2016-04-20  Richard Biener  <rguenther@suse.de>
14699         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
14700         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
14701         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
14702         (maybe_push_res_to_seq): Adjust.
14703         * gimple-fold.c (maybe_build_generic_op): Likewise.
14705 2016-04-20  Marek Polacek  <polacek@redhat.com>
14707         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
14708         rather than true.
14710 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
14712         * config/i386/sse.md (vec_unpacks_lo_hi): Always
14713         use kmovw to support AVX512F target.
14715 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
14717         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
14719 2016-04-20  Marek Polacek  <polacek@redhat.com>
14721         PR tree-optimization/70725
14722         * tree-if-conv.c (is_false_predicate): New function.
14723         (predicate_mem_writes): Use it.
14725 2016-04-20  Richard Biener  <rguenther@suse.de>
14727         PR tree-optimization/70726
14728         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
14729         shift amounts from a pattern stmt operand.
14731 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14733         PR target/70674
14734         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
14735         stack_restore_from_fpr pattern when restoring r15.
14736         (s390_optimize_prologue): Strip away the memory barrier in the
14737         parallel when trying to get rid of restore insns.
14738         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
14739         definition for loading the stack pointer from an FPR.  Compared to
14740         the normal move insn this pattern includes a full memory barrier.
14742 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
14744         PR middle-end/70680
14745         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
14746         implicitly linear or lastprivate iterator on the outer context.
14748 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
14750         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
14751         alignment check.
14752         * config/i386/i386.md (ssememalign): Removed.
14753         * config/i386/sse.md: Remove ssememalign attribute from patterns.
14755 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
14757         PR target/69201
14758         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
14759         const short * to __builtin_ia32_loaddquhi512_mask.
14760         (_mm512_maskz_loadu_epi16): Likewise.
14761         (_mm512_mask_storeu_epi16): Pass short * to
14762         __builtin_ia32_storedquhi512_mask.
14763         (_mm512_mask_loadu_epi8): Pass const char * to
14764         __builtin_ia32_loaddquqi512_mask.
14765         (_mm512_maskz_loadu_epi8): Likewise.
14766         (_mm512_mask_storeu_epi8): Pass char * to
14767         __builtin_ia32_storedquqi512_mask.
14768         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
14769         const double * to __builtin_ia32_loadupd512_mask.
14770         (_mm512_mask_loadu_pd): Likewise.
14771         (_mm512_maskz_loadu_pd): Likewise.
14772         (_mm512_storeu_pd): Pass double * to
14773         __builtin_ia32_storeupd512_mask.
14774         (_mm512_mask_storeu_pd): Likewise.
14775         (_mm512_loadu_ps): Pass const float * to
14776         __builtin_ia32_loadups512_mask.
14777         (_mm512_mask_loadu_ps): Likewise.
14778         (_mm512_maskz_loadu_ps): Likewise.
14779         (_mm512_storeu_ps): Pass float * to
14780         __builtin_ia32_storeups512_mask.
14781         (_mm512_mask_storeu_ps): Likewise.
14782         (_mm512_mask_loadu_epi64): Pass const long long * to
14783         __builtin_ia32_loaddqudi512_mask.
14784         (_mm512_maskz_loadu_epi64): Likewise.
14785         (_mm512_mask_storeu_epi64): Pass long long *
14786         to __builtin_ia32_storedqudi512_mask.
14787         (_mm512_loadu_si512): Pass const int * to
14788         __builtin_ia32_loaddqusi512_mask.
14789         (_mm512_mask_loadu_epi32): Likewise.
14790         (_mm512_maskz_loadu_epi32): Likewise.
14791         (_mm512_storeu_si512): Pass int * to
14792         __builtin_ia32_storedqusi512_mask.
14793         (_mm512_mask_storeu_epi32): Likewise.
14794         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
14795         char * to __builtin_ia32_storedquqi256_mask.
14796         (_mm_mask_storeu_epi8): Likewise.
14797         (_mm256_mask_loadu_epi16): Pass const short * to
14798         __builtin_ia32_loaddquhi256_mask.
14799         (_mm256_maskz_loadu_epi16): Likewise.
14800         (_mm_mask_loadu_epi16): Pass const short * to
14801         __builtin_ia32_loaddquhi128_mask.
14802         (_mm_maskz_loadu_epi16): Likewise.
14803         (_mm256_mask_loadu_epi8): Pass const char * to
14804         __builtin_ia32_loaddquqi256_mask.
14805         (_mm256_maskz_loadu_epi8): Likewise.
14806         (_mm_mask_loadu_epi8): Pass const char * to
14807         __builtin_ia32_loaddquqi128_mask.
14808         (_mm_maskz_loadu_epi8): Likewise.
14809         (_mm256_mask_storeu_epi16): Pass short * to.
14810         __builtin_ia32_storedquhi256_mask.
14811         (_mm_mask_storeu_epi16): Pass short * to.
14812         __builtin_ia32_storedquhi128_mask.
14813         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
14814         const double * to __builtin_ia32_loadupd256_mask.
14815         (_mm256_maskz_loadu_pd): Likewise.
14816         (_mm_mask_loadu_pd): Pass onst double * to
14817         __builtin_ia32_loadupd128_mask.
14818         (_mm_maskz_loadu_pd): Likewise.
14819         (_mm256_mask_storeu_pd): Pass double * to
14820         __builtin_ia32_storeupd256_mask.
14821         (_mm_mask_storeu_pd): Pass double * to
14822         __builtin_ia32_storeupd128_mask.
14823         (_mm256_mask_loadu_ps): Pass const float * to
14824         __builtin_ia32_loadups256_mask.
14825         (_mm256_maskz_loadu_ps): Likewise.
14826         (_mm_mask_loadu_ps): Pass const float * to
14827         __builtin_ia32_loadups128_mask.
14828         (_mm_maskz_loadu_ps): Likewise.
14829         (_mm256_mask_storeu_ps): Pass float * to
14830         __builtin_ia32_storeups256_mask.
14831         (_mm_mask_storeu_ps): ass float * to
14832         __builtin_ia32_storeups128_mask.
14833         (_mm256_mask_loadu_epi64): Pass const long long * to
14834         __builtin_ia32_loaddqudi256_mask.
14835         (_mm256_maskz_loadu_epi64): Likewise.
14836         (_mm_mask_loadu_epi64): Pass const long long * to
14837         __builtin_ia32_loaddqudi128_mask.
14838         (_mm_maskz_loadu_epi64): Likewise.
14839         (_mm256_mask_storeu_epi64): Pass long long * to
14840         __builtin_ia32_storedqudi256_mask.
14841         (_mm_mask_storeu_epi64): Pass long long * to
14842         __builtin_ia32_storedqudi128_mask.
14843         (_mm256_mask_loadu_epi32): Pass const int * to
14844         __builtin_ia32_loaddqusi256_mask.
14845         (_mm256_maskz_loadu_epi32): Likewise.
14846         (_mm_mask_loadu_epi32): Pass const int * to
14847         __builtin_ia32_loaddqusi128_mask.
14848         (_mm_maskz_loadu_epi32): Likewise.
14849         (_mm256_mask_storeu_epi32): Pass int * to
14850         __builtin_ia32_storedqusi256_mask.
14851         (_mm_mask_storeu_epi32): Pass int * to
14852         __builtin_ia32_storedqusi128_mask.
14853         * config/i386/i386-builtin-types.def (PCSHORT): New.
14854         (PINT64): Likewise.
14855         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
14856         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
14857         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
14858         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
14859         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
14860         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
14861         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
14862         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
14863         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
14864         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
14865         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
14866         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
14867         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
14868         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
14869         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
14870         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
14871         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
14872         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
14873         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
14874         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
14875         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
14876         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
14877         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
14878         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
14879         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
14880         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
14881         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
14882         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
14883         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
14884         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
14885         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
14886         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
14887         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
14888         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
14889         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
14890         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
14891         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
14892         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
14893         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
14894         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
14895         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
14896         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
14897         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
14898         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
14899         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
14900         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
14901         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
14902         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
14903         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
14904         use UNSPEC_STOREU.
14905         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
14906         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
14907         load nor store.
14908         (ix86_expand_vector_move_misalign): Likewise.
14909         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
14910         to scalar function prototype for unaligned load/store builtins.
14911         (ix86_expand_special_args_builtin): Updated.
14912         * config/i386/sse.md (UNSPEC_LOADU): Removed.
14913         (UNSPEC_STOREU): Likewise.
14914         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
14915         (VI_ULOADSTORE_F_AVX512VL): Likewise.
14916         (ssescalarsize): Handle V4TI, V2TI and V1TI.
14917         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14918         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14919         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
14920         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
14921         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
14922         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
14923         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
14924         (<avx512>_storedqu<mode>_mask): Likewise.
14925         (*sse4_2_pcmpestr_unaligned): Likewise.
14926         (*sse4_2_pcmpistr_unaligned): Likewise.
14927         (*mov<mode>_internal): Renamed to ...
14928         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
14929         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
14930         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
14931         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
14933 2016-04-19  Richard Biener  <rguenther@suse.de>
14935         PR tree-optimization/70171
14936         * tree-ssa-phiprop.c: Include stor-layout.h.
14937         (phiprop_insert_phi): Handle the aggregate copy case.
14938         (propagate_with_phi): Likewise.
14940 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
14942         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
14943         instead of simplify_gen_subreg (... , 0).
14944         (ix86_delegitimize_address): Ditto.
14945         (ix86_split_divmod): Ditto.
14946         (ix86_split_copysign_const): Ditto.
14947         (ix86_split_copysign_var): Ditto.
14948         (ix86_expand_args_builtin): Ditto.
14949         (ix86_expand_round_builtin): Ditto.
14950         (ix86_expand_special_args_builtin): Ditto.
14951         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
14952         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
14953         (udivmodqi4): Ditto.
14954         (absneg splitters): Ditto.
14955         (*jcc_bt<mode>_1): Ditto.
14957 2016-04-19  Richard Biener  <rguenther@suse.de>
14959         PR tree-optimization/70724
14960         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
14961         restoring out from ...
14962         (free_scc_vn): ... here.
14963         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
14964         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
14965         tail merging.
14966         (pass_fre::execute): Restore SSA info.
14968 2016-04-19  Richard Biener  <rguenther@suse.de>
14970         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
14971         * gimple-walk.c (walk_gimple_op): Initialize it.
14972         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
14973         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
14974         remapping SSA names of defs.
14975         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
14976         adjustment.
14978 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
14980         PR middle-end/70689
14981         * lra-constraints.c (equiv_substition_p): New.
14982         (process_alt_operands): Use it.
14983         (swap_operands): Swap it.
14984         (curr_insn_transform): Update it.
14986 2016-04-18  Michael Matz  <matz@suse.de>
14988         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
14989         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
14990         * tree-core.h (tree_type_common.align): Use bit-field.
14991         (tree_type_common.spare): New.
14992         (tree_decl_common.off_align): Make smaller.
14993         (tree_decl_common.align): Use bit-field.
14995         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
14996         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
14997         (scan_sharing_clauses): Ditto.
14998         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
14999         (omp_finish_file): Ditto.
15000         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
15001         (layout_decl): Ditto.
15002         (relayout_decl): Ditto.
15003         (finalize_record_size): Use SET_TYPE_ALIGN.
15004         (finalize_type_size): Ditto.
15005         (finish_builtin_struct): Ditto.
15006         (layout_type): Ditto.
15007         (initialize_sizetypes): Ditto.
15008         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
15009         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
15010         (lookup_field_for_decl): Use SET_DECL_ALIGN.
15011         (get_chain_field): Ditto.
15012         (get_trampoline_type): Ditto.
15013         (get_nl_goto_field): Ditto.
15014         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
15015         SET_DECL_ALIGN.
15016         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
15017         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
15018         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
15019         (build_qualified_type): Use SET_TYPE_ALIGN.
15020         (build_aligned_type, build_range_type_1): Ditto.
15021         (build_atomic_base): Ditto.
15022         (build_common_tree_nodes): Ditto.
15023         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
15024         (expand_one_stack_var_at): Ditto.
15025         * coverage.c (build_var): Use SET_DECL_ALIGN.
15026         * except.c (init_eh): Ditto.
15027         * function.c (assign_parm_setup_block): Ditto.
15028         * symtab.c (increase_alignment_1): Ditto.
15029         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
15030         * tree-vect-stmts.c (ensure_base_align): Ditto.
15031         * varasm.c (align_variable): Ditto.
15032         (assemble_variable): Ditto.
15033         (build_constant_desc): Ditto.
15034         (output_constant_def_contents): Ditto.
15036         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
15037         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
15038         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
15039         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
15040         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
15042 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
15044         PR target/70708
15045         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
15046         replace %vmovsd with "%vmovq".
15047         (vec_concatv2df): Likewise.
15049 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
15051         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
15052         (*vec_extractv2si_0): Ditto.
15053         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
15054         (zero_extended_scalar_load_operand splitters): Ditto.
15055         (vec_extract splitters): Ditto.
15056         (*vec_extractv4si_0_zext): Ditto.
15057         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
15058         and lowpart_subreg.
15059         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
15060         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
15061         (*sse4_1_extractps): Use lowpart_subreg.
15062         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
15064 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15066         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
15067         gld requirements.
15068         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
15069         Mention Solaris 11 packaging changes.
15070         Update gas and gld requirements.
15071         Remove reference to pre-Solaris 10 bug.
15072         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
15073         systems and bugs.
15074         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
15075         with cc.
15077 2016-04-17  Jan Hubicka  <jh@suse.cz>
15079         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
15080         max_loop_iterations_int.
15082 2016-04-18  Richard Biener  <rguenther@suse.de>
15084         PR tree-optimization/43434
15085         * tree-ssa-structalias.c (struct vls_data): New.
15086         (visit_loadstore): Handle all pointer-based accesses.
15087         (compute_dependence_clique): Compute a bitmap of restrict tags
15088         assigned bases and pass it to visit_loadstore.
15090 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
15092         PR target/70711
15093         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
15094         armv8.1-a and armv8.1-a+crc.
15096 2016-04-18  Richard Biener  <rguenther@suse.de>
15098         PR tree-optimization/70701
15099         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
15100         references after translating through a memcpy.
15102 2016-04-18  Richard Biener  <rguenther@suse.de>
15104         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
15105         (compute_antic): ... here.  For partial antic use regular
15106         postorder and scrap iteration.
15107         (compute_partial_antic_aux): Remove unused return value.
15108         (init_pre): Do not allocate postorder.
15109         (fini_pre): Do not free postorder.
15111 2016-04-18  Richard Biener  <rguenther@suse.de>
15113         PR middle-end/37870
15114         * expmed.c (extract_bit_field_1): Remove broken case
15115         using a wider MODE_INT mode.
15117 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
15119         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
15120         unless compiling with at least GCC-4.8.
15122 2016-04-17  Jan Hubicka  <jh@suse.cz>
15124         PR bootstrap/70706
15125         * graphite.c (graphite_finalize): Update call to
15126         tree_estimate_probability.
15127         * predict.h (tree_estimate_probability): Update prototype.
15129 2016-04-17  Jan Hubicka  <jh@suse.cz>
15131         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
15132         (tree_estimate_probability): Likewise.
15133         (pass_profile::execute): Update.
15134         (report_predictor_hitrates): New function.
15135         * profile.c (compute_branch_probabilities): Use it.
15136         * predict.h (report_predictor_hitrates): Declare.
15138 2016-04-17  Jan Hubicka  <jh@suse.cz>
15140         PR ipa/70018
15141         * cgraph.h (cgraph_node::set_const_flag,
15142         cgraph_node::set_pure_flag): Update prototype to return bool;
15143         update comment.
15144         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
15145         of interposable symbol are interposable, too.
15146         (cgraph_set_const_flag_1): Rename to ...
15147         (set_const_flag_1): ... this one; change to self recursive function
15148         instead of call_for_symbol_thunks_and_aliases. Handle correctly
15149         clearnig the flag in all variants and also virtual thunks of const
15150         functions are pure; track if any change was done.
15151         (cgraph_node::set_const_flag): Update.
15152         (struct set_pure_flag_info): New struct.
15153         (cgraph_set_pure_flag_1): Rename to ...
15154         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
15155         rather than pointer encoded flags; track if any changes was done;
15156         handle correctly clearning flag and setting flag of aliases already
15157         declared const.
15158         (cgraph_node::set_pure_flag): Update.
15159         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
15161 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15163         PR other/70433
15164         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
15165         backslash in label.
15167 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15169         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
15170         '{}<> ' as escape-for-record.
15172 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15174         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
15175         structure.
15177 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15179         PR other/70185
15180         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
15181         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
15182         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
15183         * passes.c (finish_optimization_passes): Only call
15184         finish_graph_dump_file if dfi->graph_dump_initialized.
15185         (execute_function_dump, pass_init_dump_file): Use
15186         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
15188 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15190         PR tree-optimization/70256
15191         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
15192         (debug_varmap): New function.
15194 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15196         PR other/70183
15197         * passes.c (pass_manager::register_pass): Propagate pflags.
15199 2016-04-17  Tom de Vries  <tom@codesourcery.com>
15201         PR other/68875
15202         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
15203         * passes.c (pass_manager::pass_manager): Declare and init p_start in
15204         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
15205         check if it's equal to p_start.
15206         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
15208 2016-04-15  Jan Hubicka  <jh@suse.cz>
15210         PR ipa/70018
15211         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
15212         function does not bind to current def.
15213         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
15214         handle conservatively calls to functions that does not need to bind
15215         to current def.
15216         (check_call): Update call of worse_state.
15217         (ignore_edge_for_nothrow): Update.
15218         (ignore_edge_for_pure_const): Likewise.
15219         (propagate_pure_const): Update calls to worse_state.
15220         (skip_function_for_local_pure_const): Reformat comments.
15222 2016-04-15  Jan Hubicka  <jh@suse.cz>
15224         PR ipa/70018
15225         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
15226         (cgraph_node::function_symbol): Likewise.
15227         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15228         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
15229         (symtab_node::ultimate_alias_target): Add REF parameter.
15230         (symtab_node::binds_to_current_def_p): Declare.
15231         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
15232         (cgraph_node::function_symbol): Likewise.
15233         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15234         (cgraph_node::get_availability): Likewise.
15235         (cgraph_edge::binds_to_current_def_p): New inline function.
15236         (varpool_node::get_availability): Add REF parameter.
15237         (varpool_node::ultimate_alias_target): Likewise.
15238         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
15239         (symtab_node::binds_to_current_def_p): Likewise.
15240         * varpool.c (varpool_node::get_availability): Likewise.
15242 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
15244         PR target/70662
15245         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
15246         Fix mode size check.
15248 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
15250         * BASE-VER: Set to 7.0.0.
15252 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
15254         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
15256 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15258         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
15259         architecture revisions.
15261 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
15263         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
15264         * config/i386/i386.c (ix86_using_red_zone): No longer static.
15265         * config/i386/i386.md (stack decrement to push peepholes): Guard
15266         with !x86_using_red_zone ().
15268 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
15270         PR c++/70675
15271         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
15272         to dump_generic_node.
15273         (NIY): Pass also flags to do_niy.
15275 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
15277         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
15278         (simd_clone_vector_of_formal_parm_types)
15279         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
15280         (simd_clone_mangle, simd_clone_create)
15281         (simd_clone_adjust_return_type, create_tmp_simd_array)
15282         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
15283         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
15284         (ipa_simd_modify_function_body, simd_clone_linear_addend)
15285         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
15286         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
15287         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
15288         * omp-simd-clone.c: ... this new file.
15289         (simd_clone_vector_of_formal_parm_types): Make it static.
15290         * Makefile.in (OBJS): Add omp-simd-clone.o.
15292 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
15294         PR target/70662
15295         * config/i386/sse.md: Use proper memory operand modifiers.
15298 2016-04-15  Richard Biener  <rguenther@suse.de>
15299         Alan Modra  <amodra@gmail.com>
15301         PR tree-optimization/70130
15302         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
15303         when alignment stays not the same and no not use the realign
15304         scheme then.
15306 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15308         PR target/70669
15309         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15310         direct move handlers for KFmode. Change TFmode handlers test from
15311         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
15313 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
15315         PR c++/70594
15316         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
15317         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
15318         (inlined_polymorphic_ctor_dtor_block_p): Use it.
15319         * tree-ssa-live.c (remove_unused_scope_block_p): When
15320         in_ctor_dtor_block, avoid discarding not just BLOCKs with
15321         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
15322         block_ultimate_origin is FUNCTION_DECL.
15323         (remove_unused_locals): If current_function_decl is
15324         polymorphic_ctor_dtor_p, pass initial true to
15325         remove_unused_scope_block_p' is_ctor_dtor_block.
15327 2016-04-14  Martin Sebor  <msebor@redhat.com>
15329         PR c++/69517
15330         PR c++/70019
15331         PR c++/70588
15332         * doc/extend.texi (Variable Length): Revert.
15334 2016-04-14  Marek Polacek  <polacek@redhat.com>
15335             Jan Hubicka  <hubicka@ucw.cz>
15337         PR c++/70029
15338         * tree.c (verify_type): Disable the canonical type of main variant
15339         check.
15341 2016-04-14  Jason Merrill  <jason@redhat.com>
15343         * cfgexpand.c, expr.c: Revert previous change.
15345 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
15347         PR middle-end/70643
15348         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
15349         when building a mem ref for the incoming reduction variable.
15351 2016-04-14  Richard Biener  <rguenther@suse.de>
15353         PR tree-optimization/70614
15354         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
15355         loop if the evolution dropped to chrec_dont_know.
15356         (interpret_condition_phi): Likewise.
15358 2016-04-14  Richard Biener  <rguenther@suse.de>
15360         PR tree-optimization/70623
15361         * tree-ssa-pre.c (changed_blocks): Make global ...
15362         (compute_antic): ... local here.  Move and fix worklist
15363         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
15364         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
15365         worklist handling, dump when ANTIC_IN changed.
15366         (compute_partial_antic_aux): Remove worklist handling.
15367         (init_pre): Do not compute post dominators.  Add a comment about
15368         the CFG order chosen.
15369         (fini_pre): Do not free post dominators.
15371 2016-04-13  Martin Sebor  <msebor@redhat.com>
15373         PR c++/69517
15374         PR c++/70019
15375         PR c++/70588
15376         * doc/extend.texi (Variable Length): Document C++ specifics.
15378 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
15380         PR c++/70641
15381         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
15382         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
15383         eh edges have been purged.
15385         PR c++/70594
15386         * tree-sra.c (create_access_replacement,
15387         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
15388         gets fancy name.
15389         * tree-pretty-print.c (dump_fancy_name): New function.
15390         (dump_decl_name, dump_generic_node): Use it.
15392 2016-04-13  Jason Merrill  <jason@redhat.com>
15394         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
15395         * expr.c (expand_expr_real_1): Likewise.
15397 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
15399         * config/i386/i386.md (kunpckhi): Swap operands.
15400         (kunpcksi): Likewise.
15401         (kunpckdi): Likewise.
15402         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
15403         (vec_pack_trunc_<mode>): Likewise.
15405 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
15407         PR debug/70628
15408         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
15410         PR middle-end/70633
15411         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
15412         gimplification turns some element into non-constant.
15414         PR debug/70628
15415         * rtl.h (convert_memory_address_addr_space_1): New prototype.
15416         * explow.c (convert_memory_address_addr_space_1): No longer static,
15417         add NO_EMIT argument and don't call convert_modes if true, pass
15418         it down recursively, remove break after return.
15419         (convert_memory_address_addr_space): Adjust caller.
15420         * simplify-rtx.c (simplify_unary_operation_1): Call
15421         convert_memory_address_addr_space_1 instead of convert_memory_address,
15422         if it returns NULL, don't simplify.
15424 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
15426         PR target/70630
15427         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
15429 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
15431         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15432         Bump the upper SIMDLEN limits, so that if the return type or
15433         characteristic type if the return type is void can be passed in
15434         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
15435         allowed.
15437 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
15439         PR target/70640
15440         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
15441         Do not use "=" constraint on an input constraint.
15442         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
15443         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
15444         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
15445         generates (neg (abs ...)) instead of (abs ...).
15447 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
15449         PR rtl-optimization/70596
15450         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
15451         just invalidate LRA data and reset them.  Adjust dump wording.
15453 2016-04-12  Martin Liska  <mliska@suse.cz>
15455         Revert
15456         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
15458         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15459         estimates here.
15460         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15461         max_loop_iterations_int.
15462         (tree_unswitch_outer_loop): Likewise.
15463         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15464         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15466 2016-04-12  Tom de Vries  <tom@codesourcery.com>
15468         PR tree-optimization/68756
15469         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
15470         instead of new_name.
15472 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
15474         PR tree-optimization/70602
15475         * tree-sra.c (generate_subtree_copies): Don't write anything into
15476         constant pool decls.
15478         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
15479         regardless whether there are depend clauses or not.
15481 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
15483         PR target/70381
15484         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
15485         target attribute and pragma from changing the -mfloat128
15486         and -mfloat128-hardware options.
15488         * doc/extend.texi (Additional Floating Types): Document PowerPC
15489         __float128 restrictions.
15491 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
15493         PR target/70133
15494         * config/aarch64/driver-aarch64.c
15495         (aarch64_get_extension_string_for_isa_flags): New.
15496         (arch_extension): Rename to...
15497         (aarch64_arch_extension): ...This.
15498         (ext_to_feat_string): Rename to...
15499         (aarch64_extensions): ...This.
15500         (aarch64_core_data): Keep track of architecture extension flags.
15501         (cpu_data): Rename to...
15502         (aarch64_cpu_data): ...This.
15503         (aarch64_arch_driver_info): Keep track of architecture extension
15504         flags.
15505         (get_arch_name_from_id): Rename to...
15506         (get_arch_from_id): ...This, change return type.
15507         (host_detect_local_cpu): Update and reformat for renames, handle
15508         extensions through common infrastructure.
15510 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
15512         PR target/70133
15513         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
15514         track of a canonical flag name.
15515         (all_extensions): Likewise.
15516         (arch_to_arch_name): Also track extension flags enabled by the arch.
15517         (all_architectures): Likewise.
15518         (aarch64_parse_extension): Move to here.
15519         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
15520         rework.
15521         (aarch64_rewrite_selected_cpu): Update for above change.
15522         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
15523         are handled, such that the single explicit value enabled by an
15524         extension is kept seperate from the implicit values it also enables.
15525         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
15526         to here.
15527         (aarch64_parse_extension): New.
15528         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
15529         here to config/aarch64/aarch64-protos.h.
15530         (aarch64_parse_extension): Move from here to
15531         common/config/aarch64/aarch64-common.c.
15532         (aarch64_option_print): Update.
15533         (aarch64_declare_function_name): Likewise.
15534         (aarch64_start_file): Likewise.
15535         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
15536         the canonical flag for extensions.
15537         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
15538         flags.
15540 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
15542         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
15543         AARCH64_FL_CRC.
15545 2016-04-09  Tom de Vries  <tom@codesourcery.com>
15547         PR tree-optimization/68953
15548         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
15549         first to last subscript.
15551 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
15553         PR tree-optimization/70586
15554         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
15555         for any calls.
15557 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
15559         PR lto/70289
15560         PR ipa/70348
15561         PR tree-optimization/70373
15562         PR middle-end/70533
15563         PR middle-end/70534
15564         PR middle-end/70535
15565         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
15566         clauses for acc parallel reductions as necessary.  Error on those
15567         that are private.
15568         * omp-low.c (scan_sharing_clauses): Don't install variables which
15569         are used in acc parallel reductions.
15570         (lower_rec_input_clauses): Remove dead code.
15571         (lower_oacc_reductions): Add support for reference reductions.
15572         (lower_reduction_clauses): Remove dead code.
15573         (lower_omp_target): Don't remap variables appearing in acc parallel
15574         reductions.
15575         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
15577 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
15579         PR middle-end/70593
15580         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
15581         with multiple SSA_NAME defs, force the outputs other than first
15582         to be live before calling live_track_process_def on each output.
15584         PR rtl-optimization/70574
15585         * fwprop.c (forward_propagate_and_simplify): Don't add
15586         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
15587         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
15588         paradoxical subregs within *loc.
15590 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
15592         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
15593         -ftree-parallelize-loops={0,1}.
15594         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
15595         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
15596         * config/ia64/hpux.h (LIB_SPEC): Likewise.
15597         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15598         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
15600 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
15602         PR sanitizer/70541
15603         * asan.c (instrument_derefs): If we get unknown location, extract it
15604         with EXPR_LOCATION.
15605         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
15607 2016-04-08  Tom de Vries  <tom@codesourcery.com>
15609         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
15610         implicit firstprivate clause.
15612 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15614         PR target/70566
15615         * config/arm/thumb2.md (tst + branch-> lsls + branch
15616         peephole below *orsi_not_shiftsi_si): Require that condition
15617         register is dead after the peephole.
15618         (second peephole after the above): Likewise.
15620 2016-04-08  Alan Modra  <amodra@gmail.com>
15622         PR target/70117
15623         * builtins.c (fold_builtin_classify): For IBM extended precision,
15624         look at just the high-order double to test for NaN.
15625         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
15626         test just the high double for Inf but both doubles for subnormal
15627         limit.
15629 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
15631         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
15632         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
15633         node->simdclone->mask_mode != VOIDmode masks.
15634         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
15635         earlier, use it instead of node->simdclone.
15636         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15637         Set clonei->mask_mode.
15639 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
15641         PR c/70436
15642         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
15643         Pass it through to cp_parser_already_scoped_statement.
15644         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
15645         it through to cp_parser_statement.
15646         (cp_parser_statement): Pass IF_P through to
15647         cp_parser_iteration_statement.
15648         (cp_parser_pragma): Adjust call to
15649         cp_parser_iteration_statement.
15651 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
15653         PR c/70436
15654         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
15655         resolve a future -Wparentheses warning.
15656         * omp-low.c (scan_sharing_clauses): Likewise.
15657         * tree-parloops.c (eliminate_local_variables): Likewise.
15659 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
15661         PR rtl-optimization/70398
15662         * lra-constraints.c (process_address_1): Check zero scale and code
15663         for reloading with zero scale.
15665 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
15667         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
15668         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
15670 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
15672         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15673         Add support for AVX512F clones, include them by default for
15674         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
15675         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
15676         up to 128.
15678         PR middle-end/70550
15679         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
15680         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
15681         firstprivate clauses.
15682         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
15683         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
15684         (lower_omp_target): Set TREE_NO_WARNING for
15685         non-addressable possibly uninitialized vars which are copied into
15686         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
15688 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
15690         * config/pa/predicates.md (integer_store_memory_operand): Accept
15691         REG+D operands with a large offset when reload_in_progress is true.
15692         (floating_point_store_memory_operand): Likewise.
15694 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
15696         PR c++/70336
15697         * match.pd (nested int casts): Limit to GIMPLE.
15699 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
15701         PR ipa/66223
15702         * ipa-devirt.c (maybe_record_node): Fix comment; use
15703         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
15705 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
15707         PR rtl-optimization/70542
15708         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
15709         if there are any uses other than insn or debug insns.
15711 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
15712             Jakub Jelinek  <jakub@redhat.com>
15714         PR tree-optimization/70509
15715         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
15716         Shift HOST_WIDE_INT_1U instead of 1.
15718 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
15720         PR tree-optimization/70509
15721         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
15722         of the vector base type for index.
15724 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
15726         PR target/70510
15727         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
15729 2016-04-05  Richard Biener  <rguenther@suse.de>
15731         PR tree-optimization/70526
15732         * tree-sra.c (build_ref_for_offset): Use prev_base to
15733         extract the alias pointer type.
15735 2016-04-05  Richard Biener  <rguenther@suse.de>
15737         * dse.c (struct store_info): Remove alias_set member.
15738         (struct read_info_type): Likewise.
15739         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
15740         spill_deleted, clear_alias_set_lookup): Remove.
15741         (get_group_info): Remove dead base == NULL_RTX case.
15742         (dse_step0): Remove initialization of removed variables.
15743         (delete_dead_store_insn): Reomve alias set dumping.
15744         (free_read_records): Remove alias_set handling.
15745         (canon_address): Remove alias_set_out parameter.
15746         (record_store): Remove spill_alias_set, it's always zero.
15747         (check_mem_read_rtx): Likewise.
15748         (dse_step2): Rename from ...
15749         (dse_step2_nospill): ... this.  Adjust.
15750         (scan_stores): Rename from ...
15751         (scan_stores_nospill): ... this.
15752         (scan_reads): Rename from ...
15753         (scan_reads_nospill): ... this.
15754         (scan_stores_spill, scan_reads_spill): Remove.
15755         (dse_step3_scan): Remove for_spills argument which is always false.
15756         (dse_step3): Likewise.
15757         (dse_step5): Rename from ...
15758         (dse_step5_nospill): ... this.  Remove alias_set handling.
15759         (rest_of_handle_dse): Adjust.
15761 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
15763         PR target/70525
15764         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
15765         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
15766         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
15767         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
15769 2016-04-05  Richard Biener  <rguenther@suse.de>
15771         PR middle-end/70499
15772         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
15773         non-register type temporaries into SSA.
15775 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
15777         PR ipa/66223
15778         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
15779         calls when sanitizing.
15780         (possible_polymorphic_call_target_p): Fix formatting.
15782 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15783             Jakub Jelinek  <jakub@redhat.com>
15785         PR middle-end/70457
15786         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
15787         to ensure a call statement is compatible with a built-in's
15788         prototype.
15789         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
15790         Likewise.
15792 2016-04-04  Richard Biener  <rguenther@suse.de>
15794         PR rtl-optimization/70484
15795         * rtl.h (canon_output_dependence): Declare.
15796         * alias.c (canon_output_dependence): New function.
15797         * dse.c (record_store): Use canon_output_dependence rather
15798         than canon_true_dependence.
15800 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
15802         PR ipa/68881
15803         * cgraph.h (symtab_node::copy_visibility_from): New function.
15804         * symtab.c (symtab_node::copy_visibility_from): New function.
15805         * ipa-visibility.c (optimize_weakref): New function.
15806         (function_and_variable_visibility): Use it.
15808 2016-04-04  Martin Liska  <mliska@suse.cz>
15810         PR hsa/70402
15811         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
15812         value that is really in range handled by SBR instruction.
15813         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
15814         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
15815         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
15817 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
15819         PR target/70416
15820         PR target/67391
15821         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
15822         set, but not for SP_REG operands.
15824 2016-04-02  Martin Sebor  <msebor@redhat.com>
15826         PR c++/67376
15827         * fold-const.c (maybe_nonzero_address): New function.
15828         (fold_comparison): Call it.  Fold equality and relational
15829         expressions involving null pointers.
15830         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
15832 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
15834         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
15835         the "Y" constraint (scalar FP 0.0 immediate).
15837         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
15838         Add the "const_double" to the list of operand constraints.
15840 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
15842         PR rtl-optimization/70467
15843         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
15844         If low word of the last operand is 0, just emit addition/subtraction
15845         for the high word.
15847 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15849         PR target/70404
15850         * config/s390/s390.c (s390_expand_insv): Check for everything
15851         constant instead of just VOIDmode stuff.
15853 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15855         PR target/70496
15856         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
15858 2016-04-01  Nathan Sidwell  <nathan@acm.org>
15860         * tree.def (TRY_CATCH_EXPR): Correct documentation.
15862 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
15864         PR rtl-optimization/70461
15865         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
15866         is necessary.
15868 2016-03-31  Martin Liska  <mliska@suse.cz>
15870         PR hsa/70399
15871         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
15872         a tree value or an immediate integer value to a buffer
15873         that is eventually copied to a BRIG section.
15874         (emit_immediate_operand): Call the function here.
15875         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
15876         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
15877         of class' fields that are removed.
15878         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
15879         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
15880         m_brig_repr_size fields.
15882 2016-03-31  Martin Liska  <mliska@suse.cz>
15884         PR hsa/70391
15885         * hsa-gen.c (hsa_function_representation::update_dominance): New
15886         function.
15887         (convert_addr_to_flat_segment): Likewise.
15888         (gen_hsa_memory_set): New alignment argument.
15889         (gen_hsa_ctor_assignment): Likewise.
15890         (gen_hsa_insns_for_single_assignment): Provide alignment
15891         to gen_hsa_ctor_assignment.
15892         (gen_hsa_insns_for_direct_call): Add new argument.
15893         (expand_lhs_of_string_op): New function.
15894         (expand_string_operation_builtin): Likewise.
15895         (expand_memory_copy): New function.
15896         (expand_memory_set): New function.
15897         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
15898         (convert_switch_statements): Change signature.
15899         (generate_hsa): Use a return value of the function.
15900         (pass_gen_hsail::execute): Do not call
15901         convert_switch_statements here.
15902         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
15903         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
15904         (hsa_function_representation::update_dominance): New function.
15906 2016-03-31  Martin Liska  <mliska@suse.cz>
15908         PR hsa/70391
15909         * hsa-brig.c (emit_directive_variable): Emit alignment
15910         according to hsa_symbol::m_align.
15911         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
15912         (dump_hsa_symbol): Dump alignment of HSA symbols.
15913         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
15914         (gen_hsa_addr_with_align): New function.
15915         (hsa_bitmemref_alignment): Use newly added function.
15916         (gen_hsa_insns_for_load): Likewise.
15917         (gen_hsa_insns_for_store): Likewise.
15918         (gen_hsa_memory_copy): New argument added.
15919         (gen_hsa_insns_for_single_assignment): Respect
15920         alignment for assignments processed via gen_hsa_memory_copy.
15921         (gen_hsa_insns_for_direct_call): Likewise.
15922         (gen_hsa_insns_for_return): Likewise.
15923         (gen_function_def_parameters): Set default alignment.
15924         * hsa.c (hsa_object_alignment): New function.
15925         (hsa_byte_alignment): Pasted function.
15926         * hsa.h (hsa_symbol::m_align): New field.
15928 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
15930         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
15931         scratch field for goto case.
15933 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
15935         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
15937 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
15939         PR target/70442
15940         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
15941         (scalar_chain::convert_insn): Call convert_op for reg
15942         moves to handle undefined registers.
15944 2016-03-31  Nathan Sidwell  <nathan@acm.org>
15946         PR c++/70393
15947         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
15948         Assert we don't want to move backwards.
15950 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
15952         PR target/70453
15953         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
15955 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
15957         PR rtl-optimization/70460
15958         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
15959         with operand from REG_LABEL_OPERAND, instead substitute
15960         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
15961         Don't do anything for REG_NON_LOCAL_GOTO jumps.
15963 2016-03-31  Martin Liska  <mliska@suse.cz>
15965         * passes.c (execute_one_pass): Do not call
15966         todo_after for a discarded function.
15968 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
15970         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
15971         (no_cost, infinite_cost): Initialize the new field.
15972         (get_computation_cost_at): Record setup cost.
15973         (determine_use_iv_cost_address): Skip cost computation for sub
15974         uses if we can estimate it without losing accuracy.
15976 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
15978         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15979         estimates here.
15980         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15981         max_loop_iterations_int.
15982         (tree_unswitch_outer_loop): Likewise.
15983         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15984         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15986 2016-03-30  Richard Biener  <rguenther@suse.de>
15988         PR middle-end/70450
15989         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
15991 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
15993         PR target/70421
15994         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
15995         in gen_blendm expander.
15997 2016-03-30  Nick Clifton  <nickc@redhat.com>
15999         PR target/62254
16000         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
16001         case where we are already provided with an SImode SUBREG.
16003 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16005         PR target/70439
16006         * config/i386/i386.c (ix86_expand_epilogue): Properly check
16007         conflict between DRAP register and __builtin_eh_return.
16009 2016-03-30  Michael Matz  <matz@suse.de>
16010             Richard Biener  <rguenther@suse.de>
16012         PR ipa/12392
16013         * ipa-polymorphic-call.c (struct type_change_info): Change
16014         speculative to an unsigned allowing to limit the work we do.
16015         (csftc_abort_walking_p): New inline function..
16016         (check_stmt_for_type_change): Limit the number of may-defs
16017         skipped for speculative devirtualization to
16018         max-speculative-devirt-maydefs.
16019         * params.def (max-speculative-devirt-maydefs): New param.
16020         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
16022 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
16024         PR target/63890
16025         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
16026         and TARGET_MACHO.
16028 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
16030         PR tree-optimization/59124
16031         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
16032         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
16034 2016-03-29  Jeff Law  <law@redhat.com>
16036         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
16038 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16040         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
16041         to HOST_WIDE_INT.
16043 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
16045         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
16046         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
16047         gcrt0.o if linking dynamically.
16049 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16051         PR ipa/70283
16052         * ipa-devirt.c (methods_equal_p): New function.
16053         (compare_virtual_tables): Use it.
16054         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
16055         * cgraphclones.c (clone_function_name_1): Use
16056         symbol_table::symbol_suffix_separator.
16057         * coverage.c (build_var): Likewise.
16058         * symtab.c (symbol_table::symbol_suffix_separator): New.
16060 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
16062         PR rtl-optimization/70429
16063         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
16064         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
16065         mode != result_mode.
16067         PR c++/70353
16068         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
16070         PR tree-optimization/70405
16071         * ssa-iterators.h (num_imm_uses): Add missing braces.
16073 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
16075         PR rtl-optimization/68695
16076         * ira-color.c (allocno_copy_cost_saving): New.
16077         (improve_allocation): Use it.
16079 2016-03-29  Richard Henderson  <rth@redhat.com>
16081         PR middle-end/70355
16082         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
16084 2016-03-29  Richard Biener  <rguenther@suse.de>
16086         PR middle-end/70424
16087         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
16088         use alignment returned by get_pointer_alignment_1 if it is
16089         bigger than BITS_PER_UNIT.
16090         * builtins.c (get_pointer_alignment_1): Do not return true
16091         for alignment extracted from SSA info.
16093 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
16095         * config/ft32/ft32.opt (mnodiv): New.
16096         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
16097         * doc/invoke.texi (FT32 Options -mnodiv): New.
16099 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
16101         PR target/70406
16102         * config/i386/i386.md (define_split, andn): Fix modes.
16104 2016-03-26  Richard Biener  <rguenther@suse.de>
16105             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16107         PR ipa/70366
16108         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
16109         instead of
16110         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
16111         as 2nd argument to cl_optimization_restore().
16113 2016-03-25  Richard Henderson  <rth@redhat.com>
16115         PR target/70120
16116         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
16117         * config/aarch64/aarch64-protos.h: Declare it.
16118         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
16120 2016-03-25  Alan Modra  <amodra@gmail.com>
16122         PR target/70052
16123         * config/rs6000/constraints.md (j): Simplify.
16124         * config/rs6000/predicates.md (easy_fp_constant): Exclude
16125         decimal float 0.D.
16126         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
16127         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
16128          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
16129         in all constraint alternatives.
16130         (movtd_64bit_nodm): Delete "j" constraint alternative.
16132 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
16134         * tree-ssa-propagate.c: Enhance docs for
16135         SSA_PROP_NOT_INTERESTING.
16137 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
16139         * doc/extend.texi: Fix typo in documentation to pure attribute.
16141 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
16143         PR target/70319
16144         * config/pa/pa.md (bswapdi2): Use a scratch register.
16146 2016-03-24  Richard Henderson  <rth@redhat.com>
16148         PR middle-end/69845
16149         * fold-const.c (extract_muldiv_1): Correct test for multiplication
16150         overflow.
16152 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
16154         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
16155         using ix86_expand_binary_operator instead of gen_andsi3.
16157 2016-03-24  Richard Biener  <rguenther@suse.de>
16159         PR tree-optimization/70396
16160         * tree-vect-stmts.c (vectorizable_comparison): Use
16161         get_vectype_for_scalar_type.
16163 2016-03-24  Richard Biener  <rguenther@suse.de>
16165         PR middle-end/70370
16166         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
16167         with register bases.
16169 2016-03-24  Richard Biener  <rguenther@suse.de>
16171         PR tree-optimization/70372
16172         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
16173         build_all_ones_cst to also handle vector types correctly.
16175 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
16177         PR target/70381
16178         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
16179         -mfloat128 here.
16181 2016-03-23  Marek Polacek  <polacek@redhat.com>
16183         PR c++/69884
16184         * doc/invoke.texi: Document -Wignored-attributes.
16186 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
16188         PR tree-optimization/69042
16189         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
16190         parameter from 30 to 40.
16192 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
16194         PR tree-optimization/69042
16195         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
16196         for use with constant offset stripped in base.
16198 2016-03-23  Richard Biener  <rguenther@suse.de>
16200         PR middle-end/70251
16201         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
16202         mode compatibility check.
16203         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16205 2016-03-23  Jeff Law  <law@redhat.com>
16207         PR tree-optimization/64058
16208         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
16209         CONFLICT_COUNT.
16210         (struct ssa_conflicts): Move up earlier in the file.
16211         (conflicts_, var_map_): New static variables.
16212         (initialize_conflict_count): New function to initialize the
16213         CONFLICT_COUNT field for each conflict pair.
16214         (compare_pairs): Lazily initialize the conflict count and use it
16215         as the first tie-breaker.
16216         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
16217         and wipe conflicts_ and map_ around the call to qsort.  Remove
16218         special case for 2 coalesce pairs.
16219         * bitmap.c (bitmap_count_unique_bits): New function.
16220         (bitmap_count_bits_in_word): New function, extracted from
16221         bitmap_count_bits.
16222         (bitmap_count_bits): Use bitmap_count_bits_in_word.
16223         * bitmap.h (bitmap_count_unique_bits): Declare it.
16225 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
16227         PR target/69917
16228         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
16229         transparent alias chain for decl assembler name.
16230         * config/sol2.c (solaris_assemble_visibility): Likewise.
16232 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16234         * config/arm/arm1020e.md (1020call_op): Reduce reservation
16235         duration.
16236         (v10_fdivs): Likewise.
16237         (v10_fdivd): Likewise.
16239 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16241         PR driver/70132
16242         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
16243         to not call fclose twice on file.
16245 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
16247         PR tree-optimization/70354
16248         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
16249         oprnd0 is wider than oprnd1 and there is a cast from the wider
16250         type to oprnd1, mask it with the mask of the narrower type.
16252         PR target/70321
16253         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
16254         Optimize TARGET_STV splitters, if high or low word of last argument
16255         is 0 or -1.
16257 2016-03-22  Jeff Law  <law@redhat.com>
16259         PR target/70232
16260         tree-ssa-threadbackward.c
16261         (fsm_find_control_statement_thread_paths): Correctly distinguish
16262         between old style jump threads vs FSM jump threads.
16264 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
16266         PR target/70302
16267         * config/i386/i386.c (scalar_chain::convert_op): Support
16268         uninitialized register usage case.
16270 2016-03-22  Richard Biener  <rguenther@suse.de>
16272         PR middle-end/70251
16273         * genmatch.c (gen_transform): Adjust last parameter to a three-state
16274         int...
16275         (capture::gen_transform): ... to change behavior when substituting
16276         a condition into cond or not-cond expr context.
16277         (dt_simplify::gen_1): Adjust.
16278         * gimple-match-head.c: Include gimplify.h for unshare_expr.
16279         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
16280         last change and instead change to
16281         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
16282         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16284 2016-03-22  Anthony Green  <green@moxielogic.com>
16286         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
16287         issue for moxiebox targets.
16288         (CC1PLUS_SPEC): Ditto.
16290 2016-03-22  Richard Biener  <rguenther@suse.de>
16292         PR middle-end/70333
16293         * fold-const.c (extract_muldiv_1): Properly perform multiplication
16294         in the wide type.
16296 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
16298         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
16300 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
16302         PR target/70325
16303         * config/i386/i386.c (def_builtin): Handle
16304         OPTION_MASK_ISA_AVX512VL to be and-ed with other
16305         bits.
16306         (const struct builtin_description bdesc_special_args[]):
16307         Remove duplicate ISA bits.
16309 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
16311         PR target/70329
16312         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
16313         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
16314         in a way that works also for AVX512BW.
16316         PR target/70300
16317         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
16318         instead of source if operands[1] is xmm16 and above and
16319         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
16320         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
16322         PR c++/70295
16323         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
16324         on assign if (*from_p) is a comparison, set it to
16325         TREE_NO_WARNING (*from_p).
16327 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
16329         PR middle-end/70326
16330         * lra.c (restore_scratches): Ignore deleted insns.
16332 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
16333             Jakub Jelinek  <jakub@redhat.com>
16335         PR tree-optimization/70317
16336         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
16337         to HONOR_NANS.
16339 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
16341         PR target/70327
16342         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
16343         of ix86_expand_move.
16344         (movoi): Ditto.
16345         (movti): Use general_operand for operand 1 predicate.
16347 2016-03-21  Martin Liska  <mliska@suse.cz>
16349         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
16350         insns.
16351         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
16353 2016-03-21  Martin Liska  <mliska@suse.cz>
16355         PR ipa/70306
16356         * ipa-icf.c (sem_function::parse): Skip static
16357         constructors and destructors.
16359 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
16361         PR target/70296
16362         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
16363         function-like macro, peek following token(s) if it is followed
16364         by CPP_OPEN_PAREN token with optional padding in between, and
16365         if not, don't treat it like a macro.
16367 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
16368             Alexander Monakov  <amonakov@ispras.ru>
16370         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
16371         for the stabs debug format.
16373 2016-03-21  Richard Biener  <rguenther@suse.de>
16375         PR tree-optimization/70310
16376         * tree-vect-generic.c (expand_vector_condition): Fold the built
16377         condition.
16379 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
16381         PR target/70293
16382         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
16383         Block third alternative for AVX-512VL target,
16385 2016-03-21  Martin Liska  <mliska@suse.cz>
16387         PR hsa/70234
16388         * hsa-brig.c (emit_function_directives): Mark unemitted
16389         global variables for emission.
16390         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
16391         (get_symbol_for_decl): Likewise.
16392         * hsa.h (struct hsa_symbol): New flag.
16394 2016-03-21  Richard Biener  <rguenther@suse.de>
16396         PR tree-optimization/70288
16397         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
16398         we do not estimate unsimplified all-constant conditionals or
16399         switches as optimized away.
16401 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
16403         PR rtl-optimization/69102
16404         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
16405         when we have a readonly dependency context.
16407 2016-03-18  Jeff Law  <law@redhat.com>
16409         PR rtl-optimization/70263
16410         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
16411         (update_equiv_regs): When trying to move a store to after the insn
16412         that sets the source of the store, make sure the store occurs after
16413         the insn that sets the source of the store.  When successful note
16414         the REG_EQUIV note created in the dump file.
16416 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
16417             Bernd Schmidt  <bschmidt@redhat.com>
16419         * doc/extend.texi: Document more potential problems with basic asms.
16421 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
16423         PR rtl-optimization/70278
16424         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
16425         VOIDmode.
16427 2016-03-18  Jason Merrill  <jason@redhat.com>
16429         * calls.c (load_register_parameters): Fix zero size sibcall logic.
16431 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
16433         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
16434         values to 128b regs.
16436 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16438         PR tree-optimization/70252
16439         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
16440         boolean vector has a proper number of elements.
16441         (supportable_narrowing_operation): Likewise.
16443 2016-03-18  Tom de Vries  <tom@codesourcery.com>
16445         PR ipa/70269
16446         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
16448 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
16450         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
16451         instead of replace_rtx for DEBUG_INSNs.
16453 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
16455         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
16456         load type reservations.
16458 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
16460         PR target/70188
16461         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
16462         define_constraint for "Q" and "T" constraints.
16464 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
16466         Tweak the pipeline model for Exynos M1
16468         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
16469         model.
16471 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
16473         PR c/70264
16474         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
16475         where one or both locations aren't within a line_map.
16477 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
16479         PR driver/70192
16480         * opts.c (finish_options): Don't set flag_pie to the default if
16481         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
16482         if it is -1.
16484 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
16486         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
16487         true as ALL_REGS argument to replace_rtx.
16489 2016-03-17  Richard Biener  <rguenther@suse.de>
16491         PR debug/70271
16492         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
16493         last.
16495 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
16497         PR target/70245
16498         * rtl.h (replace_rtx): Add ALL_REGS argument.
16499         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
16500         equality and assert mode is the same, instead of just rtx pointer
16501         equality.
16502         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
16503         true as ALL_REGS argument to replace_rtx.
16505 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
16507         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
16508         for boolean vector with vector mode only.
16509         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16511 2016-03-17  Nick Clifton  <nickc@redhat.com>
16513         PR target/70162
16514         * config/rx/rx.c (rx_print_integer): Print negative constants in
16515         decimal.
16517 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
16519         PR target/70261
16520         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
16522 2016-03-16  Richard Henderson  <rth@redhat.com>
16523             Richard Biener  <rguenth@suse.de>
16525         PR middle-end/70240
16526         PR middle-end/68215
16527         PR tree-opt/68714
16528         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
16529         first operand as is_gimple_condexpr.
16531         PR middle-end/70240
16532         PR middle-end/68215
16533         Revert r231575
16534         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
16535         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
16536         Do not gimplify the result.
16537         (do_unop): Adjust call to tree_vec_extract.
16538         (do_binop): Likewise.
16539         (do_compare): Likewise.
16540         (do_plus_minus): Likewise.
16541         (do_negate): Likewise.
16542         (expand_vector_condition): Likewise.
16543         (do_cond): Likewise.
16545 2016-03-16  Richard Henderson  <rth@redhat.com>
16547         PR target/70048
16548         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
16549         (aarch64_classify_address): Use it.
16550         (aarch64_legitimize_address): Force all subexpressions of PLUS
16551         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
16553 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
16554             Richard Biener  <rguenth@suse.de>
16556         PR target/70245
16557         * rtlanal.c (replace_rtx): For REG, if from is a REG,
16558         return to even if only REGNO is equal, and assert
16559         mode is the same.
16561 2016-03-11  Jeff Law  <law@redhat.com>
16563         PR rtl-optimization/70224
16564         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
16566 2016-03-16  Richard Henderson  <rth@redhat.com>
16568         PR middle-end/70199
16569         * function.h (struct function): Add has_forced_label_in_static.
16570         * gimplify.c (force_labels_r): Set it.
16571         * lto-streamer-in.c (input_struct_function_base): Read it.
16572         * lto-streamer-out.c (output_struct_function_base): Write it.
16573         * tree-inline.c (has_label_address_in_static_1): Remove.
16574         (copy_forbidden): Remove fndecl parameter; test
16575         has_forced_label_in_static.
16576         (inline_forbidden_p): Update call to copy_forbidden.
16577         (tree_versionable_function_p): Likewise.
16578         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
16579         (chkp_versioning): Likewise.
16580         * tree-inline.h (copy_forbidden): Update decl.
16582 2016-03-16  Marek Polacek  <polacek@redhat.com>
16584         PR c/70093
16585         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
16586         function being thunked if the result type doesn't have fixed size.
16587         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
16588         doesn't have fixed size.
16590 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
16592         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
16593         reporting malformed loop nest.
16595 2016-03-16  Tom de Vries  <tom@codesourcery.com>
16597         PR lto/70187
16598         * ipa-devirt.c (possible_polymorphic_call_targets): Move
16599         nodes.length () == 1 test to before first nodes[0] access.
16601 2016-03-16  Tom de Vries  <tom@codesourcery.com>
16603         PR tree-optimization/68715
16604         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
16605         single_pred_p test.
16607 2016-03-16  Tom de Vries  <tom@codesourcery.com>
16609         PR tree-optimization/68809
16610         * graphite-scop-detection.c (same_close_phi_node): Test if result types
16611         are the same.
16613 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
16614             Sandra Loosemore  <sandra@codesourcery.com>
16616         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
16617         on leaf attribute. Mention ELF interposition problems.
16619 2016-03-16  Alan Modra  <amodra@gmail.com>
16621         PR rtl-optimization/69195
16622         PR rtl-optimization/47992
16623         * ira.c (indirect_jump_optimize): Ignore artificial defs.
16624         Add comments.
16626 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
16628         PR bootstrap/69513
16629         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
16631 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
16633         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
16635 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
16637         PR rtl-optimization/70222
16638         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
16639         optimization if mode is different from result_mode, queue up masking
16640         of the result in outer_op.  Formatting fix.
16642         PR middle-end/70239
16643         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
16644         of safe_grow.
16646 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
16648         PR rtl-optimization/69032
16649         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
16650         looping backwards over basic block insns.
16652 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
16654         PR target/66660
16655         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
16656         to non-speculative when propagating trap bits.
16658 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
16660         PR rtl-optimization/63384
16661         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
16662         DEBUG_INSN_P insns.
16664 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
16666         PR target/64411
16667         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
16668         factored out from ...
16669         (sched_analyze_insn): ... here.
16670         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
16671         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
16672         get_implicit_reg_pending_clobbers in it.
16673         (setup_id_reg_sets): Use setup_id_implicit_regs.
16674         (deps_init_id): Ditto.
16676 2016-03-15  Tom de Vries  <tom@codesourcery.com>
16678         PR ipa/70161
16679         * cgraph.c (cgraph_node::get_body): Save, reset and restore
16680         dump_file_name.
16681         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
16682         execute_function_dump.
16683         (execute_one_pass): Don't dump function if it will be dumped after ipa
16684         transform.
16686 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
16688         * genrecog.c (match_pattern_2): If pred is NULL don't call
16689         safe_predicate_mode on it.
16691 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
16693         PR middle-end/70219
16694         * lra-constraints.c (delete_move_and_clobber): Change assertion
16695         to also allow dregno == 0.
16697 2016-03-14  Richard Henderson  <rth@redhat.com>
16699         PR tree-opt/68714
16700         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
16701         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
16702         (reassociate_bb): Use optimize_vec_cond_expr; avoid
16703         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
16704         on vectors.
16706 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
16708         PR target/70083
16709         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
16710         regs.
16711         (lra_create_live_ranges_1): initialize hard register biggest_mode to
16712         VOIDmode.
16713         * lra-constraints.c (split_reg): For hard regs, try to find the
16714         biggest single-register mode used in the function.
16716 2016-03-14  Richard Biener  <rguenther@suse.de>
16718         PR tree-optimization/56365
16719         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
16720         constants to compare against.
16722 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
16724         PR target/70098
16725         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
16726         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
16727         (define_split for the GPR case): Use int_reg_operand instead of
16728         gpc_reg_operand for the output.
16730 2016-03-14  Tom de Vries  <tom@codesourcery.com>
16732         PR tree-optimization/70045
16733         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
16734         create_empty_if_region_on_edge argument.
16736 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
16738         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
16739         (STACK_CHECK_PROTECT): Likewise.
16740         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16741         (STACK_CHECK_PROTECT): Likewise.
16742         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16743         (STACK_CHECK_PROTECT): Likewise.
16744         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
16745         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16746         (STACK_CHECK_PROTECT): Likewise.
16748 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
16750         PR rtl-optimization/69307
16751         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
16752         registers in modes that span more than one register.
16754 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
16756         PR target/69614
16757         * lra-constraints.c (delete_move_and_clobber): New.
16758         (remove_inheritance_pseudos): Use it.
16760 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
16762         PR ada/70017
16763         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
16764         the libcall is LCT_THROW.
16765         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
16766         for the checking routine.
16768 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
16770         PR target/70131
16771         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
16772         optimization if we have direct move.
16773         (roundu32<mode>2_fprs): Likewise.
16775 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
16777         PR target/70123
16778         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
16779         be rematerialized.
16780         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
16781         Arguments swapped.  All callers changed.  Take reg_renumber into
16782         account, and Calculate and compare register ranges for hard regs.
16784 2016-03-11  Jeff Law  <law@redhat.com>
16786         PR tree-optimization/70190
16787         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16788         Handle cases where we can not extract the taken edge, even though we
16789         found a constant value.
16791         PR tree-optimization/64058
16792         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
16793         (num_coalesce_pairs): Move up earlier in file.
16794         (find_coalesce_pair): Initialize the INDEX field for each pair
16795         discovered.
16796         (compare_pairs): No longer sort on the elements in each pair.
16797         Instead break ties with the index of the coalesce pair.
16799 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16801         PR target/70002
16802         * config/aarch64/aarch64-protos.h
16803         (aarch64_save_restore_target_globals): New prototype.
16804         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
16805         Call the above when popping pragma.
16806         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
16807         New function.
16808         (aarch64_set_current_function): Rewrite using the above.
16810 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
16812         PR tree-optimization/70177
16813         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
16814         (extract_ops_from_tree): ... this.  In the 2 argument
16815         overload remove _1 suffix.
16816         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
16817         (extract_ops_from_tree): ... this.
16818         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
16819         Adjust callers.
16820         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16821         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
16822         extract_ops_from_tree instead of 2 operand one.
16824 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
16826         PR tree-optimization/70013
16827         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
16828         for constant-pool entries.
16830 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
16832         PR rtl-optimization/70174
16833         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
16834         followed by gen_lowpart on force_reg instead of just gen_lowpart.
16836         PR tree-optimization/70169
16837         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
16838         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
16839         for unknown codes.
16841 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
16842             Jakub Jelinek  <jakub@redhat.com>
16844         PR target/70160
16845         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
16846         of uninitialized values.
16848 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16850         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
16851         define_expand.
16852         ("*trunctddd2"): New pattern definition.
16853         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
16854         TD->DD truncation.
16856 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16858         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
16859         definitions for BFP and DFP rounding modes.
16860         ("fixuns_truncdddi2", "fixuns_trunctddi2")
16861         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
16862         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
16863         ("fix_trunctf<mode>2"): Use the new constants instead of magic
16864         numbers.
16866 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16868         * config/s390/constraints.md: Adjust comment.
16869         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
16870         s390_decompose_addrstyle_without_index.
16871         * config/s390/predicates.md (shift_count_or_setmem_operand):
16872         Rename to setmem_operand.
16873         * config/s390/s390-protos.h
16874         (s390_decompose_shift_count): Rename to
16875         s390_decompose_addrstyle_without_index.
16876         * config/s390/s390.c (s390_decompose_shift_count)
16877         (s390_mem_constraint, print_shift_count_operand)
16878         (print_operand_address, print_operand): Rename
16879         s390_decompose_shift_count to
16880         s390_decompose_addrstyle_without_index and rename
16881         print_shift_count_operand to print_addrstyle_operand troughout the
16882         file.
16883         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
16884         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
16885         Rename shift_count_or_setmem_operand to setmem_operand.
16886         * config/s390/vx-builtins.md ("vec_insert<mode>")
16887         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
16888         nonmemory_operand.
16890 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16892         PR target/70168
16893         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
16894         Handle overlapping retval and newval.
16896 2016-03-10  Nick Clifton  <nickc@redhat.com>
16898         PR target/7044
16899         * config/aarch64/aarch64.c
16900         (aarch64_override_options_after_change_1): When forcing
16901         flag_omit_frame_pointer to be true, use a special value that can
16902         be detected if this function is called again, thus preventing
16903         flag_omit_leaf_frame_pointer from being forced to be false.
16905 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16907         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16908         Set x_flag_omit_leaf_frame_pointer when handling
16909         -momit-leaf-frame-pointer.
16911 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16913         PR lto/69589
16914         * cgraph.c (cgraph_node::dump): Dump split_part and
16915         indirect_call_target.
16916         * cgraph.h (cgraph_node): Add indirect_call_target flag.
16917         * ipa.c (has_addr_references_p): Cleanup.
16918         (is_indirect_call_target_p): New.
16919         (walk_polymorphic_call_targets): Do not mark virtuals that may be
16920         called indirectly as local.
16921         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
16923 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16925         PR ipa/69630
16926         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
16927         on cxa_pure_virtual.
16929 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16931         PR lto/69589
16932         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
16934 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
16936         PR lto/69589
16937         * tree.c (need_assembler_name_p): Only record main variant type names.
16939 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
16941         PR target/70113.
16942         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
16943         Always define to 0 or 1.
16944         (TARGET_FIX_ERR_A53_843419): New macro.
16945         * config/aarch64/aarch64-elf-raw.h
16946         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
16947         * config/aarch64/aarch64-linux.h: Likewise.
16948         * config/aarch64/aarch64.c
16949         (aarch64_override_options_after_change_1): Do not default
16950         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
16951         843419 is on.
16952         (aarch64_attributes): Handle fix-cortex-a53-843419.
16953         (aarch64_can_inline_p): Likewise.
16954         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
16956 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
16957             Jakub Jelinek  <jakub@redhat.com>
16959         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
16960         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
16961         DECL_COMMONS if flag_unconstrained_commons is set.
16962         * tree-dfa.c (get_ref_base_and_extent): Likewise.
16963         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
16964         (funconstrained-commons): Document.
16966 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
16968         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
16969         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
16971 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
16973         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
16974         has a proper number of elements.
16976 2016-03-10  Alan Modra  <amodra@gmail.com>
16978         PR rtl-optimization/69195
16979         PR rtl-optimization/47992
16980         * ira.c (recorded_label_ref): Delete.
16981         (update_equiv_regs): Return void.
16982         (indirect_jump_optimize): New function.
16983         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
16984         before regstat_compute_ri.  Don't rebuild_jump_labels here.
16985         Delete update_regstat.
16987 2016-03-10  Richard Biener  <rguenther@suse.de>
16989         PR tree-optimization/70128
16990         * tree-ssa-structalias.c (set_uids_in_ptset): Set
16991         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
16993 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
16995         PR tree-optimization/70152
16996         * tree-sra.c (replace_removed_params_ssa_names): Copy over
16997         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
16999         PR target/70086
17000         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
17001         instead of gen_sse2_loadlpd.
17002         * config/i386/sse.md (*vec_concatv2df): Rename to...
17003         (vec_concatv2df): ... this.
17005         PR tree-optimization/70127
17006         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
17008 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
17010         PR c/68473
17011         PR c++/70105
17012         * diagnostic-show-locus.c (compatible_locations_p): New function.
17013         (layout::layout): Sanitize ranges using compatible_locations_p.
17015 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
17017         PR c/68473
17018         PR c++/70105
17019         * diagnostic-show-locus.c (layout_range::layout_range): Replace
17020         location_range param with three const expanded_locations * and a
17021         bool.
17022         (layout::layout): Replace call to
17023         rich_location::lazily_expand_location with get_expanded_location.
17024         Extract the range and perform location expansion here, passing
17025         the results to the layout_range ctor.
17026         * diagnostic.c (source_range::debug): Delete.
17027         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
17028         of rich_location::get_expanded_location.
17029         * gcc-rich-location.c (get_range_for_expr): Delete.
17030         (gcc_rich_location::add_expr): Reimplement to avoid the
17031         rich_location::add_range overload that took a location_range,
17032         passing a location_t instead.
17034 2016-03-09  Richard Biener  <rguenther@suse.de>
17035         Jakub Jelinek  <jakub@redhat.com>
17037         PR tree-optimization/70138
17038         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
17039         Also skip vect_double_reduction_def.
17041 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
17043         PR target/70049
17044         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
17045         if the operand is "m".
17047 2016-03-09  Nathan Sidwell  <nathan@acm.org>
17049         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
17051 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
17053         * config/i386/i386.c (processor_target_table): Fix cost table
17054         intialization order for znver1.
17056 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
17058         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
17059         - becuase -> because.
17060         * ipa-reference.c (ignore_module_statics): Likewise.
17061         * cgraph.c (cgraph_node::get_body): Likewise.
17062         * ipa-inline.c (early_inliner): Likewise.
17063         * ipa-devirt.c (types_same_for_odr): Likewise.
17064         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
17065         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
17067 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17069         * tree-ssa-math-opts.c: Fix typo in comment.
17071 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
17073         PR target/70110
17074         * config/i386/i386.c (scalar_chain::make_vector_copies,
17075         scalar_chain::convert_reg): Call end_sequence in between
17076         get_insns and emit_conversion_insns rather than after both
17077         calls.
17079 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
17081         PR target/70064
17082         * config/i386/i386.h (machine_function): Add
17083         pc_thunk_call_expanded flag.
17084         (ix86_pc_thunk_call_expanded): New define.
17085         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
17086         (*set_got): Rename insn pattern from set_got.
17087         (*set_got_labelled): Rename inst pattern from set_got_labelled.
17088         * config/i386/i386.c (ix86_compute_frame_layout): Use
17089         ix86_pc_thunk_call_expanded to prevent red-zone.
17091 2016-03-07  Martin Jambor  <mjambor@suse.cz>
17093         * hsa.h (hsa_get_ctor_statements): Declare.
17094         (hsa_get_dtor_statements): Likewise.
17095         (hsa_get_kernel_dispatch_type): Likewise.
17096         * hsa.c (hsa_get_ctor_statements): New function.
17097         (hsa_get_dtor_statements): Likewise.
17098         (hsa_get_kernel_dispatch_type): Likewise.
17099         * hsa-brig.c (hsa_cdtor_statements): Removed.
17100         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
17101         hsa_get_dtor_statements.
17102         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
17103         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
17105 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
17107         * config/arm/arm-cores.def (cortex-r8): New.
17108         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
17109         * config/arm/arm-tune.md: Likewise.
17110         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
17112 2016-03-07  Martin Sebor  <msebor@redhat.com>
17114         PR rtl-optimization/19705
17115         * doc/invoke.texi (Options That Control Optimization): Clarify
17116         -fno-branch-count-reg.
17118 2016-02-26  Richard Biener  <rguenther@suse.de>
17119             Jeff Law  <law@redhat.com>
17121         PR tree-optimization/69740
17122         * cfghooks.c (remove_edge): Request loop fixups if we delete
17123         an edge that might turn an irreducible loop into a natural
17124         loop.
17125         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
17126         Move after definition of loops_state_clear.
17128 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
17130         PR rtl-optimization/69052
17131         * rtlanal.c (commutative_operand_precedence): Set higher precedence
17132         to CONST_WIDE_INT.
17134 2016-03-07  Tom de Vries  <tom@codesourcery.com>
17136         PR tree-optimization/70116
17137         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
17138         is_tm_ending stmts and ubsan/asan internal functions.
17139         (find_duplicate): Use it.  Don't test is_tm_ending here.
17141 2016-03-07  Richard Biener  <rguenther@suse.de>
17143         PR tree-optimization/70115
17144         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
17145         (propagate_constants_for_unrolling): Use replace_uses_by.
17147 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
17149         PR middle-end/69916
17150         * omp-low.c (struct oacc_loop): Add ifns.
17151         (new_oacc_loop_raw): Initialize it.
17152         (finish_oacc_loop): Clear mask & flags if no ifns.
17153         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
17154         (oacc_loop_xform_loop): Add ifns arg & adjust.
17155         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
17157 2016-03-07  Richard Henderson  <rth@redhat.com>
17159         PR rtl-opt/70061
17160         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
17161         (insert_value_copy_on_edge): Likewise.
17163 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17165         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
17167 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17169         PR target/62281
17170         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
17172 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
17174         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
17176 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
17178         Fix sseimul type attribute.
17179         * config/i386/znver1.md
17180         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
17181         znver1_sseimul_avx256_load) : Fix the type attribute.
17182         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
17183         pipe usage and latency.
17185 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
17187         PR c++/70084
17188         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
17189         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
17190         to the right type.
17192 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
17194         PR c/69973
17195         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
17197         PR rtl-optimization/69941
17198         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
17199         the reg share its mode.
17201 2016-03-04  Jeff Law  <law@redhat.com>
17203         PR tree-optimization/69196
17204         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17205         If the both SSA_NAMEs are anonymous, then consider them unassociated
17206         and include the PHI in the statement count.
17208 2016-03-05  Tom de Vries  <tom@codesourcery.com>
17210         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
17211         construct in oacc routine.  Check for oacc region in oacc routine.
17213 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
17215         PR target/70062
17216         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
17217         2016-02-22 changes, instead don't recurse if RECUR is already true.
17218         Don't change *dynamic_check if RECUR.  Adjust recursive caller
17219         to pass true to the new argument.
17220         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
17222         PR target/70059
17223         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
17224         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
17225         fixes.
17226         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
17228 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
17230         PR rtl-optimization/57676
17231         * lra-assigns.c (lra_assign): Guard test for maximum iterations
17232         with flag_checking.
17234 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
17236         * tree-vect-patterns.c (search_type_for_mask): Handle
17237         comparison of booleans.
17239 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
17241         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
17242         Fix @xref usage.
17244         PR debug/69947
17245         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
17246         all other ops that have dw_val_class_die_ref operands,
17247         and DW_OP_GNU_entry_value.
17249 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17251         PR rtl-optimization/69904
17252         * config/arm/arm.c (arm_cannot_copy_insn_p):
17253         Return true for load-exclusive instructions.
17255 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
17257         PR target/70021
17258         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
17259         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
17260         the pattern no matter if it is used just by non-pattern, pattern
17261         or mix thereof.
17262         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
17263         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
17264         oprnd1 def_stmt is in pattern, don't look through it.
17266 2016-03-03  Marek Polacek  <polacek@redhat.com>
17268         PR middle-end/70050
17269         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
17271 2016-03-03  Martin Liska  <mliska@suse.cz>
17273         PR tree-optimization/70043
17274         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
17275         previous statement if we see a debug statement.
17277 2016-03-03  Richard Biener  <rguenther@suse.de>
17279         PR tree-optimization/55936
17280         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
17281         parameter and guard unsafe equivalence use.
17282         (vrp_evaluate_conditional_warnv_with_ops): Always use
17283         safe equivalences but not via the quadratic compare_names
17284         helper.
17286 2016-03-03  Michael Collison  <michael.collison@linaro.org>
17288         PR target/70014
17289         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
17290         for operand 1 to s_register_operand. Change predicate for operand
17291         2 to arm_not_immediate_operand.
17293 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
17295         * doc/tm.texi: Regenerated.
17297 2016-03-02  Richard Henderson  <rth@redhat.com>
17299         PR rtl-opt/67145
17300         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
17301         simplification when all args are positive non-fixed registers.
17303 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17305         * target.def (lra_p): Specify that new ports should use LRA.
17307 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
17309         PR libgomp/69555
17310         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
17311         gimplify_type_sizes the type they refer to.
17312         (omp_notice_variable): Handle reference vars to VLAs.
17313         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
17314         reference to VLA decls in the second pass instead of first pass.
17316 2016-03-02  Tom de Vries  <tom@codesourcery.com>
17318         PR tree-optimization/68659
17319         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
17320         new_expr == NULL_TREE.
17321         (get_new_name): Handle ADDR_EXPR.
17323 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
17325         PR rtl-optimization/69052
17326         * loop-invariant.c (canonicalize_address): New function.
17327         (inv_can_prop_to_addr_use): Check validity of address expression
17328         which is canonicalized by above function.
17330 2016-03-02  Alan Modra  <amodra@gmail.com>
17332         PR ipa/69990
17333         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
17334         larger alignment.
17336 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
17338         PR target/70028
17339         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
17340         (*movhi_internal): Put mask moves from and to memory separately
17341         from moves from/to GPRs.
17343 2016-03-02  Richard Biener  <rguenther@suse.de>
17345         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
17346         GENERIC expressions in GIMPLE.
17348 2016-03-02  Richard Biener  <rguenther@suse.de>
17350         * config/i386/i386.c (type_natural_mode): Fix typo.
17352 2016-03-02  Nick Clifton  <nickc@redhat.com>
17354         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
17356 2016-03-02  Richard Biener  <rguenther@suse.de>
17357             Uros Bizjak  <ubizjak@gmail.com>
17359         PR target/67278
17360         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
17362 2016-03-02  Richard Biener  <rguenther@suse.de>
17364         PR middle-end/67278
17365         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
17367 2016-03-02  Marek Polacek  <polacek@redhat.com>
17369         PR c/67854
17370         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
17371         "is promoted to" warning.
17373 2016-03-01  DJ Delorie  <dj@redhat.com>
17375         * config.gcc: Deprecate mep-*.
17377 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
17379         PR middle-end/70025
17380         * lra-constraints.c (regno_val_use_in): New.
17381         (match_reload): Use it instead of regno_use_in.
17383 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
17385         PR rtl-optimization/70007
17386         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
17387         references present in REG_EQUAL notes attached to non-SET patterns.
17389 2016-03-01  Jeff Law  <law@redhat.com>
17391         PR tree-optimization/69196
17392         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17393         Appropriately clamp the number of statements to copy when the
17394         thread path does not traverse a loop backedge.
17396         PR tree-optimization/69196
17397         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17398         Do count some PHIs in the thread path against the insn count.  Decrease
17399         final statement count by one as the control statement in the last
17400         block will get removed.  Remove special cased code for handling PHIs
17401         in the last block.
17403 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
17405         PR target/70027
17406         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
17407         asm dialect alternatives to explicit GOTPCREL calls.
17409 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
17411         PR ada/70017
17412         * ira.c (do_reload): Issue warning for generic stack checking here...
17413         * reload1.c (reload): ...instead of here and streamline it.
17415 2016-03-01  Nick Clifton  <nickc@redhat.com>
17417         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
17419 2016-03-01  Richard Biener  <rguenther@suse.de>
17421         PR tree-optimization/69983
17422         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
17423         types and fall back to operand_equal_p.
17425 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17427         Revert
17428         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17430         * config/s390/constraints.md ("jm8"): New constraint.
17431         * config/s390/predicates.md ("const_int_8bitset_operand"): New
17432         predicate.
17433         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
17434         into ...
17435         ("*setmem_long<setmem_and>"): New pattern.
17436         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
17437         into ...
17438         ("*setmem_long_31z<setmem_and>"): New pattern.
17439         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
17440         New substitution rules with the required attributes.
17443 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17445         Revert
17446         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17448         * gensupport.c (process_substs_on_one_elem): Split loop to
17449         complete mark_operands_used_in_match_dup on all expressions in the
17450         vector first.
17451         (adjust_operands_numbers): Inline into process_substs_on_one_elem
17452         and remove function.
17454 2016-03-01  Richard Biener  <rguenther@suse.de>
17456         PR middle-end/70022
17457         * fold-const.c (fold_indirect_ref_1): Fix range checking for
17458         vector BIT_FIELD_REF extract.
17460 2016-03-01  Richard Biener  <rguenther@suse.de>
17462         PR tree-optimization/69994
17463         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
17465 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
17467         PR tree-optimization/69956
17468         * tree-vect-stmts.c (supportable_widening_operation): Support
17469         multi-step conversion of boolean vectors.
17470         (supportable_narrowing_operation): Likewise.
17472 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17474         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
17475         anymore.
17477 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17479         * config/s390/subst.md (DSI_VI): New mode iterator.
17480         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
17481         * config/s390/vector.md ("vec_set<mode>"): Move expander before
17482         the insn definition.
17483         ("*vec_set<mode>"): Change predicate and add alternative to
17484         support only either register or const_int operands as element
17485         selector.
17486         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
17487         operands.
17488         ("vec_extract<mode>"): New expander.
17489         ("*vec_extract<mode>"): New insn definition supporting reg and
17490         const_int element selectors.
17491         ("*vec_extract<mode>_plus"): New insn definition supporting
17492         reg+const_int element selectors.
17493         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
17494         following expander+insn definition.
17495         ("<vec_shifts_name><mode>3"): New expander.
17496         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
17498 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17500         * config/s390/s390.md ("*tabort_1"): Change predicate to
17501         nonmemory_operand.  Add a second alternative to cover
17502         register as well as const int operands.
17503         ("*tabort_1_plus"): New pattern definition.
17505 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17507         * config/s390/s390.md ("*ashrdi3_cc_31")
17508         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
17509         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
17510         Merge insn definitions into ...
17511         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17512         New pattern definition.
17513         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
17514         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
17515         ("*ashr<mode>3_and"): Merge insn definitions into ...
17516         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17517         New pattern definition.
17518         * config/s390/subst.md ("addr_style_op_cc_subst")
17519         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
17520         substitutions patterns plus attributes.
17521         Add ashiftrt to SUBST iterator.
17523 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17525         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
17526         op2 to nonmemory_operand.
17527         ("*<shift>di3_31", "*<shift>di3_31_and"):
17528         Merge into single pattern definition ...
17529         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
17530         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
17531         pattern definition ...
17532         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
17533         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
17534         iterator.
17536 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17538         * config/s390/predicates.md (const_int_6bitset_operand): New
17539         predicate.
17540         * config/s390/s390.md: Include subst.md.
17541         ("rotl<mode>3"): New expander.
17542         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
17543         ...
17544         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
17545         * config/s390/subst.md: New file.
17547 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17549         * config/s390/s390.md ("op_type", "atype", "length" attributes):
17550         Remove RRR type.  It doesn't really exist.
17551         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
17552         attributes.
17553         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
17554         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
17555         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
17556         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
17557         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
17558         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
17559         `enabled' attribute.
17561 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17563         * gensupport.c (process_substs_on_one_elem): Split loop to
17564         complete mark_operands_used_in_match_dup on all expressions in the
17565         vector first.
17566         (adjust_operands_numbers): Inline into process_substs_on_one_elem
17567         and remove function.
17569 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
17571         PR target/69706
17572         * config/sparc/sparc.c (NWORDS_UP): Rename to...
17573         (CEIL_NWORDS): ...this.  Use CEIL macro.
17574         (compute_fp_layout): Adjust to above renaming.
17575         (function_arg_union_value): Likewise.
17576         (sparc_arg_partial_bytes): Likewise.
17577         (sparc_function_arg_advance): Likewise.
17579 2016-02-29  Jeff Law  <law@redhat.com>
17581         PR tree-optimization/70005
17582         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
17583         where an object with a boolean range is compared against a value
17584         outside [0..1].
17586         PR tree-optimization/69999
17587         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
17588         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
17589         loop cleanups.
17591 2016-02-29  Richard Biener  <rguenther@suse.de>
17593         PR tree-optimization/69994
17594         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
17595         (get_unary_op): Look through nop conversions.
17596         (ops_equal_values_p): New function, look for equality diregarding
17597         nop conversions.
17598         (eliminate_plus_minus_pair): Use ops_equal_values_p
17599         (repropagate_negates): Do not use get_unary_op here.
17601 2016-02-29  Martin Liska  <mliska@suse.cz>
17603         * system.h: Poison ENABLE_CHECKING macro.
17605 2016-02-29  Martin Liska  <mliska@suse.cz>
17607         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
17608         is presented in dump flags.
17609         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17610         (hsa_regalloc): Likewise.
17612 2016-02-19  Richard Biener  <rguenther@suse.de>
17614         PR tree-optimization/69980
17615         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
17616         permutation of those we need to keep.
17618 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
17620         PR target/69706
17621         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
17622         (NWORDS_UP): ...this
17623         (init_cumulative_args): Minor tweaks.
17624         (sparc_promote_function_mode): Likewise.
17625         (scan_record_type): Delete.
17626         (traverse_record_type): New function template.
17627         (classify_data_t): New structure type.
17628         (classify_registers): New inline function.
17629         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
17630         exhausted.  Instantiate traverse_record_type on classify_registers and
17631         deal with the case of a structure passed in slot #15 with no FP field
17632         in the first word.
17633         (assign_data_t): New structure type.
17634         (compute_int_layout): New static function.
17635         (compute_fp_layout): Likewise.
17636         (count_registers): New inline function.
17637         (assign_int_registers): New static function.
17638         (assign_fp_registers): Likewise.
17639         (assign_registers): New inline function.
17640         (function_arg_record_value_1): Delete.
17641         (function_arg_record_value_2): Likewise.
17642         (function_arg_record_value_3): Likewise.
17643         (function_arg_record_value): Adjust to above changes.  Instantiate
17644         traverse_record_type on count_registers to first count the number of
17645         registers to be used and then on assign_registers to assign them.
17646         (function_arg_union_value): Adjust to above renaming.
17647         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
17648         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
17649         case of a structure passed in slot #15
17650         (sparc_function_arg_advance): Likewise.
17651         (function_arg_padding): Minor tweak.
17653 2016-02-29  Richard Biener  <rguenther@suse.de>
17655         PR tree-optimization/69720
17656         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
17657         the adjustment_def path for possibly vectorized defs.
17658         (vect_create_epilog_for_reduction): Handle vectorized initial
17659         defs properly.
17661 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
17663         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
17665 2016-02-27  Jeff Law  <law@redhat.com>
17667         Revert
17668         2016-02-26  Richard Biener  <rguenther@suse.de>
17669                     Jeff Law  <law@redhat.com>
17671         PR tree-optimization/69740
17672         * cfghooks.c (remove_edge): Request loop fixups if we delete
17673         an edge that might turn an irreducible loop into a natural
17674         loop.
17676 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
17678         PR rtl-optimization/69896
17679         * tree-vect-generic.c (get_compute_type): Avoid single element
17680         vector types.
17682 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
17684         Rename the AArch64 tuning option and related functions to enable the
17685         Newton series for the reciprocal square root to reflect its
17686         approximative characteristic.
17688         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
17689         function to "aarch64_emit_approx_rsqrt".
17690         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
17691         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
17692         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
17693         (xgene1_tunings): Likewise.
17694         (use_rsqrt_p): Likewise.
17695         (aarch64_emit_swrsqrt): Use new function name.
17696         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
17697         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
17698         text explaining this option.
17699         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
17701 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
17703         PR target/69969
17704         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
17705         complain about -mallow-movmisalign without -mvsx if
17706         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
17708 2016-02-26  Joel Sherrill  <joel@rtems.org>
17710         * config.gcc: Add x86_64-*-rtems*.
17711         * config/i386/rtems-64.h: New file.
17713 2016-02-26  Joel Sherrill  <joel@rtems.org>
17715         * config.gcc: Add aarch64-*-rtems*.
17716         * config/aarch64/rtems.h: New file.
17718 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
17720         PR target/69946
17721         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
17722         shift amount using %h.  Add comment.
17724 2016-02-26  Richard Biener  <rguenther@suse.de>
17725             Jeff Law  <law@redhat.com>
17727         PR tree-optimization/69740
17728         * cfghooks.c (remove_edge): Request loop fixups if we delete
17729         an edge that might turn an irreducible loop into a natural
17730         loop.
17732 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17734         PR middle-end/69920
17735         * tree-sra.c (sra_modify_assign): Do not remove loads of
17736         uninitialized aggregates to SSA_NAMEs.
17738 2016-02-26  Richard Henderson  <rth@redhat.com>
17740         PR target/69709
17741         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
17742         pseudo in case the target rtx matches the source of the left
17743         shift.
17745 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17747         PR hsa/69568
17748         * hsa.h (hsa_type_packed_p): Declare.
17749         * hsa.c (hsa_type_packed_p): New function.
17750         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
17751         loads.
17752         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
17753         * hsa-brig.c (emit_basic_insn): Likewise.
17755 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17757         pr hsa/69674
17758         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
17759         pointers.
17760         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
17762 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17764         * hsa.h (is_a_helper): New overload for hsa_op_immed for
17765         hsa_op_with_type operands.
17766         (hsa_unsigned_type_for_type): Declare.
17767         * hsa.c (hsa_unsigned_type_for_type): New function.
17768         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
17769         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
17770         the finalizer.  Do not emit extra move.
17772 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17774         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
17775         atomic operations in private segment.
17777 2016-02-26  Martin Jambor  <mjambor@suse.cz>
17779         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
17780         statements to wi->info.  Also disallow omp simd constructs.
17781         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
17782         for not gridifying.  Dump special string for omp_for.
17784 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17786         PR target/69245
17787         * config/aarch64/aarch64.c (aarch64_set_current_function):
17788         Save/restore target globals when switching to
17789         target_option_default_node.
17791 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17793         PR target/69613
17794         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
17795         Return 0 if !SHIFT_COUNT_TRUNCATED.
17797 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
17798             Eric Botcazou  <ebotcazou@adacore.com>
17800         PR rtl-optimization/69891
17801         * dse.c (scan_insn): If we can't figure out memset arguments
17802         or they are non-constant, call clear_rhs_from_active_local_stores.
17804 2016-02-26  Martin Liska  <mliska@suse.cz>
17806         * doc/extend.texi: Mention clog10, clog10f an clog10l
17807         in Builtins section.
17809 2016-02-26  Martin Liska  <mliska@suse.cz>
17811         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
17812         CHECKING_P.
17813         (resolve_args_picking_1): Likewise.
17814         * dwarf2out.h (struct GTY): Likewise.
17816 2016-02-26  Martin Liska  <mliska@suse.cz>
17818         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
17819         with flag_checking.
17820         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17822 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
17823             Martin Liska  <mliska@suse.cz>
17825         * doc/install.texi: Mention --enable-valgrind-annotations.
17827 2016-02-26  Richard Biener  <rguenther@suse.de>
17829         PR tree-optimization/69551
17830         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
17831         looking through aliases adjust DECL_PT_UID to refer to the
17832         ultimate alias target.
17834 2016-02-25  Martin Liska  <mliska@suse.cz>
17836         PR middle-end/69919
17837         * alloc-pool.c (after_memory_report): New variable.
17838         * alloc-pool.h (base_pool_allocator ::release): Do not use
17839         the infrastructure if after_memory_report.
17840         * toplev.c (toplev::main): Mark after memory report.
17842 2016-02-25  Richard Biener  <rguenther@suse.de>
17844         PR tree-optimization/48795
17845         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
17847 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
17849         PR driver/68463
17850         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
17851         offloading is enabled and -fopenacc or -fopenmp is specified.
17852         (CRTOFFLOADEND): Likewise.
17853         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
17854         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
17855         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
17856         (offload_objects_file_name): New static var.
17857         (tool_cleanup): Remove offload_objects_file_name file.
17858         (find_offloadbeginend): Replace with ...
17859         (find_crtoffloadtable): ... this.
17860         (run_gcc): Remove offload_argc and offload_argv.
17861         Get offload_objects_file_name from -foffload-objects=... option.
17862         Read names of object files with offload from this file, pass them to
17863         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
17864         don't pass offloadbegin and offloadend to the linker.  Don't pass
17865         offload non-LTO files to the linker, because now they're not claimed.
17867 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
17869         PR ipa/69630
17870         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
17871         on builtin_unreachable.
17873 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
17875         PR rtl-optimization/69896
17876         * regcprop.c: Include cfgrtl.h.
17877         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
17878         than remembered mode, either delete it (if noop_move_p), or
17879         treat like copy_p but not noop_p instruction.
17881 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
17883         PR debug/69705
17884         * dwarf2out.c (gen_variable_die): Work around buggy LTO
17885         - allow NULL decl for Fortran DW_TAG_common_block variables.
17887 2016-02-24  Jason Merrill  <jason@redhat.com>
17889         * common.opt (flifetime-dse): Add -flifetime-dse=1.
17891 2016-02-24  Richard Biener  <rguenther@suse.de>
17892             Jakub Jelinek  <jakub@redhat.com>
17894         PR middle-end/69760
17895         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
17896         conditionally executed ops to well-defined overflow behavior.
17898 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
17900         PR middle-end/69915
17901         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
17902         elements.
17904 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17906         PR rtl-optimization/69886
17907         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
17908         argument.  Use it when checking validity of set instructions.
17909         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
17910         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
17911         callsite.
17912         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
17913         * store-motion.c (find_moveable_store): Update
17914         can_assign_to_reg_without_clobbers_p callsite.
17916 2016-02-24  Richard Biener  <rguenther@suse.de>
17918         PR middle-end/68963
17919         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
17920         bogus check.
17921         (record_nonwrapping_iv): Do not fall back to the low/high bound
17922         for non-constant IV bases if the stmt is not always executed.
17924 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17926         * config/arm/arm-cores.def (cortex-a32): New entry.
17927         * config/arm/arm-tables.opt: Regenerate.
17928         * config/arm/arm-tune.md: Regenerate.
17929         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
17930         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
17931         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
17932         for -mcpu and -mtune.
17934 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17936         PR target/69875
17937         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
17938         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
17939         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
17940         (atomic_loaddi_1): Delete.
17941         (atomic_loaddi): Rewrite expander using the above changes.
17943 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
17945         PR c/69918
17946         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
17947         2 to 3.
17949 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
17950             Richard Biener  <rguenth@suse.de>
17952         PR middle-end/69909
17953         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
17954         set_mem_attributes if tem is SSA_NAME which got expanded
17955         as a MEM.
17957 2016-02-24  Richard Biener  <rguenther@suse.de>
17959         PR tree-optimization/69907
17960         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
17961         end of permutations for BB vectorization.
17963 2016-02-24  Christian Bruel  <christian.bruel@st.com>
17965         * config/arm/arm-c.c (arm_option_override): Initialize
17966         target_option_current_node.
17967         * config/arm/arm.c (arm_pragma_target_parse): Replace
17968         build_target_option_node call by target_option_current_node.
17969         Set target_option_current_node.
17970         Fix comments.
17972 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
17974         PR target/69810
17975         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
17976         define_insn_and_split to define_insn.
17977         (zero_extendqi<mode>2_dot2): Same.
17978         (extendqi<mode>2_dot): Same.
17979         (extendqi<mode>2_dot2): Same.
17981 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
17983         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
17984         and add bypass for AES{D,E} and AESMC pairs.
17985         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
17986         and AESMC pairs.
17988 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
17990         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
17991         series for reciprocal square root in Exynos M1.
17993 2016-02-23  Martin Sebor  <msebor@redhat.com>
17995         PR c/69759
17996         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
17997         __builtin_alloca_with_align.
17999 2016-02-23  Richard Henderson  <rth@redhat.com>
18001         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
18002         (ix86_register_pragmas): Remove __seg_tls.
18003         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
18004         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
18005         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
18006         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
18007         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
18008         * doc/extend.texi (__seg_tls): Remove item.
18010 2016-02-23  Richard Biener  <rguenther@suse.de>
18012         * alloc-pool.h (struct allocation_object): Make id member
18013         conditional on CHECKING_P again.
18014         (get_instance): Adjust.
18015         (base_pool_allocator): Likewise.
18017 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
18019         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
18020         (parallelize_loops): In OpenACC kernels mode, set n_threads to
18021         zero.
18022         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
18023         flag_openacc.
18024         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
18026 2016-02-23  Richard Biener  <rguenther@suse.de>
18028         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
18029         * bitmap.h (struct bitmap_usage): Likewise.
18030         (bitmap_move): Declare.
18031         * bitmap.c (register_overhead): Take size_t argument.
18032         (bitmap_move): New function.
18033         * df-problems.c (df_rd_transfer_function): Use bitmap_move
18034         to properly account overhead.
18035         * tree.c (free_node): Use tree_size.
18037 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
18039         PR c++/69902
18040         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
18041         when inverting comparison.
18043         PR c/69900
18044         * common.opt (Wunreachable-code): Add Warning flag.
18046 2016-02-23  Mark Wielaard  <mjw@redhat.com>
18047             Jakub Jelinek  <jakub@redhat.com>
18049         PR c/69911
18050         * cgraphunit.c (check_global_declaration): Check main_input_filename
18051         and DECL_SOURCE_FILE are not NULL.
18053 2016-02-23  Martin Jambor  <mjambor@suse.cz>
18055         PR tree-optimization/69666
18056         * tree-sra.c (sra_modify_assign): Do not attempt to create
18057         default_def replacements for unscalarizable regions.
18059 2016-02-20  Mark Wielaard  <mjw@redhat.com>
18061         PR c/28901
18062         * cgraphunit.c (check_global_declaration): Check level of
18063         warn_unused_const_variable and main_input_filename.
18064         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
18065         (-Wunused-variable): For C implies -Wunused-const-variable=1.
18066         (-Wunused-const-variable): Explain levels 1 and 2.
18068 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
18070         PR target/69888
18071         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
18072         identical arguments.  Formatting and spelling fixes.
18074         PR target/69885
18075         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
18076         be specified.
18078         PR target/69894
18079         PR target/69895
18080         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
18081         and m68k-devices.def.
18082         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
18083         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
18085 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
18087         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
18088         and HImode registers.
18090 2016-02-22  Richard Biener  <rguenther@suse.de>
18092         PR tree-optimization/69882
18093         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
18094         preserve permutations present because of gaps.
18095         (vect_supported_load_permutation_p): Always continue checking
18096         permutations after vect_attempt_slp_rearrange_stmts.
18098 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
18100         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
18101         min_profitable_estimate, rather than min_profitable_iters.
18103 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
18105         PR target/69885
18106         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
18107         SImode for last match_operand.
18109 2016-02-22  Martin Liska  <mliska@suse.cz>
18111         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
18112         return bitsize - 1 as the return value.
18114 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
18116         PR target/69806
18117         PR target/54089
18118         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
18119         Handle negative shift counts.
18120         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
18121         force_reg on the shift constant.
18122         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
18123         (lshrsi3_d): Handle negative shift counts.
18125 2016-02-22  Richard Biener  <rguenther@suse.de>
18126             Tom de Vries  <tom@codesourcery.com>
18128         * graph.c: Include dumpfile.h.
18129         (print_graph_cfg): Split into three overloads.
18130         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
18132 2016-02-22  Tom de Vries  <tom@codesourcery.com>
18134         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
18135         dump-fn.
18137 2016-02-22  Richard Biener  <rguenther@suse.de>
18139         PR ipa/37448
18140         * ipa-inline-transform.c (inline_call): When not updating
18141         overall summaries adjust self size by the growth estimate.
18142         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
18143         hash-set, do not update overall summaries here.  Renamed from ...
18144         (inline_to_all_callers): ... this which is now wrapping the
18145         above and performing delayed overall summary update.
18146         (early_inline_small_functions): Delay updating of the overall
18147         summary.
18149 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
18151         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
18152         variable.
18154 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
18156         PR driver/69805
18157         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
18158         :%* in %:gt() argument.
18159         (greater_than_spec_func): Adjust for expecting only numbers,
18160         if there are more than two numbers, compare the last two.
18162 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
18164         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
18165         -Wnarrowing with -std.
18167 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
18169         PR c++/69851
18170         * expr.c (store_field): Don't use bit-field path if exp is
18171         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
18172         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
18173         and the assignment can be performed by bitwise copy.  Formatting
18174         fix.
18176         PR middle-end/69838
18177         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
18178         call copy_reg_eh_region_note_forward on before and/or after sequences
18179         and remove note from insn if it no longer can throw.
18181         PR target/69820
18182         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
18183         if TARGET_AVX512BW.
18185 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18187         * config/s390/vector.md: Add missing commutative operand markers
18188         to the patterns which qualify for one.
18189         * config/s390/vx-builtins.md: Likewise.
18191 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18193         * config/s390/vector.md (VI, VI_QHS): Add single element vector
18194         types to mode iterators.
18195         (vec_double): ... and mode attribute.
18196         * config/s390/vx-builtins.md (non_vec_int): Likewise.
18198 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18200         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
18201         Change the predicate of op2 from nonimmediate to general and let
18202         reload fix it if necessary.
18204 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18206         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
18208 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18210         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
18211         mode.
18213 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18215         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
18216         * config/s390/s390.c (s390_expand_vec_movstr): New function.
18217         * config/s390/s390.md ("movstr<P:mode>"): Call
18218         s390_expand_vec_movstr.
18220 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18222         * config/s390/s390.md: Add missing output modifier for operand 1
18223         to print it as address properly.
18225 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18227         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
18228         * config/s390/2964.md: New file.
18229         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
18230         of insn grouping attributes depending on the CPU level.
18231         (s390_get_unit_mask): New function.
18232         (s390_sched_score): Remove the OOO from the scheduling macros.
18233         Add loop to calculate a score for the instruction mix.
18234         (s390_sched_reorder): Likewise plus improve debug output.
18235         (s390_sched_variable_issue): Rename macros as above.  Calculate
18236         the unit distances after actually scheduling an insn.  Improve
18237         debug output.
18238         (s390_sched_init): Clear last_scheduled_unit_distance array.
18239         * config/s390/s390.md: Include 2964.md.
18241 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
18243         PR target/69671
18244         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
18245         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
18246         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
18247         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
18248         *avx512f_<code>v8div16qi2_mask_1): New insns.
18250 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
18252         PR target/68404
18253         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
18254         2016-02-09 change.
18256         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
18257         earlyclobber from target.  Use wF constraint for fused memory
18258         address.
18259         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
18261 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
18262             Martin Liska  <mliska@suse.cz>
18264         PR sanitizer/69863
18265         * cfgexpand.c (asan_sanitize_stack_p): New function.
18266         (partition_stack_vars): Use the function.
18267         (expand_stack_vars): Likewise.
18268         (defer_stack_allocation): Likewise.
18269         (expand_used_vars): Likewise.
18271 2016-02-18  Richard Biener  <rguenther@suse.de>
18273         PR middle-end/69553
18274         * fold-const.c (operand_equal_p): Properly compare offsets for
18275         IMAGPART_EXPR and ARRAY_REF.
18277 2016-02-18  Nick Clifton  <nickc@redhat.com>
18279         PR target/62254
18280         PR target/69610
18281         * config/arm/arm.c (arm_option_override_internal): Disable
18282         interworking if the target does not support thumb instructions.
18283         (arm_reload_in_hi): Handle the case where a register to register
18284         move needs reloading because there is no simple pattern to handle
18285         it.
18286         (arm_reload_out_hi): Likewise.
18288 2016-02-18  Richard Biener  <rguenther@suse.de>
18290         PR middle-end/69854
18291         * match.pd: Don't use fold_binary or fold_unary for folding
18292         constants.
18294 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
18296         PR c++/69850
18297         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
18298         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
18299         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
18300         warn on gimple_no_warning_p statements.
18302 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
18304         * doc/extend.texi (C++ Attributes): Correct description of
18305         warn_unused type attribute.
18307 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18309         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
18310         correct instruction.
18312 2016-02-17  Richard Biener  <rguenther@suse.de>
18314         PR rtl-optimization/69609
18315         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
18316         (find_traces_1_round): When ending a trace update cached priority
18317         of successors.
18318         (bb_to_key): Use cached priority when available.
18319         (copy_bb): Initialize cached priority.
18320         (reorder_basic_blocks_software_trace_cache): Likewise.
18322 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18324         PR target/69161
18325         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
18326         New predicate.
18327         (aarch64_comparison_operator): Break overly long line into two.
18328         (aarch64_comparison_operation): Likewise.
18329         * config/aarch64/aarch64.md (cstorecc4): Use
18330         aarch64_comparison_operator_mode instead of
18331         aarch64_comparison_operator.
18332         (cstore<mode>4): Likewise.
18333         (aarch64_cstore<mode>): Likewise.
18334         (*cstoresi_insn_uxtw): Likewise.
18335         (cstore<mode>_neg): Likewise.
18336         (*cstoresi_neg_uxtw): Likewise.
18338 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18340         PR target/69161
18341         * config/arm/predicates.md (arm_comparison_operator_mode):
18342         New predicate.
18343         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
18344         instead of arm_comparison_operator.
18345         (*mov_negscc): Likewise.
18346         (*mov_notscc): Likewise.
18347         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
18348         (*thumb2_mov_negscc): Likewise.
18349         (*thumb2_mov_negscc_strict_it): Likewise.
18350         (*thumb2_mov_notscc): Likewise.
18351         (*thumb2_mov_notscc_strict_it): Likewise.
18353 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
18355         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
18356         Add missing return.
18358 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
18360         * config/visium/visium.c (machine_libfunc_index): New enum.
18361         (machine_libfuncs): New structure.
18362         (visium_libfuncs): New static variable.
18363         (TARGET_INIT_LIBFUNCS): Define to...
18364         (visium_init_libfuncs): ...this.  New function.
18365         (expand_block_move_4): Use the appropriate libfunc.
18366         (expand_block_move_2): Likewise.
18367         (expand_block_move_1): Likewise.
18368         (expand_block_set_4): Likewise.
18369         (expand_block_set_2): Likewise.
18370         (expand_block_set_1): Likewise.
18371         (visium_trampoline_init): Likewise.
18373 2016-02-17  Nick Clifton  <nickc@redhat.com>
18375         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
18376         TI's devices.csv file as of March 2016.
18378 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
18380         PR Target/48344
18381         * opts-global.c (handle_common_deferred_options): Introduce and
18382         initialize two global variables to remember command-line options
18383         specifying a stack-limiting register.
18384         * opts.h: Add extern declarations of the two new global variables.
18385         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
18386         variable based on the values of the two new global variables.
18388 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
18390         PR c/69835
18391         * common.opt (Wnonnull-compare): New warning.
18392         * doc/invoke.texi (-Wnonnull): Remove text about comparison
18393         of arguments against NULL.
18394         (-Wnonnull-compare): Document.
18395         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
18396         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
18397         * passes.def (pass_warn_nonnull_compare): Add.
18398         * gimple-ssa-nonnull-compare.c: New file.
18400 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
18402         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
18403         AARCH64_EXTRA_TUNE_RECIP_SQRT.
18405 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
18407         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
18408         reciprocal sqrt for -mlow-precision-recip-sqrt.
18410 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
18411             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18413         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
18414         always use lane loads to construct non-constant vectors.
18416 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
18418         * config/aarch64/aarch64.md
18419         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
18420         constraints for operand 3.
18421         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
18423 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
18424             Richard Biener  <rguenther@suse.de>
18426         PR tree-optimization/69820
18427         * tree-vect-patterns.c (type_conversion_p): Return false if
18428         *orig_type is unsigned single precision or boolean.
18429         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
18430         Formatting fix.
18432 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
18434         PR rtl-optimization/69764
18435         PR rtl-optimization/69771
18436         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
18437         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
18439 2016-02-16  Richard Biener  <rguenther@suse.de>
18441         PR tree-optimization/69776
18442         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
18443         sets from caller.
18444         (indirect_refs_may_alias_p): Likewise.
18445         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
18446         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
18447         according to tbaa_p.
18448         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
18449         (optimize_stmt): For redundant store discovery do not allow tbaa.
18451 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
18453         PR tree-optimization/69714
18454         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
18455         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
18457 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
18459         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
18460         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
18461         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
18462         * config/arc/arc.c (arc_init): Check FPU options.
18463         (get_arc_condition_code): Handle new CC_FPU* modes.
18464         (arc_select_cc_mode): Likewise.
18465         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
18466         register pair only. Allow access for ARCv2 accumulator.
18467         (gen_compare_reg): Whenever we have FPU support use FPU compare
18468         instructions.
18469         (arc_reorg): Don't generate brcc insns when FPU compare
18470         instructions are involved.
18471         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
18472         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
18473         floating point emulation.
18474         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
18475         (REVERSE_CONDITION): Add new CC_FPU* modes.
18476         (TARGET_FP_SP_BASE): Define.
18477         (TARGET_FP_DP_BASE): Likewise.
18478         (TARGET_FP_SP_FUSED): Likewise.
18479         (TARGET_FP_DP_FUSED): Likewise.
18480         (TARGET_FP_SP_CONV): Likewise.
18481         (TARGET_FP_DP_CONV): Likewise.
18482         (TARGET_FP_SP_SQRT): Likewise.
18483         (TARGET_FP_DP_SQRT): Likewise.
18484         (TARGET_FP_DP_AX): Likewise.
18485         * config/arc/arc.md (ARCV2_ACC): New constant.
18486         (type): New fpu type attribute.
18487         (SDF): Conditional iterator.
18488         (cstore<mode>, cbranch<mode>): Change expand condition.
18489         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
18490         handles FPU/FPX cases as well.
18491         * config/arc/arc.opt (mfpu): New option.
18492         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
18493         Renamed.
18494         (adddf3, muldf3, subdf3): Removed.
18495         * config/arc/predicates.md (proper_comparison_operator): Recognize
18496         CC_FPU* modes.
18497         * config/arc/fpu.md: New file.
18498         * doc/invoke.texi (ARC Options): Document mfpu option.
18500 2016-02-16  Richard Biener  <rguenther@suse.de>
18502         PR rtl-optimization/69291
18503         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
18504         noce_operand_ok check.
18506 2016-02-16  Tom de Vries  <tom@codesourcery.com>
18508         PR lto/67709
18509         * omp-low.c (simd_clone_create): Remove call to
18510         symtab->call_cgraph_insertion_hooks.
18512 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
18514         PR tree-optimization/69802
18515         * tree-ssa-reassoc.c (update_range_test): If op is
18516         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
18517         op == 1 test of precision 1 integral op, otherwise handle
18518         that case as op itself.  Fix up formatting.
18519         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
18520         up formatting.
18522 2016-02-16  Richard Biener  <rguenther@suse.de>
18524         PR tree-optimization/69586
18525         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
18526         types for conversion sources.
18528 2016-02-16  Richard Biener  <rguenther@suse.de>
18530         PR middle-end/69801
18531         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
18532         mask OEP_ADDRESS_OF.
18534 2016-02-16  Alan Modra  <amodra@gmail.com>
18536         PR target/68973
18537         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
18538         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
18539         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
18540         (p8_mtvsrwz): New.
18541         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
18542         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
18543         (p8_fmrgow_<mode>): Likewise.
18544         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
18545         changes.
18546         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
18547         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
18548         to use movdi_internal64.  Remove op0_di.
18549         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
18551 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
18553         Add support for the FCCMP insn types
18555         * config/aarch64/aarch64.md (fccmp): Change insn type.
18556         (fccmpe): Likewise.
18557         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
18558         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
18559         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
18560         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
18561         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
18562         * config/arm/types.md (fccmps): Add new insn type.
18563         (fccmpd): Likewise.
18565 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18567         * alias.c (get_alias_set): Fix a typo in comment.
18569 2016-02-15  Richard Biener  <rguenther@suse.de>
18571         PR tree-optimization/69595
18572         * match.pd: Complete range test simplification to true.
18574 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
18576         PR rtl-optimization/69648
18577         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
18578         pic_offset_table_rtx.
18580         PR rtl-optimization/69752
18581         * ira.c (update_equiv_regs): When looking for more than a single SET,
18582         also take other side effects into account.
18584 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
18586         * config/s390/s390.c (s390_function_profiler): Add a new sequence
18587         for z900+ CPUs in 31-bit mode.
18589 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
18591         * common/config/s390/s390-common.c (s390_supports_split_stack):
18592         New function.
18593         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
18594         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
18595         * config/s390/s390.c (struct machine_function): New field
18596         split_stack_varargs_pointer.
18597         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
18598         in s390_emit_prologue.
18599         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
18600         vararg pointer.
18601         (morestack_ref): New global.
18602         (SPLIT_STACK_AVAILABLE): New macro.
18603         (s390_expand_split_stack_prologue): New function.
18604         (s390_live_on_entry): New function.
18605         (s390_va_start): Use split-stack vararg pointer if appropriate.
18606         (s390_asm_file_end): Emit the split-stack note sections.
18607         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
18608         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
18609         (UNSPECV_SPLIT_STACK_CALL): New unspec.
18610         (UNSPECV_SPLIT_STACK_DATA): New unspec.
18611         (split_stack_prologue): New expand.
18612         (split_stack_space_check): New expand.
18613         (split_stack_data): New insn.
18614         (split_stack_call): New expand.
18615         (split_stack_call_*): New insn.
18616         (split_stack_cond_call): New expand.
18617         (split_stack_cond_call_*): New insn.
18619 2016-02-15  Richard Biener  <rguenther@suse.de>
18621         PR tree-optimization/69783
18622         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18623         Add trivially correct cases.
18625 2016-02-15  Tom de Vries  <tom@codesourcery.com>
18627         PR lto/69655
18628         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
18629         do_force_output.
18630         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
18632 2016-02-15  Richard Biener  <rguenther@suse.de>
18634         PR tree-optimization/69776
18635         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
18636         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
18637         indicate whether we can use TBAA to disambiguate against stores.
18638         Use alias-set zero if not.
18639         (visit_reference_op_store): Do not use TBAA when looking up
18640         redundant stores.
18641         * tree-ssa-pre.c (compute_avail): Use TBAA here.
18642         (eliminate_dom_walker::before_dom_children): But not when looking
18643         up redundant stores.
18645 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
18647         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
18649 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18651         *  config/i386/znver1.md
18652         (znver1_pop, znver1_pop_mem,
18653         znver1_load_imov_double_store,
18654         znver1_load_imov_direct_store,
18655         znver1_load_imov_direct_load,
18656         znver1_load_imov_double_load): Add new.
18657         (znver1_insn, znver1_insn_load): Add icmov type.
18658         (znver1_sseavx_fma,
18659         znver1_sseavx_fma_load,
18660         znver1_avx256_fma,
18661         znver1_avx256_fma_load): Fix pipe usage.
18663 2016-02-14  Alan Modra  <amodra@gmail.com>
18665         PR target/68973
18666         * reload.c (find_reloads_address_1): For pre/post-inc/dec
18667         with an invalid hard reg, reload just the reg not the entire
18668         pre/post-inc/dec address expression.
18670 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
18672         PR target/67260
18673         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
18674         fixed R1_REG scratch reg.
18675         (sibcall_value_pcrel_fdpic): Likewise.
18677 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
18679         PR target/67636
18680         PR target/64345
18681         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
18683 2016-02-12  Walter Lee  <walt@tilera.com>
18685         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
18686         * config/tilegx/t-tilegx: Likewise.
18688 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
18690         PR other/69554
18691         * diagnostic-show-locus.c (struct line_span): New struct.
18692         (layout::get_first_line): Delete.
18693         (layout::get_last_line): Delete.
18694         (layout::get_num_line_spans): New member function.
18695         (layout::get_line_span): Likewise.
18696         (layout::print_heading_for_line_span_index_p): Likewise.
18697         (layout::get_expanded_location): Likewise.
18698         (layout::calculate_line_spans): Likewise.
18699         (layout::m_first_line): Delete.
18700         (layout::m_last_line): Delete.
18701         (layout::m_line_spans): New field.
18702         (layout::layout): Update comment.  Replace m_first_line and
18703         m_last_line with m_line_spans, replacing their initialization
18704         with a call to calculate_line_spans.
18705         (diagnostic_show_locus): When printing source lines and
18706         annotations, rather than looping over a single span
18707         of lines, instead loop over each line_span within
18708         the layout, with an inner loop over the lines within them.
18709         Call the context's start_span callback when changing line spans.
18710         * diagnostic.c (diagnostic_initialize): Initialize start_span.
18711         (diagnostic_build_prefix): Break out the building of the location
18712         part of the string into...
18713         (diagnostic_get_location_text): ...this new function, rewriting
18714         it from nested ternary expressions to a sequence of "if"
18715         statements.
18716         (default_diagnostic_start_span_fn): New function.
18717         * diagnostic.h (diagnostic_start_span_fn): New typedef.
18718         (diagnostic_context::start_span): New field.
18719         (default_diagnostic_start_span_fn): New prototype.
18721 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
18723         PR driver/69779
18724         * gcc.c (driver::finalize): Fix cleanup of "specs".
18726 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
18728         PR driver/69265
18729         PR driver/69453
18730         * gcc.c (driver::driver): Initialize m_option_suggestions.
18731         (driver::~driver): Clean up m_option_suggestions.
18732         (suggest_option): Convert to...
18733         (driver::suggest_option): ...this, and split out into
18734         driver::build_option_suggestions and find_closest_string.
18735         (driver::build_option_suggestions): New function, from
18736         first half of suggest_option.  Special-case
18737         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
18738         the sanitizer_opts array.  For options of enum types, add the
18739         various enum values to the candidate strings.
18740         (driver::handle_unrecognized_options): Remove "const".
18741         * gcc.h (driver::handle_unrecognized_options): Likewise.
18742         (driver::build_option_suggestions): New decl.
18743         (driver::suggest_option): New decl.
18744         (driver::m_option_suggestions): New field.
18745         * opts-common.c (add_misspelling_candidates): New function.
18746         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
18747         and make non-static.
18748         * opts.h (sanitizer_opts): New array decl.
18749         (add_misspelling_candidates): New function decl.
18750         * spellcheck.c (find_closest_string): New function.
18751         * spellcheck.h (find_closest_string): New function decl.
18753 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
18755         PR rtl-optimization/69764
18756         PR rtl-optimization/69771
18757         * optabs.c (expand_binop_directly): For shift_optab_p, force
18758         convert_modes with VOIDmode if xop1 has VOIDmode.
18760 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
18762         PR target/69729
18763         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
18764         to correctly determine instrumentation thunks.
18766 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
18768         PR ipa/69241
18769         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
18770         type by reference, force lhs on the call.
18772         PR ipa/68672
18773         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
18774         Compute retval and retbnd early in all cases if split_part_return_p
18775         and return_bb is not EXIT.  Remove all clobber stmts and reset
18776         all debug stmts that refer to SSA_NAMEs defined in split part,
18777         except if it is retval, in that case replace the old retval with the
18778         lhs of the call to the split part.
18780 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
18782         revert:
18783         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
18785         PR middle-end/66726
18786         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18787         whose result is used in PHI.
18788         (maybe_optimize_range_tests): Likewise.
18789         (final_range_test_p): Likweise.
18791 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
18793         PR middle-end/66726
18794         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18795         whose result is used in PHI.
18796         (maybe_optimize_range_tests): Likewise.
18797         (final_range_test_p): Likweise.
18799 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
18801         * cgraph.c: Spelling fixes - behaviour -> behavior and
18802         neighbour -> neighbor.
18803         * target.def: Likewise.
18804         * sel-sched.c: Likewise.
18805         * config/mips/mips.c: Likewise.
18806         * config/arc/arc.md: Likewise.
18807         * config/arm/cortex-a57.md: Likewise.
18808         * config/arm/arm.c: Likewise.
18809         * config/arm/neon.md: Likewise.
18810         * config/arm/arm-c.c: Likewise.
18811         * config/vms/vms-c.c: Likewise.
18812         * config/s390/s390.c: Likewise.
18813         * config/i386/znver1.md: Likewise.
18814         * config/i386/i386.c: Likewise.
18815         * config/ia64/hpux-unix2003.h: Likewise.
18816         * config/msp430/msp430.md: Likewise.
18817         * config/rx/rx.c: Likewise.
18818         * config/rx/rx.md: Likewise.
18819         * config/aarch64/aarch64-simd.md: Likewise.
18820         * config/aarch64/aarch64.c: Likewise.
18821         * config/nvptx/nvptx.c: Likewise.
18822         * config/bfin/bfin.c: Likewise.
18823         * config/cris/cris.opt: Likewise.
18824         * config/rs6000/rs6000.c: Likewise.
18825         * target.h: Likewise.
18826         * spellcheck.c: Likewise.
18827         * ira-build.c: Likewise.
18828         * tree-inline.c: Likewise.
18829         * builtins.c: Likewise.
18830         * lra-constraints.c: Likewise.
18831         * explow.c: Likewise.
18832         * hwint.h: Likewise.
18833         * targhooks.c: Likewise.
18834         * tree-vect-data-refs.c: Likewise.
18835         * expr.c: Likewise.
18836         * doc/tm.texi: Likewise.
18837         * doc/extend.texi: Likewise.
18838         * doc/install.texi: Likewise.
18839         * doc/md.texi: Likewise.
18840         * tree-ssa-tail-merge.c: Likewise.
18841         * sched-int.h: Likewise.
18842         * match.pd: Likewise.
18843         * sched-ebb.c: Likewise.
18844         * target.def (omit_struct_return_reg): Likewise.
18845         * gimple-ssa-isolate-paths.c: Likewise.
18846         (find_implicit_erroneous_behaviour): Renamed to...
18847         (find_implicit_erroneous_behavior): ... this.
18848         (find_explicit_erroneous_behaviour): Renamed to...
18849         (find_explicit_erroneous_behavior): ... this.
18850         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
18852 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
18854         PR rtl-optimization/64682
18855         PR rtl-optimization/69567
18856         PR rtl-optimization/69737
18857         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
18858         in I2 as well, just lose it.
18860 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18862         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
18863         New variable.
18864         (aarch64_last_printed_tune_string): Likewise.
18865         (aarch64_declare_function_name): Only output .arch assembler
18866         directive if it will be different from the previously output
18867         directive.  Same for .tune comment but only if -dA is set.
18868         (aarch64_start_file): New function.
18869         (TARGET_ASM_FILE_START): Define.
18871 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
18873         PR plugins/69758
18874         * Makefile.in (PLUGIN_HEADERS): Add params.list.
18876 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
18878         PR target/65313
18879         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
18880         -Wmaybe-uninitialized warning.
18882 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
18884         PR target/69713
18885         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
18887 2016-02-11  Richard Biener  <rguenther@suse.de>
18889         PR rtl-optimization/69291
18890         * ifcvt.c (noce_try_store_flag_constants): Do not allow
18891         subexpressions affected by changing the result.
18893 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
18895         PR target/69148
18896         * lra-constraints.c (curr_insn_transform): Find in/out operands
18897         for secondary memory moves.  Update dups.
18899 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
18901         PR tree-optimization/69652
18902         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
18903         to nested loop, did source re-formatting, skip debug statements,
18904         add check on statement with volatile operand, remove dead scalar
18905         statements.
18907 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
18908             Patrick Palka  <ppalka@gcc.gnu.org>
18910         PR ipa/69241
18911         PR c++/69649
18912         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
18913         calls if the return type is TREE_ADDRESSABLE.
18914         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
18915         * ipa-split.c (split_function): Fix doubled "we" in comment.
18916         Use void return type for the split part even if
18917         !split_point->split_part_set_retval.
18919 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
18921         PR tree-optimization/68021
18922         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
18923         when computing the value of biv cand by itself.
18925 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
18927         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
18928         (cortexa57_tunings): Likewise.
18929         (cortexa72_tunings): Likewise.
18930         (arch_macro_fusion_pair_p): Add support for AES fusion.
18931         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
18932         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18933         Allow virtual registers before reload so early scheduling works.
18934         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
18935         correct latency and pipeline.
18936         (cortex_a57_crypto_complex): Likewise.
18937         (cortex_a57_crypto_xor): Likewise.
18938         (define_bypass): Add AES bypass.
18940 2016-02-10  Richard Biener  <rguenther@suse.de>
18942         PR tree-optimization/69726
18943         * passes.def: Add DCE pass before late uninit.
18944         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
18945         really fixup if-conversions job.
18947 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
18949         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
18950         (arm_cortex_a57_tune): Likewise.
18951         (aarch_macro_fusion_pair_p): Add support for AES fusion.
18952         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
18954 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
18956         * timevar.def (TV_PHASE_DBGINFO): Delete.
18957         (TV_PHASE_CHECK_DBGINFO): Likewise.
18958         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
18960 2016-02-10  Richard Biener  <rguenther@suse.de>
18962         PR tree-optimization/69719
18963         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18964         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
18966 2016-02-09  Andrew Pinski  <apinski@cavium.com>
18968         PR tree-opt/69282
18969         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
18970         get_vcond_mask_icode returns false.
18972 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
18974         PR target/68404
18975         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
18976         an ADDIS that adds a pointer to a large constant that sets the
18977         upper16 bits with a load operation.
18979 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
18981         PR target/68532
18982         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
18983         order.
18984         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
18985         endian.
18986         (vzipq_s16): Likewise.
18987         (vzipq_s32): Likewise.
18988         (vzipq_f32): Likewise.
18989         (vzipq_u8): Likewise.
18990         (vzipq_u16): Likewise.
18991         (vzipq_u32): Likewise.
18992         (vzipq_p8): Likewise.
18993         (vzipq_p16): Likewise.
18995 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
18997         PR target/68532
18998         * config/arm/arm.c (neon_endian_lane_map): New function.
18999         (neon_vector_pair_endian_lane_map): New function.
19000         (arm_evpc_neon_vuzp): Allow for big endian lane order.
19001         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
19002         endian.
19003         (vuzpq_s16): Likewise.
19004         (vuzpq_s32): Likewise.
19005         (vuzpq_f32): Likewise.
19006         (vuzpq_u8): Likewise.
19007         (vuzpq_u16): Likewise.
19008         (vuzpq_u32): Likewise.
19009         (vuzpq_p8): Likewise.
19010         (vuzpq_p16): Likewise.
19012 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
19014         PR target/69634
19015         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
19016         debug insns.
19018 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
19020         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
19021         truncate const_int operand 1 to QImode.
19023 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
19025         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
19026         corresponding to an abnormal edge.
19028 2016-02-09  Tom de Vries  <tom@codesourcery.com>
19030         PR tree-optimization/69599
19031         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
19032         function.
19033         (find_func_aliases_for_builtin_call, find_func_clobbers)
19034         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
19035         partition.
19037 2016-02-09  Richard Biener  <rguenther@suse.de>
19039         PR tree-optimization/69715
19040         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
19041         LHS on calls as non-rewritable.
19043 2016-02-09  Tom de Vries  <tom@codesourcery.com>
19045         PR lto/69707
19046         * lto-wrapper.c (append_diag_options): New function.
19047         (compile_offload_image): Call append_diag_options.
19049 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
19051         PR other/69722
19052         * doc/extend.texi (Flag Output Operands): Correct sectioning.
19053         Minor copy-edit to fix verb tenses.
19055 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
19057         PR tree-optimization/69209
19058         * ipa-split.c (split_function): If split part is not
19059         returning retval, retval has gimple type but is not
19060         gimple value, force it into a SSA_NAME first.
19062 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
19064         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
19065         outdated section.
19067 2016-02-08  Jason Merrill  <jason@redhat.com>
19069         PR c++/69631
19070         * convert.c (convert_to_integer_1): Check dofold on truncation
19071         distribution.
19072         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
19073         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
19074         Rename from *_nofold.
19075         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
19076         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
19078 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
19080         PR target/60410
19081         * tree.c (build_common_tree_nodes): Remove short_double argument.
19082         All callers changed.
19083         * tree.h (build_common_tree_nodes): Adjust declaration.
19084         * doc/invoke.texi (-fshort-double): Remove documentation.
19085         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19086         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
19087         * lto-wrapper.c (merge_and_complain, append_compiler_options)
19088         (append_linker_options): Don't handle OPT_fshort_double.
19090         PR rtl-optimization/68730
19091         * lra-remat.c (insn_to_cand_activation): New static variable.
19092         (lra_remat): Allocate and free it.
19093         (create_cand): New arg activation. Initialize a field in
19094         insn_to_cand_activation if it is nonnull.
19095         (create_cands): Pass the activation insn to create_cand when making
19096         a candidate involving an output reload.  Reorganize code a little.
19097         (do_remat): Keep track of active status of candidates in a separate
19098         bitmap.
19100 2016-02-08  Richard Biener  <rguenther@suse.de>
19102         PR tree-optimization/69719
19103         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
19104         Properly use absolute of the difference of the two offsets to
19105         compare or adjust the segment length.
19107 2016-02-08  Richard Biener  <rguenther@suse.de>
19108             Jeff Law  <law@redhat.com>
19110         PR target/68273
19111         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
19112         types for anonymous SSA names.
19114 2016-02-08   Richard Biener  <rguenther@suse.de>
19116         PR rtl-optimization/69274
19117         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
19119 2016-02-08  Jeff Law  <law@redhat.com>
19121         PR tree-optimization/65917
19122         * tree-ssa-dom.c (record_temporary_equivalences): Record both
19123         equivalences from if (x == y) style conditionals.
19124         (loop_depth_of_name): Remove.
19125         (record_equality): Remove loop depth check.
19126         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
19127         (const_and_copies::record_const_or_copy_raw): New member function.
19128         * tree-ssa-scopedtables.c
19129         (const_and_copies::record_const_or_copy_raw): New, factored out of
19130         (const_and_copies::record_const_or_copy): Call new member function.
19132 2016-02-05  Jeff Law  <law@redhat.com>
19134         PR tree-optimization/68541
19135         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
19136         (count_stmts_in_block): New function.
19137         (poor_ifcvt_candidate_code): Likewise.
19138         (is_feasible_trace): Add some heuristics to determine when path
19139         splitting is profitable.
19140         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
19141         is a diamond with a single exit.
19143 2016-02-05  Martin Sebor  <msebor@redhat.com>
19145         PR c++/69662
19146         * doc/invoke.texi: Update -Wplacement-new to take an optional
19147         argument.
19149 2016-02-06  Richard Henderson  <rth@redhat.com>
19151         PR c/69643
19152         * tree.c (tree_nop_conversion_p): Do not strip casts into or
19153         out of non-standard address spaces.
19155 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
19157         PR rtl-optimization/69691
19158         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
19160 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
19162         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
19163         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
19164         (*ieee128_mfvsrd_64bit): Likewise.
19165         (*ieee128_mfvsrd_32bit): Likewise.
19167 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
19169         PR target/69369
19170         Revert r232560:
19171         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
19173         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
19174         instrumented_version.
19176 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
19178         * doc/invoke.texi (Optimize Options): In table of --param options
19179         rename second occurrence of tracer-min-branch-ratio to
19180         tracer-min-branch-probability, rename
19181         tracer-min-branch-ratio-feedback to
19182         tracer-min-branch-probability-feedback and clarify description,
19183         rename sched-spec-state-edge-prob-cutoff to
19184         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
19185         to selsched-insns-to-rename, rename lto-minpartition to
19186         lto-min-partition, delete reorder-blocks-duplicate and
19187         reorder-blocks-duplicate-feedback.
19189 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19191         * config/s390/s390.c (s390_register_info_set_ranges): Remove
19192         superfluous loops.
19194 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19196         * doc/extend.texi: S/390: Correct some typos.
19198 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19200         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
19202 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19204         PR target/69625
19205         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
19206         (s390_register_info_gprtofpr): Use new macros above.
19207         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
19208         its name.
19209         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
19210         its name.  Adjust restore and save gpr ranges.
19211         (s390_register_info_set_ranges): New function.
19212         (s390_register_info): Use new macros above.  Call
19213         s390_register_info_set_ranges.
19214         (s390_optimize_register_info): Likewise.
19215         (s390_hard_regno_rename_ok): Use new macros.
19216         (s390_hard_regno_scratch_ok): Likewise.
19217         (s390_emit_epilogue): Likewise.
19218         (s390_can_use_return_insn): Likewise.
19219         (s390_optimize_prologue): Likewise.
19220         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
19222 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
19224         PR bootstrap/69677
19225         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
19226         alignment fixes.
19227         (ix86_option_override_internal): Disable TARGET_STV even for
19228         -m{incoming,preferred}-stack-boundary=3.
19230 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
19232         * config.gcc: Mark deprecated rtems targets as obsolete.
19234 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
19236         PR rtl-optimization/64682
19237         PR rtl-optimization/69567
19238         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
19239         before I2 only if the register is both used and set in I2.
19241 2016-02-04  DJ Delorie  <dj@redhat.com>
19243         * config/msp430/msp430.c (msp430_start_function): Add function type.
19245 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
19247         PR fortran/69368
19248         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
19250 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
19252         PR rtl-optimization/69577
19253         Revert:
19254         2015-10-29  Richard Henderson  <rth@redhat.com>
19256         PR target/68124
19257         PR rtl-opt/67609
19258         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
19259         sse check to the exact conditions of PR 67609.
19261 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
19263         PR target/69667
19264         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
19265         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
19266         not allowed into the traditional Altivec registers.
19267         (movtd_64bit_nodm): Likewise.
19268         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
19270 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
19272         * config/aarch64/cortex-a57-fma-steering.c
19273         (aarch64_register_fma_steering): Remove "static" from arguments
19274         to register_pass.
19276 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
19278         PR target/69619
19279         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
19280         twice when complex.
19282 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
19284         * doc/invoke.texi: Delete -mno-fma4.
19286 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
19288         PR rtl-optimization/69577
19289         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
19290         (find_subregs_of_mode): Update accordingly.  Iterate over partial
19291         definitions.
19293 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
19295         * config/arm/arm-protos.h (neon_reinterpret): Remove.
19296         * config/arm/arm.c (neon_reinterpret): Remove.
19297         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
19298         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
19299         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
19300         vreinterpretti): Remove.
19301         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
19302         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
19303         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
19304         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
19305         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
19306         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
19307         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
19308         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
19309         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
19310         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
19311         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
19312         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
19313         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
19314         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
19315         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
19316         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
19317         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
19318         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
19319         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
19320         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
19321         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
19322         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
19323         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
19324         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
19325         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
19326         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
19327         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
19328         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
19329         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
19330         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
19331         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
19332         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
19333         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
19334         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
19335         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
19336         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
19337         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
19338         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
19339         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
19340         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
19341         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
19342         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
19343         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
19344         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
19345         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
19346         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
19347         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
19348         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
19349         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
19350         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
19351         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
19352         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
19353         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
19354         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
19355         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
19356         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
19357         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
19358         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
19359         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
19360         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
19361         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
19362         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
19363         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
19364         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
19365         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
19366         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
19367         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
19368         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
19369         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
19370         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
19371         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
19372         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
19373         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
19374         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
19375         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
19376         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
19377         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
19378         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
19379         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
19380         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
19381         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
19382         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
19383         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
19384         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
19385         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
19386         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
19387         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
19388         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
19389         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
19390         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
19391         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
19392         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
19393         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
19394         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
19395         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
19396         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
19397         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
19398         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
19399         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
19400         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
19401         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
19402         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
19403         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
19405 2016-02-04  Martin Liska  <mliska@suse.cz>
19407         PR sanitizer/69276
19408         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
19409         that are gimple_store_p.
19410         (maybe_instrument_call): Likewise.
19412 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
19414         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
19415         register scaling out of memory reference and comment why.
19417 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19419         PR target/65932
19420         PR target/67714
19421         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
19422         folding the source of a SET.
19424 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19426         PR target/65932
19427         PR target/67714
19428         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
19429         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
19431 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
19433         PR target/65932
19434         PR target/67714
19435         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
19436         HImode.
19438 2016-02-04  Christian Bruel  <christian.bruel@st.com>
19440         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
19441         * config/arm/arm.c (arm_set_current_function): Likewise.
19443 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
19444             Ilya Enkovich  <enkovich.gnu@gmail.com>
19445             H.J. Lu  <hongjiu.lu@intel.com>
19447         PR target/69454
19448         * config/i386/i386.c (convert_scalars_to_vector): Remove
19449         stack alignment fixes.
19450         (ix86_option_override_internal): Disable TARGET_STV if stack
19451         might not be aligned enough.
19452         (ix86_minimum_alignment): Assert that TARGET_STV is false.
19454 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
19456         * config/i386/x86-tune.def: Disable default prefetching
19457         for -march=znver1.
19459 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
19460             Vladimir Makarov  <vmakarov@redhat.com>
19462         PR target/69461
19463         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
19464         in validating fused toc addresses.
19466 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
19468         PR c/69627
19469         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
19470         range->m_caret fields if range->m_show_caret_p is false.
19472         PR target/69644
19473         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19474         Force oldval into register if it does not satisfy reg_or_short_operand
19475         predicate.  Fix up formatting.
19477 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
19478             Alexandre Oliva  <aoliva@redhat.com>
19480         PR target/69461
19481         * lra-constraints.c (simplify_operand_subreg): Check additionally
19482         address validity after potential reloading.
19483         (process_address_1): Check insns validity.  In case of failure do
19484         nothing.
19486 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
19488         PR target/69118
19489         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
19490         Fix target.
19492 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
19494         * wide-int.cc (canonize_uhwi): New function.
19495         (wi::divmod_internal): Use it.
19497 2016-02-02  James Norris  <jnorris@codesourcery.com>
19499         * gimplify.c (omp_notice_variable): Add usage check.
19501 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
19503         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
19504         like LE, GE, LT, GT when emitting relational operator.
19506 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
19508         * ira-costs.c (find_costs_and_classes): Add extra argument.
19509         * target.def (ira_change_pseudo_allocno_class): Add parameter.
19510         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
19511         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
19512         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
19513         Add best_class parameter, and return it if not ALL_REGS.
19514         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
19515         Add parameter.
19516         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
19517         Update target hook.
19519 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
19521         * config/aarch64/aarch64.c
19522         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
19523         (aarch64_ira_change_pseudo_allocno_class): New function.
19525 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
19527         PR target/67032
19528         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
19530 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
19532         * config/avr/avr.c (avr_option_override): Set
19533         PARAM_ALLOW_STORE_DATA_RACES to 1.
19535 2016-02-02  Richard Biener  <rguenther@suse.de>
19537         PR tree-optimization/69595
19538         * match.pd: Add range test simplifications to true/false.
19540 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
19542         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
19543         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
19544         instead.
19546 2016-02-02  Richard Biener  <rguenther@suse.de>
19548         PR tree-optimization/69606
19549         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
19550         info on the result before moving a stmt.
19552 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
19554         PR middle-end/68542
19555         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
19556         branch with vector comparison.
19557         * config/i386/sse.md (VI48_AVX): New mode iterator.
19558         (define_expand "cbranch<mode>4): Add support for conditional branch
19559         with vector comparison.
19560         * tree-vect-loop.c (optimize_mask_stores): New function.
19561         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
19562         has_mask_store field of vect_info.
19563         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
19564         vectorized loops having masked stores after vec_info destroy.
19565         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
19566         correspondent macros.
19567         (optimize_mask_stores): Add prototype.
19569 2016-02-02  Alan Modra  <amodra@gmail.com>
19571         PR target/69548
19572         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
19573         allow subregs.
19575 2016-02-02  Alan Modra  <amodra@gmail.com>
19577         PR target/68662
19578         * config/rs6000/rs6000.c (need_toc_init): New var, set it
19579         whenever toc_label_name used.
19580         (rs6000_file_start): Don't set up toc section here,
19581         (rs6000_output_function_epilogue): do so here instead,
19582         (rs6000_xcoff_file_start): and here.
19583         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
19584         (load_toc_aix_di): Likewise.
19586 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
19588         PR rtl-optimization/69592
19589         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
19590         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
19591         (num_sign_bit_copies_binary_arith_p): New inline function.
19592         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
19594 2016-02-01  Jeff Law  <law@redhat.com>
19596         PR tree-optimization/69580
19597         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
19598         * tree-ssa-threadbackward.c
19599         (fsm_find_control_statement_thread_paths): Do not try to walk
19600         through large PHI nodes.
19602 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
19604         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
19605         when count is incremented above limit, don't analyze further
19606         insns afterwards.
19608         * omp-low.c (oacc_parse_default_dims): Avoid
19609         -Wsign-compare warning, make sure value fits into int
19610         rather than just unsigned int.
19612 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
19614         PR tree-optimization/67921
19615         * fold-const.c (split_tree): New parameters.  Convert pointer
19616         type variable part to proper type before negating.
19617         (fold_binary_loc): Pass new arguments to split_tree.
19619 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
19621         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
19622         (nvptx_goacc_validate_dims): Extend to handle global defaults.
19623         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
19624         * doc/tm.texti: Rebuilt.
19625         * doc/invoke.texi (fopenacc-dim): Document.
19626         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
19627         (append_compiler_options): Likewise.
19628         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
19629         (oacc_parse_default_dims): New.
19630         (oacc_validate_dims): Add USED arg.  Select non-unity default when
19631         possible.
19632         (oacc_loop_fixed_partitions): Return mask of used partitions.
19633         (oacc_loop_auto_partitions): Emit dump info.
19634         (oacc_loop_partition): Return mask of used partitions.
19635         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
19636         loop partitioning and validation calls.
19638 2016-02-01  Richard Biener  <rguenther@suse.de>
19640         PR middle-end/69556
19641         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
19643 2016-02-01  Richard Biener  <rguenther@suse.de>
19645         PR tree-optimization/69574
19646         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
19647         of asserting return chrec_dont_know.
19649 2016-02-01  Martin Liska  <mliska@suse.cz>
19651         * mem-stats-traits.h: Add copyright header.
19652         * mem-stats.h: Likewise.
19654 2016-02-01  Richard Biener  <rguenther@suse.de>
19656         PR tree-optimization/69579
19657         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
19658         Do not propagate through abnormal PHI results.
19660 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
19662         * postreload.c (reload_cse_simplify): Remove dead code.
19664 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
19666         PR rtl-optimization/69570
19667         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
19668         if there is more than one set, not if there is a single set.
19670 2016-02-01  Richard Henderson  <rth@redhat.com>
19672         PR rtl-opt/69535
19673         * combine.c (make_compound_operation): When looking through a
19674         subreg, make sure to re-extend to the width of the outer mode.
19676 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
19678         PR tree-optimization/69546
19679         * wide-int.cc (wi::divmod_internal): For unsigned division
19680         where both operands fit into uhwi, if o1 is 1 and o0 has
19681         msb set, if divident_prec is larger than bits per hwi,
19682         clear another quotient word and return 2 instead of 1.
19683         Similarly for remainder with msb in HWI set, if dividend_prec
19684         is larger than bits per hwi.
19686 2016-01-29  Martin Jambor  <mjambor@suse.cz>
19688         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
19689         Use short lowercase names.
19690         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
19691         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
19692         acq_rel one.  Protect warning agains segfaults if
19693         get_memory_order_name returns NULL.
19694         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
19695         with release semantics.  Do not warn if get_memory_order already did.
19696         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
19697         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
19698         if get_memory_order already did.
19700 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
19702         * doc/install.texi: Document that isl-0.16 is supported.
19704 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
19706         PR target/69299
19707         * config/i386/constraints.md (Bm): Describe as special memory
19708         constraint.
19709         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
19710         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19711         * genpreds.c (struct constraint_data): Add is_special_memory.
19712         (have_special_memory_constraints, special_memory_start): New
19713         static vars.
19714         (special_memory_end): Ditto.
19715         (add_constraint): Add new arg is_special_memory.  Add code to
19716         process its true value.  Update have_special_memory_constraints.
19717         (process_define_constraint): Pass the new arg.
19718         (process_define_register_constraint): Ditto.
19719         (choose_enum_order): Process special memory.
19720         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
19721         function insn_extra_special_memory_constraint.
19722         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19723         * gensupport.c (process_rtx): Process
19724         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19725         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
19726         * ira-lives.c (single_reg_class): Use
19727         insn_extra_special_memory_constraint.
19728         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
19729         * lra-constraints.c (process_alt_operands): Ditto.
19730         (curr_insn_transform): Use insn_extra_special_memory_constraint.
19731         * recog.c (asm_operand_ok, preprocess_constraints): Process
19732         CT_SPECIAL_MEMORY.
19733         * reload.c (find_reloads): Ditto.
19734         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
19735         * stmt.c (parse_input_constraint): Use
19736         insn_extra_special_memory_constraint.
19738 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
19740         PR target/69530
19741         * lra-splill.c (lra_final_code_change): Revert r229087 by
19742         removing all sub-registers.
19744 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
19746         PR target/65604
19747         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
19749 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
19751         PR target/69551
19752         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
19753         SSE1, copy target into the temporary reg first before recursing
19754         on it.
19756 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
19758         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
19759         with vm.
19761 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
19763         * ginclude/stdarg.h: Test __cplusplus instead of
19764         __GXX_EXPERIMENTAL_CXX0X__.
19766 2016-01-29  Richard Biener  <rguenther@suse.de>
19768         PR tree-optimization/69547
19769         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
19770         Do not mark clobbers necessary.
19771         (mark_all_reaching_defs_necessary_1): Likewise.
19773 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19775         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
19776         declaration name with %qs and print it in both error messages.
19777         Also fix indentation.
19779 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19781         PR other/69006
19782         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
19783         trailing blank line from error message.
19785 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
19787         PR c++/69462
19788         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
19789         for C++-11.
19791 2016-01-29  Richard Biener  <rguenther@suse.de>
19793         PR middle-end/69537
19794         * match.pd: Allow all integral types when simplifying a
19795         widening or sign-changing conversion.
19797 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
19799         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
19800         back to setting codegen_error to fail codegen.
19802 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
19804         PR target/69459
19805         * config/i386/constraints.md (C): Only accept constant zero operand.
19806         (BC): New constraint.
19807         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
19808         instead of C constraint.
19809         * doc/md.texi (Machine Constraints): Update description
19810         of C constraint.
19812 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
19814         PR target/68400
19815         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
19817 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
19819         PR middle-end/69542
19820         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
19821         non-debug insns.
19823 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
19825         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
19826         branches if using guessed profile.
19828 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
19830         * graphite-optimize-isl.c (optimize_isl): Fix dump.
19832 2016-01-28  Richard Henderson  <rth@redhat.com>
19834         PR target/69305
19835         * config/aarch64/aarch64-modes.def (CC_Cmode): New
19836         * config/aarch64/aarch64-protos.h: Update.
19837         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
19838         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
19839         (aarch64_get_condition_code_1): Handle CC_Cmode.
19840         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
19841         (*add<mode>3_compareC_cconly_imm): New.
19842         (*add<mode>3_compareC_cconly): New.
19843         (*add<mode>3_compareC_imm): New.
19844         (add<mode>3_compareC): New.
19845         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
19846         to be first.  Use aarch64_carry_operation.
19847         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
19848         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
19849         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
19850         (subti3): Use subdi3_compare1.
19851         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
19852         (sub<mode>3_compare1): New.
19853         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
19854         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
19855         (*subsi3_carryin_uxtw): Likewise.
19856         (*ngc<mode>, *ngcsi_uxtw): Likewise.
19857         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
19858         * config/aarch64/iterators.md (DWI): New.
19859         * config/aarch64/predicates.md (aarch64_carry_operation): New.
19860         (aarch64_borrow_operation): New.
19862 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
19864         * graphite-optimize-isl.c (optimize_isl): Print a different debug
19865         message when isl does not return a valid schedule.
19867 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
19869         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
19870         Remove comments from class declarations: they are already in the code
19871         close by the defs.
19873 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
19875         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
19876         codegen_error_p.
19877         (ternary_op_to_tree): Same.
19878         (unary_op_to_tree): Same.
19879         (nary_op_to_tree): Same.
19880         (gcc_expression_from_isl_expr_op): Same.
19881         (gcc_expression_from_isl_expression): Same.
19882         (graphite_create_new_loop): Same.
19883         (graphite_create_new_loop_guard): Same.
19884         (build_iv_mapping): Same.
19885         (graphite_create_new_guard): Same.
19886         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
19887         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
19889 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
19891         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
19892         instead of setting codegen_error to fail codegen.
19894 2016-01-28  Jason Merrill  <jason@redhat.com>
19896         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
19898 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
19900         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
19901         Remove CONST_INT_P check in CCMP cost calculation.
19903 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
19905         * config/aarch64/aarch64.c (generic_vector_cost):
19906         Set vec_permute_cost.
19907         (cortexa57_vector_cost): Likewise.
19908         (exynosm1_vector_cost): Likewise.
19909         (xgene1_vector_cost): Likewise.
19910         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
19911         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
19912         Add vec_permute_cost entry.
19914 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
19916         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
19917         immediate as %1.
19918         (add<mode>3_compare0): Likewise.
19919         (addsi3_compare0_uxtw): Likewise.
19920         (add<mode>3nr_compare0): Likewise.
19921         (compare_neg<mode>): Likewise.
19922         (<optab><mode>3): Likewise.
19924 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
19926         * tree-vect-stmts.c (vectorizable_comparison): Add
19927         NULL check for vectype.
19929 2016-01-28  Richard Biener  <rguenther@suse.de>
19931         PR tree-optimization/69466
19932         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
19933         Account for PHIs we couldn't duplicate.
19935 2016-01-28  Martin Liska  <mliska@suse.cz>
19937         PR pch/68758
19938         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
19939         instead of ENABLE_VALGRIND_CHECKING.
19941 2016-01-27  Richard Henderson  <rth@redhat.com>
19943         PR rtl-opt/69447
19944         * lra-remat.c (subreg_regs): New.
19945         (dump_candidates_and_remat_bb_data): Dump it.
19946         (operand_to_remat): Reject if operand in subreg_regs.
19947         (set_bb_regs): Collect subreg_regs.
19948         (lra_remat): Init and free subreg_regs.  Compute
19949         calculate_local_reg_remat_bb_data before create_cands.
19951 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
19953         PR target/68986
19954         * config/i386/i386.c (ix86_update_stack_boundary): Don't
19955         change stack_alignment_needed for __tls_get_addr call.
19957 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
19959         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
19961 2016-01-27  Jeff Law  <law@redhat.com>
19963         PR tree-optimization/68398
19964         PR tree-optimization/69196
19965         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
19966         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
19967         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19968         Only count PHIs in the last block in the path.  The others will
19969         const/copy propagate away.  Add heuristic to allow more irreducible
19970         subloops to be created when it is likely profitable to do so.
19972         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19973         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
19974         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
19976 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
19978         PR lto/69254
19979         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
19980         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
19981         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
19982         * tree-streamer-in.c: Include asan.h.
19983         (streamer_get_builtin_tree): For builtins in sanitizer
19984         range call initialize_sanitizer_builtins and retry.
19986 2016-01-27  Ian Lance Taylor  <iant@google.com>
19988         * common.opt (fkeep-gc-roots-live): New undocumented option.
19989         * tree-ssa-loop-ivopts.c (add_candidate_1): If
19990         -fkeep-gc-roots-live, skip pointers.
19991         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
19992         NULL.
19994 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
19996         PR target/69512
19997         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
19998         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
20000 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
20002         PR target/68380
20003         * configure.ac: NetBSD provides SSP in its C library.
20004         * configure: Updated.
20006 2016-01-27  Richard Biener  <rguenther@suse.de>
20008         PR tree-optimization/69166
20009         * tree-vect-loop.c (vect_is_simple_reduction): Always check
20010         reduction code for commutativity / associativity.
20012 2016-01-27  Martin Jambor  <mjambor@suse.cz>
20014         PR tree-optimization/69355
20015         * tree-sra.c (analyze_access_subtree): Correct hole detection when
20016         total_scalarization fails.
20018 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
20020         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
20021         power9.
20023 2016-01-27  Christian Bruel  <christian.bruel@st.com>
20025         PR target/69245
20026         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
20027         Move arm_reset_previous_fndecl and set_target_option_current_node in
20028         the conditional part.  Call save_restore_target_globals.
20029         * config/arm/arm.c (arm_set_current_function):
20030         Refactor to better support #pragma target and attribute mix.
20031         Call save_restore_target_globals.
20032         * config/arm/arm-protos.h (save_restore_target_globals): New function.
20034 2016-01-27  Martin Liska  <mliska@suse.cz>
20036         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
20037         reference for an HSA kernel and its host function.
20039 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
20041         PR tree-optimization/69399
20042         * wide-int.h (wi::lrshift): For larger precisions, only
20043         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
20045 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
20047         * config/arc/predicates.md (proper_comparison_operator): Reject
20048         constant-constant comparison.
20050 2016-01-26  Tom de Vries  <tom@codesourcery.com>
20052         PR tree-optimization/69110
20053         * tree-data-ref.c (initialize_data_dependence_relation): Handle
20054         DR_NUM_DIMENSIONS == 0.
20056 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
20057             Sebastian Pop  <s.pop@samsung.com>
20059         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
20060         isl_ast_op_cond and isl_ast_op_select.
20061         (gcc_expression_from_isl_expr_op): Same.
20063 2016-01-26  Jason Merrill  <jason@redhat.com>
20065         PR c++/68782
20066         * tree.c (recompute_constructor_flags): Split out from
20067         build_constructor.
20068         (verify_constructor_flags): New.
20069         * tree.h: Declare them.
20071 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
20073         PR rtl-optimization/69217
20074         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
20075         are no TYPE_FIELDS set for the record type.
20077 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
20079         PR target/68662
20080         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
20081         toc_label_name unconditionally.
20082         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
20083         SYMBOL_REF string.  Use toc_label_name instead of constructing
20084         LCTOC1.
20085         (rs6000_elf_declare_function_name): Use toc_label_name instead of
20086         constructing LCTOC1.
20088 2016-01-26  Martin Sebor  <msebor@redhat.com>
20090         PR other/69477
20091         * doc/extend.texi (Common Type Attributes): Move text that talks about
20092         attribute packed from attribute aligned to the section discussing
20093         the former attribute for clarity.
20095 2016-01-26  Richard Henderson  <rth@redhat.com>
20097         PR middle-end/60908
20098         * trans-mem.c (tm_region_init): Mark entry block as visited.
20100 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
20102         PR other/69006
20103         * diagnostic-show-locus.c (layout::print_source_line): Replace
20104         call to pp_newline with call to layout::print_newline.
20105         (layout::print_annotation_line): Likewise.
20106         (layout::move_to_column): Likewise.
20107         (layout::print_any_fixits): After printing any fixits, print a
20108         trailing newline, if necessary.
20109         (layout::print_newline): New method, resetting any colorization
20110         before a newline.
20111         (diagnostic_show_locus): Move the pp_newline to before the
20112         early bailout.  Remove dummy block enclosing the layout instance.
20113         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
20114         of pp_newline_and_flush with pp_flush.
20115         (diagnostic_append_note): Delete use of pp_newline.
20116         (diagnostic_append_note_at_rich_loc): Delete.
20117         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
20118         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
20119         when newline characters are added to the buffer.
20121 2016-01-26  Michael Matz  <matz@suse.de>
20123         * configure.ac (ac_cv_std_swap_in_utility): New test.
20124         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
20125         * configure: Regenerate.
20126         * config.in: Regenerate.
20128 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
20130         * config/arc/arc.md (cstoresi4): Force operand into register.
20131         (arcset<code>): Fix predicate.
20132         (arcsetltu): Likewise.
20133         (arcsetgeu): Likewise.
20134         (arcsethi): Likewise.
20135         (arcsetls): Likewise.
20137 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
20139         PR tree-optimization/69483
20140         * gimple-fold.c (canonicalize_constructor_val): Return NULL
20141         if base has error_mark_node type.
20143 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
20145         PR target/68620
20146         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
20147         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
20148         New helper macros.
20149         (vget_lane_f16): Handle big-endian.
20150         (vgetq_lane_f16): Likewise.
20151         (vset_lane_f16): Likewise.
20152         (vsetq_lane_f16): Likewise.
20153         * config/arm/iterators.md (VQXMOV): Add V8HF.
20154         (VDQ): Add V4HF and V8HF.
20155         (V_reg): Handle V4HF and V8HF.
20156         (Is_float_mode): Likewise.
20157         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
20158         neon_vdup_nv8hf): New patterns.
20159         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
20160         Use VD_LANE iterator.
20161         (neon_vld1_dup<mode>): Use VQ2 iterator.
20163 2016-01-26  Nathan Sidwell  <nathan@acm.org>
20165         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
20166         (set_oacc_fn_attrib): Add IS_KERNEL arg.
20167         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
20168         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
20169         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
20170         (oacc_validate_dims): Add LEVEL arg, don't return level.
20171         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
20172         oacc_validate_dims.
20173         (execute_oacc_device_lower): Adjust, add more dump output.
20174         * tree-ssa-loop.c (gate_oacc_kernels): Use
20175         oacc_fn_attrib_kernels_p.
20176         * tree-parloops.c (create_parallel_loop): Adjust
20177         set_oacc_fn_attrib call.
20179 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
20181         PR lto/69254
20182         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
20183         (append_compiler_options): Handle -fcilkplus.
20184         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
20186 2016-01-26  Nick Clifton  <nickc@redhat.com>
20188         PR target/66655
20189         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
20190         been marked as DECL_ONE_ONLY but we do not the means to make it
20191         so, then do not allow it to bind locally.
20193 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
20195         PR lto/69254
20196         * opts.h (parse_sanitizer_options): New prototype.
20197         * opts.c (sanitizer_opts): New array.
20198         (parse_sanitizer_options): New function.
20199         (common_handle_option): Use parse_sanitizer_options.
20201 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
20203         PR target/68986
20204         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
20205         alignment adjustment to ...
20206         (ix86_update_stack_boundary): Here.  Don't over-align stack for
20207         __tls_get_addr.
20208         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
20209         if __tls_get_addr is called.
20211 2016-01-26  Christian Bruel  <christian.bruel@st.com>
20213         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
20215 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
20217         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
20219 2016-01-26  Richard Biener  <rguenther@suse.de>
20221         PR middle-end/69467
20222         * match.pd: Guard X * CST CMP 0 pattern with single_use.
20224 2016-01-26  Richard Biener  <rguenther@suse.de>
20226         PR tree-optimization/69452
20227         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
20228         (move_computations_dom_walker::before_dom_children): Rename
20229         to ...
20230         (move_computations_worker): This.
20231         (move_computations): Perform an RPO rather than a DOM walk.
20233 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
20235         PR target/69442
20236         * combine.c (combine_instructions): For REG_EQUAL note with
20237         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
20238         to the underlying register.
20239         * doc/rtl.texi (REG_EQUAL): Document the behavior of
20240         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
20242 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
20244         PR target/67896
20245         * config/aarch64/aarch64-builtins.c
20246         (aarch64_init_simd_builtin_types): Do not set structural
20247         equality to __Poly{8,16,64,128}_t types.
20249 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
20251         PR tree-optimization/69400
20252         * wide-int.cc (wi_pack): Take the precision as argument and
20253         perform canonicalization here rather than in the callers.
20254         Use the main loop to handle all full-width HWIs.  Add a
20255         zero HWI if in_len isn't a full result.
20256         (wi::divmod_internal): Update accordingly.
20257         (wi::mul_internal): Likewise.  Simplify.
20259 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
20260             Sebastian Pop  <s.pop@samsung.com>
20262         * graphite-poly.c (apply_poly_transforms): Simplify.
20263         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
20264         (print_isl_map): Same.
20265         (print_isl_union_map): Same.
20266         (print_isl_schedule): New.
20267         (debug_isl_schedule): New.
20268         * graphite-dependences.c (scop_get_reads): Do not call
20269         isl_union_map_add_map that is undocumented isl functionality.
20270         (scop_get_must_writes): Same.
20271         (scop_get_may_writes): Same.
20272         (scop_get_original_schedule): Remove.
20273         (scop_get_dependences): Do not call isl_union_map_compute_flow that
20274         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
20275         (compute_deps): Remove.
20276         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
20277         (debug_schedule_ast): New.
20278         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
20279         set_separate_option.
20280         (graphite_regenerate_ast_isl): Add dump.
20281         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
20282         from scop->transformed_schedule.
20283         (graphite_regenerate_ast_isl): Add more dump.
20284         * graphite-optimize-isl.c (optimize_isl): Set
20285         scop->transformed_schedule.  Check whether schedules are equal.
20286         (apply_poly_transforms): Move here.
20287         * graphite-poly.c (apply_poly_transforms): ... from here.
20288         (free_poly_bb): Static.
20289         (free_scop): Static.
20290         (pbb_number_of_iterations_at_time): Remove.
20291         (print_isl_ast): New.
20292         (debug_isl_ast): New.
20293         (debug_scop_pbb): New.
20294         * graphite-scop-detection.c (print_edge): Move.
20295         (print_sese): Move.
20296         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
20297         (build_scop_scattering): Remove.
20298         (create_pw_aff_from_tree): Assert instead of bailing out.
20299         (add_condition_to_pbb): Remove unused code, do not fail.
20300         (add_conditions_to_domain): Same.
20301         (add_conditions_to_constraints): Remove.
20302         (build_scop_context): New.
20303         (add_iter_domain_dimension): New.
20304         (build_iteration_domains): Initialize pbb->iterators.
20305         Call add_conditions_to_domain.
20306         (nested_in): New.
20307         (loop_at): New.
20308         (index_outermost_in_loop): New.
20309         (index_pbb_in_loop): New.
20310         (outermost_pbb_in): New.
20311         (add_in_sequence): New.
20312         (add_outer_projection): New.
20313         (outer_projection_mupa): New.
20314         (add_loop_schedule): New.
20315         (build_schedule_pbb): New.
20316         (build_schedule_loop): New.
20317         (embed_in_surrounding_loops): New.
20318         (build_schedule_loop_nest): New.
20319         (build_original_schedule): New.
20320         (build_poly_scop): Call build_original_schedule.
20321         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
20322         (free_poly_dr): Remove.
20323         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
20324         (free_poly_bb): Remove.
20325         (debug_loop_vec): Remove.
20326         (print_isl_ast): Declare.
20327         (debug_isl_ast): Declare.
20328         (scop_do_interchange): Remove.
20329         (scop_do_strip_mine): Remove.
20330         (scop_do_block): Remove.
20331         (flatten_all_loops): Remove.
20332         (optimize_isl): Remove.
20333         (pbb_number_of_iterations_at_time): Remove.
20334         (debug_scop_pbb): Declare.
20335         (print_schedule_ast): Declare.
20336         (debug_schedule_ast): Declare.
20337         (struct scop): Remove schedule.  Add original_schedule,
20338         transformed_schedule.
20339         (free_gimple_poly_bb): Remove.
20340         (print_generated_program): Remove.
20341         (debug_generated_program): Remove.
20342         (unify_scattering_dimensions): Remove.
20343         * sese.c (print_edge): ... here.
20344         (print_sese): ... here.
20345         (debug_edge): ... here.
20346         (debug_sese): ... here.
20347         * sese.h (print_edge): Declare.
20348         (print_sese): Declare.
20349         (dump_edge): Declare.
20350         (dump_sese): Declare.
20352 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
20353             Sebastian Pop  <s.pop@samsung.com>
20355         * Makefile.in: Set ISLVER in site.exp.
20357 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
20359         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
20360         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
20361         through DECL_VALUE_EXPR for expansion.
20363 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20365         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
20366         the frame info after reload completed.
20368 2016-01-25  Jeff Law  <law@redhat.com>
20370         PR tree-optimization/69196
20371         PR tree-optimization/68398
20372         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
20373         tree-ssa-threadupdate.c.
20374         (determine_bb_domination_status): Prototype
20375         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
20376         (determine_bb_domination_status): No longer static.
20377         (valid_jump_thread_path): Remove code to detect characteristics
20378         of the jump thread path not associated with correctness.
20379         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
20380         Correct test for thread path length.  Count PHIs for real operands as
20381         statements that need to be copied.  Do not count ASSERT_EXPRs.
20382         Look at all the blocks in the thread path.  Compute and selectively
20383         filter thread paths based on threading through the latch, threading
20384         a multiway branch or crossing a multiway branch.
20386 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20388         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
20389         decl with __attribute__ ((unused)) annotation.
20391 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
20393         PR target/69421
20394         * tree-vect-stmts.c (vectorizable_condition): Check vectype
20395         of operands is compatible with a statement vectype.
20397 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
20399         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
20400         improve wording for mixed storage order support.
20402 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
20404         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
20405         (vcvt_u64_f64): Likewise.
20406         (vcvta_s64_f64): Likewise.
20407         (vcvta_u64_f64): Likewise.
20408         (vcvtm_s64_f64): Likewise.
20409         (vcvtm_u64_f64): Likewise.
20410         (vcvtn_s64_f64): Likewise.
20411         (vcvtn_u64_f64): Likewise.
20412         (vcvtp_s64_f64): Likewise.
20413         (vcvtp_u64_f64): Likewise.
20415 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
20417         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
20418         (arc_init): Check validity mll64 option.
20419         (arc_save_restore): Use double load/store instruction.
20420         (arc_expand_movmem): Likewise.
20421         (arc_split_move): Don't split if we have double load/store
20422         instructions. Returns a boolean.
20423         (arc_process_double_reg_moves): Change function to return boolean
20424         instead of a sequence of instructions.
20425         (arc_dwarf_register_span): New function.
20426         * config/arc/arc-protos.h (arc_split_move): Change prototype.
20427         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
20428         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
20429         (*movdf_insn): Likewise.
20430         * config/arc/arc.opt (mll64): New option.
20431         * config/arc/predicates.md (even_register_operand): New predicate.
20432         * doc/invoke.texi (ARC Options): Add mll64 documentation.
20434 2016-01-25  Richard Biener  <rguenther@suse.de>
20436         PR lto/69393
20437         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
20438         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
20439         DECL_NAMELESS.
20440         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
20442 2016-01-25  Richard Biener  <rguenther@suse.de>
20444         PR tree-optimization/69376
20445         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
20446         flag.
20447         (VN_INFO_ANTI_RANGE_P): New inline.
20448         (VN_INFO_RANGE_TYPE): Likewise.
20449         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
20450         SSA_NAME_ANTI_RANGE_P.
20451         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
20452         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20453         Properly query VN_INFO_RANGE_TYPE.
20455 2016-01-25  Nick Clifton  <nickc@redhat.com>
20457         PR target/66655
20458         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
20460 2016-01-23  Tom de Vries  <tom@codesourcery.com>
20462         PR tree-optimization/69426
20463         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
20464         removed clobber.
20466 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
20468         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
20469         "the the" with "the" in the comments.
20470         * ipa-devirt.c (build_type_inheritance_graph,
20471         update_type_inheritance_graph): Likewise.
20472         * tree.c (build_function_type_list_1): Likewise.
20473         * cfgloopmanip.c (scale_loop_profile): Likewise.
20474         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
20475         * gimple-ssa-split-paths.c
20476         (find_block_to_duplicate_for_splitting_paths): Likewise.
20477         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
20478         * expr.c (convert_move): Likewise.
20479         * var-tracking.c (vt_stack_adjustments): Likewise.
20480         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
20481         * tree-vrp.c (test_for_singularity): Likewise.
20483         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
20484         directly instead of building a temporary tree.
20486         PR bootstrap/69434
20487         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
20488         remove <algorithm> include.
20490 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
20492         PR target/69432
20493         * config/i386/i386.c: Include dojump.h.
20494         (expand_small_movmem_or_setmem,
20495         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
20496         fixes.
20497         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
20498         if dynamic_check != -1.
20500 2016-01-21  Jeff Law  <law@redhat.com>
20502         PR middle-end/69347
20503         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
20504         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
20505         into dominated_by_p.
20506         (cprop_into_successor_phis): Avoid unnecessary tests.
20508 2016-01-22  Richard Henderson  <rth@redhat.com>
20510         PR target/69416
20511         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
20512         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
20514 2016-01-22  Michael Matz  <matz@suse.de>
20516         * system.h (string, algorithm): Include only conditionally.
20517         (new): Include always under C++.
20518         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
20519         * final.c (toplevel): Ditto.
20520         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
20521         * genconditions.c (write_header): Make gencondmd.c define
20522         INCLUDE_STRING.
20523         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
20525         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
20526         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
20528 2016-01-22  Christian Bruel  <christian.bruel@st.com>
20530         PR target/68674
20531         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
20533 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20535         PR target/69403
20536         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
20537         define_insn_and_split.  Ensure operands[1] and operands[0] do not
20538         get assigned the same register.
20540 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
20542         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
20544 2016-01-22  Christian Bruel  <christian.bruel@st.com>
20546         * config/arm/arm-c.c (arm_pragma_target_parse):
20547         Remove warn_builtin_macro_redefined overwrite.
20549 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
20551         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
20552         flag_non_call_exceptions compatibility.
20554 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
20556         PR debug/66668
20557         * dwarf2out.c (add_child_die_after): New function.
20558         (dwarf_qual_info_t): New type.
20559         (dwarf_qual_info): New variable.
20560         (qualified_die_p): New function.
20561         (modified_type_die): For -fdebug-types-section, ensure
20562         canonical order of qualifiers.  Put qualified DIEs adjacent
20563         to the corresponding non-qualified type DIE and search there
20564         for existing qualified DIEs.
20566 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
20568         * doc/extend.texi (scalar_storage_order type attribute): Document
20569         restriction on type punning and aliasing, and remove future tense.
20571 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
20573         PR target/69252
20574         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
20575         first stage.
20577 2016-01-21  Jeff Law  <law@redhat.com>
20579         PR middle-end/69347
20580         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
20581         useless call to record_temporary_equivalences.
20582         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
20583         allocate 10 slots in the bb_path vector and let it grow as needed.
20584         (fsm_find_control_statement_thread_paths): Similarly for the next_path
20585         vector.
20587 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
20589         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
20590         Detangle.
20591         * configure: Regenerate.
20593 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
20595         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
20596         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
20598 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
20600         PR middle-end/66178
20601         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
20602         drop EXPAND_INITIALIZER.
20603         * rtl.h (contains_symbolic_reference_p): Declare.
20604         * rtlanal.c (contains_symbolic_reference_p): New function.
20605         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
20606         a subtraction into a NOT if symbolic constants are involved.
20608 2016-01-21  Anton Blanchard  <anton@samba.org>
20609             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20611         PR target/63354
20612         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
20613         #define.
20614         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
20615         function.
20617 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
20619         * config/microblaze/microblaze.c
20620         (get_branch_target): New.
20621         (insert_wic_for_ilb_runout): New.
20622         (insert_wic): New.
20623         (microblaze_machine_dependent_reorg): New.
20624         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
20625         * config/microblaze/microblaze.md
20626         (UNSPEC_IPREFETCH): Define.
20627         (iprefetch): New pattern
20628         * config/microblaze/microblaze.opt
20629         (mxl-prefetch): New flag.
20631 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
20633         * config/microblaze/microblaze.h
20634         (FIXED_REGISTERS): Update in macro.
20635         (CALL_USED_REGISTERS): Update in macro.
20637 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
20639         PR rtl-optimization/68920
20640         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
20641         moves.
20643 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
20645         PR rtl-optimization/68990
20646         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
20647         pseudo instead of inheritance ones.
20649 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20650             Nick Clifton  <nickc@redhat.com>
20652         PR target/69129
20653         PR target/69012
20654         * config/mips/mips.c (mips_compute_frame_info): Initialise
20655         args_size and hard_frame_pointer_offset fields of the frame
20656         structure before calling mips_global_pointer.
20658 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
20660         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
20661         label reference.
20662         * configure: Regenerate.
20664 2016-01-21  Richard Biener  <rguenther@suse.de>
20666         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
20668 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
20670         * config/s390/s390.c (s390_asm_declare_function_size): Add code
20671         to actually emit the .size directive.
20673 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
20674              Jakub Jelinek  <jakub@redhat.com>
20676         PR target/69187
20677         PR target/65624
20678         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
20679         args array size by one to avoid buffer overflow.
20681 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
20683         * config/s390/s390.md (pool_section_start): Use switch_to_section
20684         to select proper read-only data section instead of hardcoding
20685         .rodata.
20686         (pool_section_end): Use switch_to_section to match the above.
20688 2016-01-21  Richard Biener  <rguenther@suse.de>
20690         PR tree-optimization/69378
20691         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
20692         (set_ssa_val_to): Use it for dominance checks taking into
20693         account not executable edges.
20695 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
20697         PR c++/69355
20698         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
20699         for bitsize instead of GET_MODE_PRECISION (mode).
20701 2016-01-20  Martin Sebor  <msebor@redhat.com>
20703         PR c/52291
20704         * extend.texi (__sync Builtins): Clarify the semantics of
20705         __sync_fetch_and_OP built-ins on pointers.
20706         (__atomic Builtins): Same.
20708 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20709             Sebastian Pop  <s.pop@samsung.com>
20711         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
20712         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
20713         (is_valid_rename): Same.
20714         (translate_isl_ast_to_gimple::get_rename): Same.
20715         (translate_isl_ast_to_gimple::rename_all_uses): Same.
20716         (translate_isl_ast_to_gimple::rename_uses): Same.
20717         (get_new_name): Check for close_phi nodes.
20718         (copy_loop_phi_args): Use phi_node_kind.
20719         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
20720         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
20722 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20723             Sebastian Pop  <s.pop@samsung.com>
20725         Revert commit r229783.
20726         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
20727         Remove use of parameter_rename_map.
20728         (copy_def): Remove.
20729         (copy_internal_parameters): Remove.
20730         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
20731         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
20732         (free_sese_info): Do not free parameter_rename_map.
20733         (set_rename): Do not use parameter_rename_map.
20734         (rename_uses): Update call to set_rename.
20735         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
20736         * sese.h (parameter_rename_map_t): Remove.
20737         (struct sese_info_t): Remove field parameter_rename_map.
20739 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20740             Sebastian Pop  <s.pop@samsung.com>
20742         * graphite-isl-ast-to-gimple.c: Fix comment.
20743         * graphite-scop-detection.c (defined_in_loop_p): New.
20744         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
20745         names defined in loop.
20747 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20748             Sebastian Pop  <s.pop@samsung.com>
20750         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
20751         Discard unstructured if-then-else regions.
20753 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20754             Sebastian Pop  <s.pop@samsung.com>
20756         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
20757         (cleanup_loop_iter_dom): Remove.
20758         (build_loop_iteration_domains): Remove.
20759         (build_scop_context): Remove.
20760         (build_scop_iteration_domain): Remove.
20761         (add_loop_constraints): New.
20762         (build_iteration_domains): New.
20763         (build_poly_scop): Call build_iteration_domains.
20765 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20766             Sebastian Pop  <s.pop@samsung.com>
20768         * graphite-scop-detection.c
20769         (scop_detection::harmful_loop_in_region): Free dom and loops.
20770         (scop_detection::loop_body_is_valid_scop): Free bbs.
20772 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20773             Sebastian Pop  <s.pop@samsung.com>
20775         * graphite-scop-detection.c (record_loop_in_sese): New.
20776         (gather_bbs::before_dom_children): Call record_loop_in_sese.
20777         (build_scops): Remove call to build_sese_loop_nests.
20778         * sese.c (sese_record_loop): Remove.
20779         (build_sese_loop_nests): Remove.
20780         (new_sese_info): Remove region->loops.
20781         (free_sese_info): Same.
20782         * sese.h (sese_contains_loop): Same.
20783         (build_sese_loop_nests): Remove.
20784         (sese_contains_loop): Remove.
20786 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20787             Sebastian Pop  <s.pop@samsung.com>
20789         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
20790         loop_is_valid_in_scop.
20791         (scop_detection::harmful_stmt_in_region): Renamed
20792         harmful_loop_in_region.
20793         Call loop_is_valid_in_scop.
20795 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20796             Sebastian Pop  <s.pop@samsung.com>
20798         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
20799         isl_ast_node_mark.
20801 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20802             Sebastian Pop  <s.pop@samsung.com>
20804         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
20805         * graphite.h (struct poly_bb): Remove field is_reduction.
20806         (PBB_IS_REDUCTION): Remove.
20808 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
20809             Sebastian Pop  <s.pop@samsung.com>
20811         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
20812         (add_pdr_constraints): Same.
20813         (scop_get_reads): Same.
20814         (scop_get_must_writes): Same.
20815         (scop_get_may_writes): Same.
20816         (scop_get_original_schedule): Same.
20817         (extend_schedule): Same.
20818         (apply_schedule_on_deps): Same.
20819         (carries_deps): Same.
20820         (compute_deps): Same.
20821         (scop_get_dependences): Same.
20822         * graphite-isl-ast-to-gimple.c
20823         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
20824         * graphite-optimize-isl.c (get_schedule_for_band): Same.
20825         (get_schedule_for_band_list): Same.
20826         (get_schedule_map): Same.
20827         (apply_schedule_map_to_scop): Same.
20828         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20829         (build_loop_iteration_domains): Same.
20830         (add_condition_to_pbb): Same.
20831         (add_param_constraints): Same.
20832         (pdr_add_memory_accesses): Same.
20833         (pdr_add_data_dimensions): Same.
20835 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
20837         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
20838         requirements.
20840 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
20842         * common.opt (feliminate-dwarf2-dups): Replace references to
20843         "DWARF 2" with just "DWARF".
20844         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
20845         * doc/extend.texi: Likewise.
20846         * doc/cpp.texi: Likewise.
20847         * doc/invoke.texi: Likewise.
20848         (Option Summary): Add -gdwarf to list of Debugging Options.
20849         (Debugging Options): Document -gdwarf.
20850         * doc/contrib.texi: Spell "DWARF" like that.
20852 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
20854         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
20855         warning.  Fix up formatting.
20857         PR middle-end/67653
20858         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
20859         attempt to mark memory input operand addressable and
20860         call prepare_gimple_addressable in that case.  Don't adjust
20861         input_location for diagnostics, use error_at instead.
20863 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
20865         * config/rs6000/ppc-auxv.h: New file.
20866         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
20867         (cpu_is): Likewise.
20868         (cpu_supports): Likewise.
20869         * config/rs6000/rs6000.c: include "ppc-auxv.h".
20870         (cpu_is_info): New variable.
20871         (cpu_supports_info): Likewise.
20872         (tcb_verification_symbol): Likewise.
20873         (cpu_builtin_p): Likewise.
20874         (cpu_expand_builtin): New function.
20875         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
20876         (rs6000_init_builtins): Likewise.
20877         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
20878         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
20879         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
20880         * configure: Regenerate.
20881         * config.in: Likewise.
20882         * doc/extend.texi (PowerPC Built-in Functions): Document
20883         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
20885 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
20887         PR target/68609
20888         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
20889         domain check.
20890         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
20891         for V4SFmode.
20893 2016-01-20  Richard Henderson  <rth@redhat.com>
20895         PR bootstrap/69343
20896         PR bootstrap/69339
20897         PR tree-opt/68964
20898         Revert:
20899         * tree.c (tm_define_builtin): New.
20900         (find_tm_vector_type): New.
20901         (build_tm_vector_builtins): New.
20902         (build_common_builtin_nodes): Call it.
20904 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
20906         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
20907         (arm_fp_ok): Likewise.
20908         (arm_fp): Likewise.
20909         (arm_crypto): Likewise.
20911 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
20912             Richard Biener  <rguenther@suse.de>
20914         PR tree-optimization/69328
20915         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
20916         vectors have same number of elements.
20917         (vectorizable_condition): Fix masked version recognition.
20919 2016-01-20  Richard Biener  <rguenther@suse.de>
20921         PR tree-optimization/69345
20922         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
20923         (VN_INFO_PTR_INFO): Likewise.
20924         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
20925         info when it is equal between non-dominating SSA names.
20926         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20927         Make sure to look at original SSA infos.
20929 2016-01-20  Jeff Law  <law@redhat.com>
20931         PR target/25114
20932         * config/m68k/predicates.md (pow2_m1_operand): New predicate
20933         extracted from ...
20934         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
20935         (pc_or_label_operand): New predicate.
20936         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
20937         tests for small integers that are 2^n - 1.
20939 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
20941         * doc/invoke.texi (Options Summary): Add '.' after @xref.
20943 2016-01-19  Jeff Law  <law@redhat.com>
20945         PR middle-end/69347
20946         * tree-ssa-threadbackwards.c
20947         (fsm_find_control_statement_thread_paths): Do not try to lookup
20948         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
20950 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
20952         * doc/lto.texi: Remove text that says only Gold has linker plugin
20953         support.
20955 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
20957         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
20958         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
20959         the DIE accordingly.
20960         (modified_type_die): Add REVERSE parameter and pass it recursively,
20961         as well as to base_type_die.  Adjust presence check accordingly.
20962         (base_type_for_mode): Adjust call to modified_type_die.
20963         (add_type_attribute): Add REVERSE parameter and pass it to
20964         modified_type_die.
20965         (generic_parameter_die): Adjust call to add_type_attribute.
20966         (add_scalar_info): Likewise.
20967         (add_subscript_info): Likewise.
20968         (gen_array_type_die): Likewise.
20969         (gen_descr_array_type_die): Likewise.
20970         (gen_entry_point_die): Likewise.
20971         (gen_enumeration_type_die): Likewise.
20972         (gen_formal_parameter_die): Likewise.
20973         (gen_subprogram_die): Likewise.
20974         (gen_variable_die ): Likewise.
20975         (gen_const_die): Likewise.
20976         (gen_field_die): Likewise.
20977         (gen_pointer_type_die): Likewise.
20978         (gen_reference_type_die): Likewise.
20979         (gen_ptr_to_mbr_type_die): Likewise.
20980         (gen_inheritance_die): Likewise.
20981         (gen_subroutine_type_die): Likewise.
20982         (gen_typedef_die): Likewise.
20983         (force_type_die): Adjust call to modified_type_die.
20985 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
20987         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
20988         flow throughout the file.  Fix broken link to Objective-C 2.0
20989         documentation.
20990         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
20991         errors.
20993 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
20995         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
20997 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
20999         PR ipa/66223
21000         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
21001         (maybe_record_node): Record cxa_pure_virtual as the only possible
21002         target if there are not ohter candidates.
21003         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
21005 2016-01-19  Richard Biener  <rguenther@suse.de>
21007         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
21008         (get_memory_order): Likewise.
21010 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
21012         * tree-vect-stmts.c (vectorizable_store): Check
21013         rhs vectype.
21015 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
21017         PR jit/68446
21018         * gcc.c (driver::decode_argv): Add call to
21019         init_opts_obstack before init_options_struct.
21020         * opts.c (init_opts_obstack): Remove idempotency.
21021         (init_options_struct): Replace call to init_opts_obstack
21022         with a gcc_assert to verify that it has already been called.
21023         * toplev.c (toplev::main): Add call to init_opts_obstack before
21024         calls to init_options_struct.
21025         (toplev::finalize): Move cleanup of opts_obstack next to
21026         cleanup of save_decoded_options, clearing the latter, and
21027         save_decoded_options_count.
21029 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21031         PR target/69135
21032         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
21033         attribute to unconditional.  Remove %? from output template.
21035 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
21036             Jiong Wang  <jiong.wang@arm.com>
21038         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
21039         generated from different expand order.
21041 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
21043         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
21044         Add support for CCMP costing.
21046 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
21048         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
21049         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
21050         (fccmpe<mode>): Likewise.
21051         (fcmp): Rename to fcmp and globalize pattern.
21052         (fcmpe): Likewise.
21053         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
21054         (aarch64_gen_ccmp_next): Add FP support.
21056 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
21058         * target.def (gen_ccmp_first): Update documentation.
21059         (gen_ccmp_next): Likewise.
21060         * doc/tm.texi (gen_ccmp_first): Update documentation.
21061         (gen_ccmp_next): Likewise.
21062         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
21063         expand_ccmp_expr_1.  Improve comments.
21064         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
21065         (ccmp_ior<mode>): Remove pattern.
21066         (cmp<mode>): Remove expand.
21067         (cmp): Globalize pattern.
21068         (cstorecc4): Use cc_register.
21069         (mov<mode>cc): Remove ccmp_cc_register check.
21070         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
21071         Simplify after removal of CC_DNE/* modes.
21072         (aarch64_ccmp_mode_to_code): Remove.
21073         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
21074         In 'k' case use integer as condition.
21075         (aarch64_nzcv_codes): Remove inverted cases.
21076         (aarch64_code_to_ccmode): Remove.
21077         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
21078         comparison with CC register to be used in folowing CCMP/branch/CSEL.
21079         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
21080         pattern.  Return the comparison with CC register.  Invert conditions
21081         when bitcode is OR.
21082         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
21083         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
21085 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
21087         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21088         instrumented_version.
21090 2016-01-19  Richard Biener  <rguenther@suse.de>
21092         PR tree-optimization/69336
21093         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
21094         handled components with get_ref_base_and_extent.
21095         (equal_mem_array_ref_p): Adjust.
21097 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
21099         PR debug/65779
21100         * shrink-wrap.c: Include valtrack.h.
21101         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
21102         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
21103         in between insn and where it will be moved to.  Call
21104         dead_debug_insert_temp.
21105         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
21106         first and dead_debug_local_finish at the end.
21107         For uses and defs bitmap, handle all regs in between REGNO and
21108         END_REGNO, not just the first one.
21110 2016-01-19  Richard Biener  <rguenther@suse.de>
21112         PR tree-optimization/69352
21113         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
21114         (equal_mem_array_ref_p): Constrain size and max size properly.
21115         Compare the reverse flag.
21117 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
21119         * ira.c (ira): Update regstat data if we deleted insns.
21121 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
21123         PR rtl-optimization/68955
21124         PR rtl-optimization/64557
21125         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
21126         here.  Fix up formatting.
21127         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
21129 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
21131         PR lto/69133
21132         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
21133         assume that the node has body.
21134         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
21135         check.
21137 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
21139         * lto-streamer-out.c (lto_output): Do not stream instrumentation
21140         thunks.
21142 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
21144         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
21145         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
21147 2016-01-19  Martin Jambor  <mjambor@suse.cz>
21148             Martin Liska  <mliska@suse.cz>
21149             Michael Matz  <matz@suse.de>
21151         * Makefile.in (OBJS): Add new source files.
21152         (GTFILES): Add hsa.c.
21153         * common.opt (disable_hsa): New variable.
21154         (-Whsa): New warning.
21155         * config.in (ENABLE_HSA): New.
21156         * configure.ac: Treat hsa differently from other accelerators.
21157         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
21158         $enable_offloading.
21159         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
21160         * doc/install.texi (Configuration): Document --with-hsa-runtime,
21161         --with-hsa-runtime-include, --with-hsa-runtime-lib and
21162         --with-hsa-kmt-lib.
21163         * doc/invoke.texi (-Whsa): Document.
21164         (hsa-gen-debug-stores): Likewise.
21165         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
21166         to invoke offload compiler for hsa acclerator.
21167         * opts.c (common_handle_option): Determine whether HSA offloading
21168         should be performed.
21169         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
21170         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
21171         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
21172         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
21173         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
21174         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
21175         GF_OMP_FOR_KIND_GRID_LOOP.
21176         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
21177         (pp_gimple_stmt_1): Likewise.
21178         * gimple-walk.c (walk_gimple_stmt): Likewise.
21179         * gimple.c (gimple_build_omp_grid_body): New function.
21180         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
21181         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
21182         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
21183         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
21184         GF_OMP_TEAMS_GRID_PHONY.
21185         (gimple_statement_omp_single_layout): Updated comments.
21186         (gimple_build_omp_grid_body): New function.
21187         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
21188         (gimple_omp_for_grid_phony): New function.
21189         (gimple_omp_for_set_grid_phony): Likewise.
21190         (gimple_omp_parallel_grid_phony): Likewise.
21191         (gimple_omp_parallel_set_grid_phony): Likewise.
21192         (gimple_omp_teams_grid_phony): Likewise.
21193         (gimple_omp_teams_set_grid_phony): Likewise.
21194         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
21195         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
21196         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
21197         (BUILT_IN_GOMP_TARGET): Updated type.
21198         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
21199         (adjust_for_condition): New function.
21200         (get_omp_for_step_from_incr): Likewise.
21201         (extract_omp_for_data): Moved parts to adjust_for_condition and
21202         get_omp_for_step_from_incr.
21203         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
21204         (fixup_child_record_type): Bail out if receiver_decl is NULL.
21205         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
21206         (scan_omp_parallel): Do not create child functions for phony
21207         constructs.
21208         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
21209         (scan_omp_1_op): Checking assert we are not remapping to
21210         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
21211         (parallel_needs_hsa_kernel_p): New function.
21212         (expand_parallel_call): Register apprpriate parallel child
21213         functions as HSA kernels.
21214         (grid_launch_attributes_trees): New type.
21215         (grid_attr_trees): New variable.
21216         (grid_create_kernel_launch_attr_types): New function.
21217         (grid_insert_store_range_dim): Likewise.
21218         (grid_get_kernel_launch_attributes): Likewise.
21219         (get_target_argument_identifier_1): Likewise.
21220         (get_target_argument_identifier): Likewise.
21221         (get_target_argument_value): Likewise.
21222         (push_target_argument_according_to_value): Likewise.
21223         (get_target_arguments): Likewise.
21224         (expand_omp_target): Call get_target_arguments instead of looking
21225         up for teams and thread limit.
21226         (grid_expand_omp_for_loop): New function.
21227         (grid_arg_decl_map): New type.
21228         (grid_remap_kernel_arg_accesses): New function.
21229         (grid_expand_target_kernel_body): New function.
21230         (expand_omp): Call it.
21231         (lower_omp_for): Do not emit phony constructs.
21232         (lower_omp_taskreg): Do not emit phony constructs but create for them
21233         a temporary variable receiver_decl.
21234         (lower_omp_taskreg): Do not emit phony constructs.
21235         (lower_omp_teams): Likewise.
21236         (lower_omp_grid_body): New function.
21237         (lower_omp_1): Call it.
21238         (grid_reg_assignment_to_local_var_p): New function.
21239         (grid_seq_only_contains_local_assignments): Likewise.
21240         (grid_find_single_omp_among_assignments_1): Likewise.
21241         (grid_find_single_omp_among_assignments): Likewise.
21242         (grid_find_ungridifiable_statement): Likewise.
21243         (grid_target_follows_gridifiable_pattern): Likewise.
21244         (grid_remap_prebody_decls): Likewise.
21245         (grid_copy_leading_local_assignments): Likewise.
21246         (grid_process_kernel_body_copy): Likewise.
21247         (grid_attempt_target_gridification): Likewise.
21248         (grid_gridify_all_targets_stmt): Likewise.
21249         (grid_gridify_all_targets): Likewise.
21250         (execute_lower_omp): Call grid_gridify_all_targets.
21251         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
21252         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
21253         (tree_omp_clause): Added union field dimension.
21254         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
21255         * tree.c (omp_clause_num_ops): Added number of arguments of
21256         OMP_CLAUSE__GRIDDIM_.
21257         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
21258         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
21259         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
21260         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
21261         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
21262         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
21263         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
21264         * tree-pass.h (make_pass_gen_hsail): Declare.
21265         (make_pass_ipa_hsa): Likewise.
21266         * ipa-hsa.c: New file.
21267         * lto-section-in.c (lto_section_name): Add hsa section name.
21268         * lto-streamer.h (lto_section_type): Add hsa section.
21269         * timevar.def (TV_IPA_HSA): New.
21270         * hsa-brig-format.h: New file.
21271         * hsa-brig.c: New file.
21272         * hsa-dump.c: Likewise.
21273         * hsa-gen.c: Likewise.
21274         * hsa.c: Likewise.
21275         * hsa.h: Likewise.
21276         * toplev.c (compile_file): Call hsa_output_brig.
21277         * hsa-regalloc.c: New file.
21279 2016-01-18  Jeff Law  <law@redhat.com>
21281         PR tree-optimization/69320
21282         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
21283         ranged object, do nothing if the RHS constant is not [0..1].
21284         (optimize_stmt): Comparing a boolean ranged object against a
21285         constant outside [0..1] results in a compile-time constant.
21287         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
21288         test.
21290 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
21292         * doc/invoke.texi (Invoking GCC): Add new section to menu.
21293         (Option Summary): Update to reflect new section and moved options.
21294         (C++ Dialect Options): Move -fstats to new section.
21295         (Debugging Options): Move all dump, statistics, and other GCC
21296         developer options to new section.  Rewrite section introduction
21297         and re-order remaining options to put the more basic ones first.
21298         (Optimization Options): Move -fira-verbose and -flto-report* to
21299         new section.
21300         (Developer Options): New section incorporating moved options.
21301         * doc/cppopts.texi (-dM): Update cross-reference.
21303 2016-01-18  Richard Henderson  <rth@redhat.com>
21305         PR target/69176
21306         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
21307         operands to pseudo only if CSE is expected.  Split long immediate
21308         operands only after reload, and for the stack pointer.
21309         (*add<GPI>3_pluslong): Remove.
21310         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
21311         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
21312         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
21313         (*add<GPI>3 peepholes): New.
21314         (*add<GPI>3 splitters): New.
21315         * config/aarch64/constraints.md (Upl): New.
21316         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
21318 2016-01-18  Richard Biener  <rguenther@suse.de>
21320         PR tree-optimization/69297
21321         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
21322         stmt at most once.
21323         (vect_bb_vectorization_profitable_p): Clear visited flag again.
21325 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
21327         PR middle-end/68542
21328         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
21329         of mixind vector and scalar types.
21330         (fold_relational_const): Add handling of vector
21331         comparison with boolean result.
21332         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
21333         comparison of vector operands with boolean result for EQ/NE only.
21334         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
21335         (verify_gimple_cond): Likewise.
21336         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
21337         valid type of VAL.
21339 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
21341         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
21342         !TARGET_OCTEON.
21344 2016-01-18  Richard Biener  <rguenther@suse.de>
21346         PR middle-end/69308
21347         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
21349 2016-01-18  Tom de Vries  <tom@codesourcery.com>
21351         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
21353 2016-01-18  Tom de Vries  <tom@codesourcery.com>
21355         * omp-low.c (set_oacc_fn_attrib): Make extern.
21356         * omp-low.h (set_oacc_fn_attrib): Declare.
21357         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
21358         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
21359         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
21360         Add and handle function parameter oacc_kernels_p.
21361         (find_reduc_addr, get_omp_data_i_param): New function.
21362         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
21363         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
21364         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
21365         Calculate dominance info.  Skip loops that are not in a kernels region
21366         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
21367         (pass_parallelize_loops::execute): Call parallelize_loops with
21368         oacc_kernels_p argument.
21369         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
21370         New member function.
21371         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
21372         * passes.def: Add argument to pass_parallelize_loops instantation.
21374 2016-01-18  Tom de Vries  <tom@codesourcery.com>
21376         * tree-parloops.c (pass_parallelize_loops::execute): Allow
21377         pass_parallelize_loops to be run outside the loop pipeline.
21379 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
21381         * tree-scalar-evolution.c (follow_copies_to_constant): New.
21382         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
21384 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
21386         PR target/63679
21387         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
21388         using get_ref_base_and_extent.
21389         (equal_mem_array_ref_p): New.
21390         (hashable_expr_equal_p): Add call to previous.
21392 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
21394         PR target/63679
21395         * tree-sra.c (disqualified_constants, constant_decl_p): New.
21396         (sra_initialize): Allocate disqualified_constants.
21397         (sra_deinitialize): Free disqualified_constants.
21398         (disqualify_candidate): Update disqualified_constants when appropriate.
21399         (create_access): Scan for constant-pool entries as we go along.
21400         (scalarizable_type_p): Add check against type_contains_placeholder_p.
21401         (maybe_add_sra_candidate): Allow constant-pool entries.
21402         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
21403         (initialize_constant_pool_replacements): New.
21404         (sra_modify_assign): Avoid mangling assignments created by previous,
21405         and don't generate writes into constant pool.
21406         (sra_modify_function_body): Call initialize_constant_pool_replacements.
21408 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
21410         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
21411         andnot instruction.
21412         (scalar_chain::convert_op): Likewise.
21413         * config/i386/i386.md (*andndi3_doubleword): New.
21415 2016-01-18  Richard Biener  <rguenther@suse.de>
21417         PR tree-optimization/69170
21418         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
21419         building a vector from scalar results of a pattern stmt.
21421 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
21423         * haifa-sched.c (autopref_multipass_init): Work around
21424         -Wmaybe-uninitialized warning.
21426 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
21428         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
21429         against the constant 0.
21431 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21433         PR tree-optimization/68799
21434         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
21435         look up phi candidates in the statement-candidate map.
21436         (phi_add_costs): Likewise.
21437         (record_phi_increments): Likewise.
21438         (phi_incr_cost): Likewise.
21439         (ncd_with_phi): Likewise.
21440         (all_phi_incrs_profitable): Likewise.
21442 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
21444         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
21445         -Wmaybe-uninitialized warning.
21447 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
21449         * doc/invoke.texi (Invoking GCC): Add new section to menu.
21450         (Option Summary): Update to reflect new section and moved options.
21451         (C++ Dialect Options): Move -fvtable-verify and related options.
21452         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
21453         and profiling-related options.
21454         (Optimization Options): Move profile generation options and
21455         -fstack-protector and related options.
21456         (Instrumentation Options): New section incorporating moved options.
21457         (Code Generation Options): Move -finstrument-functions and
21458         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
21460 2016-01-16  Tom de Vries  <tom@codesourcery.com>
21462         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
21464 2016-01-16  Tom de Vries  <tom@codesourcery.com>
21466         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
21468 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
21470         * hash-table.h (hash_table::empty): Turn into an inline wrapper
21471         that checks whether the table is already empty.  Rename the
21472         original implementation to...
21473         (hash_table::empty_slot): ...this new private function.
21475 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
21477         PR diagnostic/68899
21478         * diagnostic-show-locus.c (layout::print_source_line): Move x
21479         offset of line until after call to
21480         get_line_width_without_trailing_whitespace.
21482 2016-01-15  Jeff Law  <law@redhat.com>
21484         PR tree-optimization/69270
21485         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
21486         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
21487         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
21488         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
21489         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
21490         ssa_name_has_boolean_range and constant_boolean_node.
21492 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
21494         PR rtl-optimization/69030
21495         * lra-spills.c (remove_pseudos): Check nrefs and make the function
21496         returning bool.
21497         (spill_pseudos): Delete debug insn for dead pseudo.
21498         (lra_spill): Initiate spill_hard_reg and slots memory separately.
21500 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
21502         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
21503         New.
21504         (TYPES_UNOPUS): Likewise.
21505         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
21506         builtin type, from UNOP to UNOPUS.
21507         (lbtruncuv4sf): Likewise.
21508         (lbtruncuv2df): Likewise.
21509         (lrounduv2sf): Likewise.
21510         (lrounduv4sf): Likewise.
21511         (lrounduv2df): Likewise.
21512         (lroundusf): Likewise.
21513         (lroundusf): Likewise.
21514         (lceiluv2sf): Likewise.
21515         (lceiluv4sf): Likewise.
21516         (lceiluv2df): Likewise.
21517         (lceilusf): Likewise.
21518         (lceiludf): Likewise.
21519         (lflooruv2sf): Likewise.
21520         (lflooruv4sf): Likewise.
21521         (lflooruv2df): Likewise.
21522         (lfloorusf): Likewise.
21523         (lfloorudf): Likewise.
21524         (lfrintnuv2sf): Likewise.
21525         (lfrintnuv4sf): Likewise.
21526         (lfrintnuv2df): Likewise.
21527         (lfrintnusf): Likewise.
21528         (lfrintnudf): Likewise.
21529         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
21530         conversion.
21531         (vcvtq_u32_f32): Likewise.
21532         (vcvtq_u64_f64): Likewise.
21533         (vcvta_u32_f32): Likewise.
21534         (vcvtaq_u32_f32): Likewise.
21535         (vcvtaq_u64_f64): Likewise.
21536         (vcvtm_u32_f32): Likewise.
21537         (vcvtmq_u32_f32): Likewise.
21538         (vcvtmq_u64_f64): Likewise.
21539         (vcvtn_u32_f32): Likwise.
21540         (vcvtnq_u32_f32): Likewise.
21541         (vcvtnq_u64_f64): Likewise.
21542         (vcvtp_u32_f32): Likewise.
21543         (vcvtpq_u32_f32): Likewise.
21544         (vcvtpq_u64_f64): Likewise.
21545         (vcvtmd_u64_f64): Likewise.
21546         (vcvtms_u32_f32): Likewise.
21547         (vcvtad_u64_f64): Likewise.
21548         (vcvtas_u32_f32): Likewise.
21549         (vcvtnd_u64_f64): Likewise.
21550         (vcvtns_u32_f32): Likewise.
21551         (vcvtpd_u64_f64): Likewise.
21552         (vcvtps_u32_f32): Likewise.
21554 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21556         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
21557         CSEL of zero_extended registers.
21559 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21561         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
21562         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
21564 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21566         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
21567         false when argument string is not found in the attributes table
21568         at all.
21570 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
21572         PR target/68609
21573         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
21574         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
21575         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
21576         precision estimate.
21578 2016-01-15  Richard Biener  <rguenther@suse.de>
21580         PR tree-optimization/66856
21581         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
21582         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
21583         (vect_create_new_slp_node): Increment stmt reference count.
21584         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
21585         an SLP tree before swapping operands.
21586         (vect_build_slp_tree): Likewise.
21587         (destroy_bb_vec_info): Free stmt info after SLP instances.
21588         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
21589         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
21590         (STMT_VINFO_NUM_SLP_USES): New macro.
21592 2016-01-15  Richard Biener  <rguenther@suse.de>
21594         PR debug/69137
21595         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
21596         (add_linkage_name): ... here.
21597         (gen_typedef_die): Use add_linkage_name_raw instead of
21598         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
21599         if necessary.
21601 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
21603         * gimplify.c (oacc_default_clause): Decode reference and pointer
21604         types for both kernels and parallel regions.
21606 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
21608         PR middle-end/69246
21609         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
21611 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
21613         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
21614         (convert_scalars_to_vector): Likewise.
21616 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
21618         * doc/extend.texi (Type Traits): Fix grammar.
21620 2016-01-15  Martin Jambor  <mjambor@suse.cz>
21622         * tree-inline.c (remap_decl): Use existing dclarations if
21623         remapping a type and prevent_decl_creation_for_types.
21624         (replace_locals_stmt): Do an initial remapping of non-VLA typed
21625         decls first.  Do real remapping with
21626         prevent_decl_creation_for_types set.
21627         * tree-inline.h (copy_body_data): New field
21628         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
21629         padding.
21631 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21633         * config/s390/s390.opt (mmvcle): More verbose help text.
21635 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21637         * config/s390/s390.opt: Add period to -mzvector option text.
21639 2016-01-15  Richard Biener  <rguenther@suse.de>
21641         PR tree-optimization/68961
21642         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
21643         of invariants in stores again.
21645 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
21647         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
21649 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
21651         * config/i386/i386.c (ix86_expand_branch): Don't split
21652         DI mode xor instruction to SI mode.
21654 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
21656         PR ipa/68148
21657         * ipa-icf.c (sem_function::merge): Virtual functions may become
21658         reachable even if they address is not taken and there are no
21659         idrect calls.
21661 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
21663         * lto-streamer-out.c (subtract_estimated_size): New function.
21664         (get_symbol_initial_value): Use it.
21666 2016-01-15  Christian Bruel  <christian.bruel@st.com>
21668         PR target/65837
21669         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
21670         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
21671         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
21672         use add_builtin_function_ext_scope instead of add_builtin_function.
21673         (neon_set_p, neon_crypto_set_p): Remove.
21674         (arm_init_builtins): Always call arm_init_neon_builtins and
21675         arm_init_crypto_builtins.
21676         (arm_expand_builtin): Check that builtins are allowed for the arch.
21677         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
21678         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
21679         arm_init_neon_builtins call.
21681 2016-01-15  Richard Biener  <rguenther@suse.de>
21683         PR tree-optimization/69117
21684         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
21685         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
21686         of the leader conservatively.
21687         (free_scc_vn): Restore original SSA name infos.
21689 2016-01-14  Jeff Law  <law@redhat.com>
21691         PR tree-optimization/69270
21692         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
21693         single bit of precision, verify it's also unsigned.
21694         (record_edge_info): Use constant_boolean_node rather than fold_convert
21695         to convert boolean_true/boolean_false to the right type.
21697 2016-01-14  Richard Henderson  <rth@redhat.com>
21699         PR rtl-opt/69014
21700         * loop-doloop.c (record_reg_sets): New.
21701         (doloop_optimize): Reject the transform if the sequence
21702         clobbers registers live at the end of the loop block.
21703         (doloop_optimize_loops): Enable df_live if needed.
21705 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
21707         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
21708         * config/rs6000/rs6000.c: Likewise.
21709         * config/rs6000/rs6000.h: Likewise.
21710         * config/rs6000/rs6000.md: Likewise.
21711         * doc/extend.texi: Likewsie.
21713 2016-01-14  Jeff Law  <law@redhat.com>
21715         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
21716         typo.
21718 2016-01-14  Richard Henderson  <rth@redhat.com>
21720         PR c/69272
21721         PR tree-opt/68964
21722         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
21723         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
21724         instead of builtin_decl_declared_p to test for declaration.
21726 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
21728         * doc/loop.texi (Loop Analysis and Representation): Document
21729         loop_depth function.
21731 2016-01-14  Tom de Vries  <tom@codesourcery.com>
21733         PR tree-optimization/68773
21734         * omp-low.c (expand_omp_target): Don't set force_output.
21735         * varpool.c (varpool_node::get_create): Same.
21736         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
21737         offload_funcs with force_output.
21739 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
21741         PR debug/69244
21742         * lra-eliminations.c (move_plus_up): Don't change anything if either
21743         the outer or inner subreg mode is not MODE_INT.
21744         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
21745         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
21747 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
21749         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
21750         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
21751         reduc_uplus_@var{m}): Remove.
21752         * expr.c (expand_expr_real_2): Remove expansion path for
21753         reduc_[us](min|max|plus) optabs.
21754         * optabs-tree.c (scalar_reduc_to_vector): Remove.
21755         * optabs-tree.h (scalar_reduc_to_vector): Remove.
21756         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
21757         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
21758         * tree-vect-loop.c (vectorizable_reduction): Remove test for
21759         reduc_[us](min|max|plus) optabs.
21761 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
21763         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
21764         (reduc_plus_scal_v2sf): New.
21765         (reduc_smax_v2sf): Rename to...
21766         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
21767         (reduc_smin_v2sf): Rename to...
21768         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
21770 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
21772         * alias.c (compare_base_symbol_refs): New function.
21773         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
21774         it.
21776 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
21778         PR middle-end/68146
21779         PR tree-optimization/69155
21780         * tree-complex.c: Include cfganal.h.
21781         (phis_to_revisit): New variable.
21782         (extract_component): Add phiarg_p argument.  Assert that returned
21783         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
21784         (update_phi_components): Partly rewrite to use loop over real/imag
21785         components instead of code duplication.  If extract_component returns
21786         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
21787         create_tmp_reg into the PHI node instead, and mention the phi triplet
21788         in phis_to_revisit.
21789         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
21790         in phis_to_revisit at the end.
21792 2016-01-14  Richard Biener  <rguenther@suse.de>
21794         PR tree-optimization/68060
21795         * tree-vect-loop.c (vect_is_simple_reduction): Check the
21796         outer loop reduction is only used in the inner loop before
21797         detecting a double reduction.
21799 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
21801         PR target/68269
21802         * combine.c (expand_field_assignment): Punt if compute_mode is
21803         unsupported scalar mode.
21805 2016-01-14  Richard Biener  <rguenther@suse.de>
21807         PR tree-optimization/66856
21808         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
21809         SLP node only if it built successfully.
21810         (vect_analyze_slp_instance): Adjust.
21812 2016-01-14  Jeff Law  <law@redhat.com>
21814         PR tree-optimization/69270
21815         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
21816         (record_edge_info): Use it.  Convert boolean_{true,false}_node
21817         to the type of op0.
21819 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
21821         PR ipa/66487
21822         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
21823         use block_ultimate_origin
21824         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
21826 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
21828         * doc/invoke.texi (Submodel Options): Rename section to
21829         "Machine-Dependent Options" to better reflect its content.
21830         Rewrite introductory text to remove archaic CPU names.
21831         Update references.
21833 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
21835         * doc/invoke.texi (Code Gen Options): Move section up in file,
21836         before target-specific options.  Update menu and option summary
21837         to reflect the new section ordering.
21839 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
21841         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
21842         (C++ Dialect Options): Add cross-reference to -std option.
21843         * doc/standards.texi (C++ Language): Document C++14 support.
21845 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
21847         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
21848         for pack/unpack functions for __ibm128.
21849         (PACK_IF): Likewise.
21850         (UNPACK_IF): Likewise.
21852         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21853         support for __ibm128 pack/unpack functions.
21854         (rs6000_invalid_builtin): Likewise.
21855         (rs6000_init_builtins): Likewise.
21856         (rs6000_opt_masks): Likewise.
21858         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
21859         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
21860         functions
21861         (RS6000_BTM_COMMON): Likewise.
21863         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
21864         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
21865         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
21866         128-bit floating point.  Add support for the double values to be
21867         in Altivec registers for TF/IF packing and unpacking, but restrict
21868         TD packing sub-fields to be FPR registers.  Don't allow overlapped
21869         register support for packing.  Allow pack inputs to be memory
21870         locations.  Don't build generator functions for unpack<mode>_dm
21871         and unpack<mode>_nodm.
21872         (unpack<mode>_dm): Likewise.
21873         (unpack<mode>_nodm): Likewise.
21874         (pack<mode>): Likewise.
21876         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
21877         built-in functions to pack/unpack explicit __ibm128 values.
21878         (__builtin_unpack_ibm128): Likewise.
21880         * doc/extend.texi (PowerPC Built-in Functions): Document
21881         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
21883 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
21885         PR c/66208
21886         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
21887         Add new arg loc and pass it down as context.
21888         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
21889         to the location to use for the warning.
21890         (check_function_arguments): New arg loc.  All callers changed.  Pass
21891         it to check_function_nonnull.
21892         * c-common.h (check_function_arguments): Adjust declaration.
21894 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
21896         PR tree-optimization/69156
21897         * gimple.c (validate_type): Removed.
21898         (gimple_builtin_call_types_compatible_p): Use
21899         useless_type_conversion_p instead of validate_type.
21900         * value-prof.c (gimple_stringop_fixed_value): Fold
21901         icall_size to correct type.
21903 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
21905         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
21906         effects.
21908 2016-01-13  Richard Henderson  <rth@redhat.com>
21910         PR tree-opt/68964
21911         * target.def (builtin_tm_load, builtin_tm_store): Remove.
21912         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
21913         (ix86_builtin_tm_store): Remove.
21914         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21915         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21916         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21917         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21918         * doc/tm.texi: Rebuild.
21920         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
21921         (BUILT_IN_TM_MEMCPY_RTWN): New.
21922         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
21923         fallback from vector to integer helpers.
21924         (build_tm_load): Handle vector types directly, instead of
21925         via target hook.
21926         (build_tm_store): Likewise.
21927         (expand_assign_tm): Prepare for register types not handled by
21928         the above.  Copy them to memory and use memcpy.
21929         * tree.c (tm_define_builtin): New.
21930         (find_tm_vector_type): New.
21931         (build_tm_vector_builtins): New.
21932         (build_common_builtin_nodes): Call it.
21934 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
21936         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
21937         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
21939 2016-01-13  Tom de Vries  <tom@codesourcery.com>
21941         PR tree-optimization/69169
21942         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
21943         handled_struct_type param.
21944         (create_variable_info_for, intra_create_variable_infos): Call
21945         create_variable_info_for_1 with extra arg.
21947 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
21949         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
21950         and "armv8.1-a+crc" entries.
21952 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
21954         PR target/69228
21955         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
21956         Change first operand predicate from register_or_constm1_operand
21957         to register_operand.
21958         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
21959         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
21960         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
21961         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
21962         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
21963         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
21964         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
21965         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
21966         comparison with constm1_rtx from vec_prefetch_gen part.
21968 2016-01-13  Richard Biener  <rguenther@suse.de>
21970         PR tree-optimization/69013
21971         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
21972         Exchange assert for a test.
21974 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21976         PR target/69247
21977         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
21979 2016-01-13  Richard Biener  <rguenther@suse.de>
21981         PR tree-optimization/69242
21982         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
21983         assert with a check.
21985 2016-01-13  Richard Biener  <rguenther@suse.de>
21987         PR tree-optimization/69186
21988         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21989         Properly guard vect_update_misalignment_for_peel call.
21991 2016-01-12  Jeff Law  <law@redhat.com>
21993         PR tree-optimization/pr67755
21994         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
21995         "need_profile_correction".
21996         (thread_block_1): Initialize new field to false by default.  If we
21997         have multiple thread paths through a common joiner to different
21998         final targets, then set new field to true.
21999         (compute_path_counts): Only do count adjustment when it's really
22000         needed.
22002 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22004         * doc/invoke.texi (Spec Files): Move section down in file, past
22005         all command-line option descriptions.
22007 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22009         PR middle-end/54809
22010         * doc/gty.texi: Remove documentation of mark_hook.
22011         * gengtype.c (struct write_types_data): Remove code to support
22012         mark_hook attribute.
22013         (walk_type): Likewise.
22014         (write_func_for_structure): Likewise.
22016 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22018         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
22019         Directory Options, and -specs= to Overall Options.
22020         (Overall Options): Adjust similarly.  Reorder to group related
22021         options together.  Make -specs= cross-reference the spec file details.
22022         (Directory Options): Adjust similarly.
22024 2016-01-12  Jeff Law  <law@redhat.com>
22026         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
22028 2016-01-12  Olivier Hainque  <hainque@adacore.com>
22030         * gcc.c (spec_undefvar_allowed): New global.
22031         (process_command): Set to true when running for --version or --help,
22032         alone or together.
22033         (getenv_spec_function): When the variable is not defined, use the
22034         variable name as the variable value if we're allowed not to issue
22035         a fatal error.
22037 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
22039         PR tree-optimization/68911
22040         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
22041         information computed for expression "init + nit * step".
22043 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
22045         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
22046         about name of GCC executable.  Remove deleted node from menu.
22047         (Directory Options) <-B>: Remove cross-reference to deleted node.
22048         (Target Options): Delete section.
22050 2016-01-12  Christian Bruel  <christian.bruel@st.com>
22052         PR target/69180
22053         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
22054         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
22056 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
22058         PR target/69198
22059         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
22060         aligned_mem is properly set for AVX512-VL floating point masked
22061         stores.
22063         PR target/69175
22064         * ifcvt.c (cond_exec_process_if_block): When removing the last
22065         insn from then_bb, remove also any possible barriers that follow it.
22067 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
22069         PR target/68456
22070         PR target/69226
22071         * config/i386/iamcu.h (SIZE_TYPE): New macro.
22072         (PTRDIFF_TYPE): Likewise.
22073         (WCHAR_TYPE): Likewise.
22074         (WCHAR_TYPE_SIZE): Likewise.
22075         (STDINT_LONG32): Likewise.
22077 2016-01-12  Richard Biener  <rguenther@suse.de>
22079         PR tree-optimization/69053
22080         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
22081         convert initial value for cond reductions.
22083 2016-01-12  Richard Biener  <rguenther@suse.de>
22085         PR tree-optimization/69007
22086         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
22087         widen_sum after dot_prod and sad.
22089 2016-01-12  Richard Biener  <rguenther@suse.de>
22091         PR tree-optimization/69168
22092         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
22093         pattern stmt SLP type.
22094         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
22095         end up unused so cope with that case.
22097 2016-01-12  Richard Biener  <rguenther@suse.de>
22099         PR tree-optimization/69157
22100         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
22101         stmts def type only during analyze phase.
22102         (vectorizable_call): Likewise.
22103         (vectorizable_simd_clone_call): Likewise.
22104         (vectorizable_conversion): Likewise.
22105         (vectorizable_assignment): Likewise.
22106         (vectorizable_shift): Likewise.
22107         (vectorizable_operation): Likewise.
22108         (vectorizable_store): Likewise.
22109         (vectorizable_load): Likewise.
22111 2016-01-12  Richard Biener  <rguenther@suse.de>
22113         PR tree-optimization/69174
22114         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
22115         space.
22116         (vectorizable_load): Properly compute the number of loads needed
22117         for permuted strided SLP loads and do not spuriously assign
22118         to SLP_TREE_VEC_STMTS.
22120 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
22122         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
22123         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
22124         (MD_EXEC_PREFIX): Remove.
22125         (MD_STARTFILE_PREFIX) Removee.
22126         (FILE_NAME_ABSOLUTE_P): Remove.
22127         (CPP_SPEC): Do not read macros from sys/version.h.
22128         (LINK_COMMAND_SPEC): Remove.
22129         (LOCAL_INCLUDE_DIR): Remove.
22130         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
22131         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
22132         (POST_LINK_SPEC): Define to invoke stubify after linker
22133         (LIBSTDCXX): Remove define
22134         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
22135         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
22136         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
22137         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
22138         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
22139         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
22140         (i386_djgpp_asm_named_section): Add propotype of new procedure
22142         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
22143         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
22144         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
22145         in config/i386/djgpp.h).
22146         (STANDARD_STARTFILE_PREFIX_2): Define identical to
22147         STANDARD_STARTFILE_PREFIX_1.
22148         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
22149         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
22150         installation errors.
22151         (MAX_OFILE_ALIGNMENT): Define to 128.
22152         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
22154         * config/i386/djgpp.c: New file. Add implementation of
22155         i386_djgpp_asm_named_section.
22157         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
22159         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
22160         Add rule for building djgpp.o.
22162 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22164         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
22165         (rtx_is_swappable_p): Reductions are swappable.
22166         (insn_is_swappable_p): V2DF reductions are swappable.
22168 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
22170         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
22171         reloads for other unsupported memory operands.
22173 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
22174             Jim Wilson  <jim.wilson@linaro.org>
22176         PR target/69194
22177         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
22178         copy_to_mode_reg instead of force_reg.
22180 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
22182         PR target/69225
22183         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
22184         TARGET_80387 is true.
22186 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
22188         PR target/69071
22189         * lra-eliminations.c (move_plus_up): Only move plus up
22190         if subreg of the constant can be simplified into constant
22191         and use the simplified subreg of the constant instead of
22192         the original constant.
22194         * fold-const.c (fold_convertible_p): Don't return true
22195         for conversion of VECTOR_TYPE to same sized integral type.
22196         (fold_convert_loc): Fix up formatting.  Fold conversion of
22197         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
22198         instead of NOP_EXPR.
22200         PR tree-optimization/69214
22201         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
22202         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22203         Formatting fix.
22205         PR tree-optimization/69207
22206         * tree-vect-slp.c (vect_get_constant_vectors): For
22207         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
22208         fold_convertible_p to vector_type's element type, and always
22209         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
22211 2016-01-11  Richard Biener  <rguenther@suse.de>
22213         PR tree-optimization/69173
22214         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
22215         fixup the cycle if all stmts are in a pattern.
22217 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
22219         PR middle-end/68999
22220         * alias.c (base_alias_check): Move check for addresses with
22221         alignment ANDs before the call for compare_base_decls.
22222         (memrefs_conflict_p): Return -1 for different decls
22223         that went through alignment adjustments.
22225 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22227         PR rtl-optimization/68796
22228         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
22229         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
22230         and QImode comparisons against zero with CC_NZmode.
22231         * config/aarch64/iterators.md (short_mask): New mode_attr.
22233 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
22235         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
22236         (<avx512>_store<mode>_mask): Likewise.
22238 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
22239             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22241         PR rtl-optimization/68841
22242         * ifcvt.c (struct noce_if_info): Add orig_x field.
22243         (bbs_ok_for_cmove_arith): Add to_rename parameter.
22244         Don't record conflicts on to_rename if it's present.
22245         Allow memory destinations in sets.
22246         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
22247         blocks, passing orig_x to the checks.
22248         (noce_process_if_block): Set if_info->orig_x appropriately.
22250 2016-01-11  Tom de Vries  <tom@codesourcery.com>
22252         PR tree-optimization/69069
22253         * tree-parloops.c (create_parallel_loop): Add missing phi args.
22255 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
22257         PR rtl-optimization/68920
22258         * config/i386/i386.c (ix86_option_override_internal): Restrict number
22259         of conditional moves for  RTL if-conversion to 1 for
22260         TARGET_ONE_IF_CONV_INSN.
22261         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
22262         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
22263         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
22264         parameter to restirct number of conditional moves for
22265         RTL if-conversion.
22266         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
22267         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
22268         conditionl moves.
22270 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
22272         PR bootstrap/69123
22273         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
22274         onepart vars.  Fix typo in comment.  Fix reversed condition in
22275         unshare test.
22276         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
22278         PR bootstrap/69123
22279         * var-tracking.c (dump_onepart_variable_differences): New.
22280         (dataflow_set_different): If a detailed dump is requested,
22281         delay early returns and dump differences between onepart
22282         variables present before and after, and added variables.
22284 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
22286         PR target/69010
22287         * expr.c (expand_expr_real_1): For boolean vector constants
22288         with a scalar mode use const_scalar_mask_from_tree.
22289         (const_scalar_mask_from_tree): New.
22290         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
22291         assigned to a mask type to handle constants.
22293 2016-01-11  Martin Jambor  <mjambor@suse.cz>
22295         PR ipa/69044
22296         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
22297         useless parameters if we cannot change function signature.
22299 2016-01-11  Martin Jambor  <mjambor@suse.cz>
22301         PR ipa/66616
22302         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
22303         flag.
22305 2016-01-11  Tom de Vries  <tom@codesourcery.com>
22307         PR tree-optimization/69109
22308         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
22309         latch with phi.
22311 2016-01-11  Tom de Vries  <tom@codesourcery.com>
22313         PR tree-optimization/69108
22314         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
22315         res is not used in a phi.
22317 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
22319         PR 67425
22320         * common.opt (frandom-seed): Fix parameter name.
22321         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
22323 2016-01-11  Tom de Vries  <tom@codesourcery.com>
22325         PR tree-optimization/69058
22326         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
22327         not supported.
22329 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
22331         * config/arc/arc.opt (mdiv-rem): Add period to the end.
22332         (mcode-density): Likewise.
22334 2016-01-10  Tom de Vries  <tom@codesourcery.com>
22336         PR tree-optimization/69062
22337         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
22338         (parallelize_loops): Don't paralelize loop that has phi with address
22339         arg.
22341 2016-01-10  Tom de Vries  <tom@codesourcery.com>
22343         PR tree-optimization/69039
22344         * tree-parloops.c (try_create_reduction_list): Only allow single exit
22345         phi for reduction.
22347 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
22349         PR middle-end/68743
22350         * match.pd: Require target has function_c99_misc before doing
22351         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
22353 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
22355         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
22356         use GMPINC.
22357         * configure: Regenerate.
22359 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
22361         PR middle-end/50865
22362         PR tree-optimization/69097
22363         * fold-const.h (expr_not_equal_to): New prototype.
22364         * fold-const.c: Include stringpool.h and tree-ssanames.h.
22365         (expr_not_equal_to): New function.
22366         * match.pd (X % -Y is the same as X % Y): Don't optimize
22367         unless X is known not to be equal to minimum or Y is known
22368         not to be equal to -1.
22369         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
22370         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
22371         (simplify_stmt_using_ranges): Adjust caller.
22372         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
22373         substitute_and_fold.
22375 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
22377         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
22378         w/o DECL_NAME.
22380 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
22382         PR tree-optimization/69167
22383         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
22384         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
22385         ops[0] comparison.
22386         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
22388 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
22389             Richard Biener  <rguenther@suse.de>
22391         PR tree-optimization/68707
22392         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
22393         instances that can be handled via vect_load_lanes.
22395 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
22397         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
22398         if we can't determine address equivalence.
22399         * alias.c (compare_base_decl): Update for changed return value of
22400         symtab_node::equal_address_to.
22402 2016-01-08  Jason Merrill  <jason@redhat.com>
22404         PR c++/68983
22405         PR c++/67557
22406         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
22407         * expr.c (store_field): Not here.
22408         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
22409         call with TREE_ADDRESSABLE type.
22410         * tree-cfg.c (verify_gimple_call): Adjust.
22412 2016-01-08  Olivier Hainque  <hainque@adacore.com>
22414         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
22415         libc_internal.
22417 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
22419         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
22420         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
22421         (reduc_smin_v2sf): Rename to...
22422         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
22423         (reduc_splus_v2sf): Rename to...
22424         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
22426 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
22428         PR tree-optimization/69162
22429         * gimplify.c (gimplify_va_arg_expr): Encode original type of
22430         valist argument in another argument.
22431         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
22432         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
22433         to determine the va_list type, build a MEM_REF instead of
22434         build_fold_indirect_ref.
22436         PR tree-optimization/69172
22437         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
22438         gimple_build.
22440 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22442         PR tree-optimization/67781
22443         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
22444         and cmpnop in two steps: first the ones not accessed in original
22445         gimple expression in a endian independent way and then the ones not
22446         accessed in the final result in an endian-specific way.
22448 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
22450         PR tree-optimization/69083
22451         * tree-vect-slp.c (vect_get_constant_vectors): For
22452         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
22453         element type.  If op is fold_convertible_p to vector_type's element
22454         type, use NOP_EXPR instead of VCE.
22456 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
22458         PR rtl-optimization/67778
22459         PR rtl-optimization/68634
22460         PR rtl-optimization/68909
22461         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
22462         block from the stack until done with it.  Remove a superfluous
22463         bitmap set.  Remove a superfluous bitmap test.
22465 2016-01-07  Martin Sebor  <msebor@redhat.com>
22467         PR c/68966
22468         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
22469         constraint on the type of arguments.
22471 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
22473         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
22474         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
22475         unaligned_access on the gcc_options set.
22476         * config/arm/arm.c (arm_option_override_internal): Use
22477         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
22479 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
22481         PR target/69140
22482         * config/i386/i386.c (ix86_frame_pointer_required): Enable
22483         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
22485 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
22487         Revert
22488         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
22490         PR target/69140
22491         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22492         depending on frame_pointer_needed before remaining integer and SSE
22493         registers are saved.
22495 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
22497         PR 1078
22498         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
22500 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
22502         PR target/69171
22503         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
22504         Use the "xBm" constraint.
22505         (float<sseintvecmodelower><mode>2<mask_name><round_name):
22506         Likewise.
22507         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
22508         (sse_cvtsi2ssq<round_name>): Likewise.
22509         (sse_cvtss2si<round_name>): Likewise.
22510         (sse_cvtss2siq<round_name>): Likewise.
22511         (sse2_cvtsi2sdq<round_name>): Likewise.
22512         (sse2_cvtsd2si<round_name>): Likewise.
22513         (sse2_cvtsd2siq<round_name>): Likewise.
22514         * config/i386/subst.md (round_nimm_scalar_predicate): New
22515         predicate.
22517 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
22519         PR middle-end/67639
22520         * varasm.c (make_decl_rtl): Mark invalid register vars as
22521         DECL_EXTERNAL.
22523         PR rtl-optimization/66206
22524         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
22525         All callers changed.
22527 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
22529         PR tree-optimization/69141
22530         * tree-ssa-pre.c: Include langhooks.h.
22531         (eliminate_dom_walker::before_dom_children): Use
22532         lang_hooks.decl_printable_name instead of
22533         cgraph_node::get ()->name ().
22535         PR middle-end/68960
22536         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
22537         it and DECL_ALIGN too.
22539 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
22541         * config/mips/mips-ftypes.def: Sort to lexicographical order.
22543 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
22545         PR target/69140
22546         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22547         depending on frame_pointer_needed before remaining integer and SSE
22548         registers are saved.
22550 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22552         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
22553         mode iterator with VSX_M2.
22554         (*p9_vecstore_<mode>): Likewise.
22555         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
22556         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
22557         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
22558         (define_split for VSX_LE128 stores): Likewise.
22559         (define_peephole2 for TImode LE swaps): Likewise.
22560         (define_split for VSX_LE128 post-reload stores): Likewise.
22562 2016-01-06  Marek Polacek  <polacek@redhat.com>
22564         PR sanitizer/69099
22565         * convert.c (convert_to_integer_1): Adjust call to
22566         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
22567         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
22568         EXPR instead of ARG.
22569         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
22571 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22573         PR 1078
22574         * doc/extend.texi (RL78 Variable Attributes): New section.
22576 2016-01-05  Marek Polacek  <polacek@redhat.com>
22578         PR c/69104
22579         * builtins.c (get_memmodel): Use expansion point location rather than
22580         the input location.  Call warning_at rather than warning.
22581         (expand_builtin_atomic_compare_exchange): Likewise.
22582         (expand_builtin_atomic_load): Likewise.
22583         (expand_builtin_atomic_store): Likewise.
22584         (expand_builtin_atomic_clear): Likewise.
22586 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22588         PR target/68991
22589         * config/i386/i386.c (ix86_expand_vector_logical_operator):
22590         Replace nonimmediate_operand with vector_operand.
22591         * config/i386/predicates.md (vector_operand): New predicate.
22592         (general_vector_operand): Replace nonimmediate_operand with
22593         vector_operand.
22594         * config/i386/sse.md: Replace nonimmediate_operand with
22595         vector_operand and m constraint with Bm constraint on SSE
22596         patterns with 16-byte memory operand.
22597         * config/i386/subst.md (round_nimm_predicate): Replace
22598         nonimmediate_operand with vector_operand.
22599         (round_saeonly_nimm_predicate): Likewise.
22600         (round_saeonly_nimm_scalar_predicate): New.
22602 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
22604         PR target/68991
22605         * config/i386/constraints.md (Bm): New constraint.
22606         * config/i386/predicates.md (vector_memory_operand): New
22607         predicate.
22608         * config/i386/sse.md: Replace xm with xBm in plusminus and
22609         any_logic patterns.
22611 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22613         PR 1078
22614         * doc/extend.texi (V850 Function Attributes): New section.
22615         (V850 Variable Attributes): New section.
22617 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
22619         PR 1078
22620         * doc/extend.texi (MicroBlaze Function Attributes): Document
22621         interrupt_handler and fast_interrupt attributes.
22623 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
22625         PR other/60465
22626         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
22627         for local symbolic operands.
22628         * config/ia64/predicates.md (local_symbolic_operand64): New
22629         predicate.
22631 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22633         PR rtl-optimization/68651
22634         * combine.c (combine_simplify_rtx): Canonicalize x + x into
22635         x << 1.
22637 2016-01-05  Nathan Sidwell  <nathan@acm.org>
22639         * alias.c (compare_base_decls): Use symtab_node::get.
22641 2016-01-05  Nick Clifton  <nickc@redhat.com>
22643         PR target/68770
22644         * ira-costs.c (copy_cost): Initialise the t_icode field of the
22645         secondary_reload_info structure.
22647         PR target/66655
22648         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
22649         decls if weak support is available.
22651 2016-01-04  Martin Sebor  <msebor@redhat.com>
22653         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
22655 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
22657         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
22658         OPTION_MASK_P9_DFORM.
22660         * config/rs6000/constraints.md (wo constraint): New constraint for
22661         ISA 3.0 (power9).
22663         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
22664         for wo constraint.
22665         (rs6000_init_hard_regno_mode_ok): Likewise.
22667         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
22668         wo constraint.
22670         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
22671         expanders not to have constraints.  Add support for ISA 3.0 xxperm
22672         instruction.  Add support for fusing xxlor with xxperm.
22673         (altivec_vperm_<mode>_internal): Likewise.
22674         (altivec_vperm_v8hiv16qi): Likewise.
22675         (altivec_vperm_<mode>v16q): Likewise.
22676         (altivec_vperm_<mode>_uns): Likewise.
22677         (vperm_v8hiv4si): Likewise.
22678         (vperm_v16qiv8hi): Likewise.
22680         * doc/md.texi (RS/6000 constraints): Document wo constraint.
22682 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
22684         Update copyright years.
22686         * gcc.c (process_command): Update copyright notice dates.
22687         * gcov-dump.c (print_version): Ditto.
22688         * gcov.c (print_version): Ditto.
22689         * gcov-tool.c (print_version): Ditto.
22690         * gengtype.c (create_file): Ditto.
22691         * doc/cpp.texi: Bump @copying's copyright year.
22692         * doc/cppinternals.texi: Ditto.
22693         * doc/gcc.texi: Ditto.
22694         * doc/gccint.texi: Ditto.
22695         * doc/gcov.texi: Ditto.
22696         * doc/install.texi: Ditto.
22697         * doc/invoke.texi: Ditto.
22699 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22701         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
22702         modes larger than TImode as TImode if NEON is not enabled.
22704 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22706         PR target/69100
22707         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
22708         mode for %f0-%f31 only if TARGET_FPU.
22710 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
22712         PR target/69072
22713         * config/sparc/sparc.c (scan_record_type): Take into account subfields
22714         to compute the PACKED_P predicate.
22715         (function_arg_record_value): Minor tweaks.
22717 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22719         * doc/install.texi (--with-multilib-list): Describe the meaning of the
22720         option for arm*-*-* targets.
22722 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
22724         * doc/extend.texi (Common Function Attributes): Move docs for
22725         MSP430-specific attributes to....
22726         (MSP430 Function Attributes): ...here.  Delete the redundant
22727         entries and copy-edit the remaining text.
22728         (MSP430 Variable Attributes): Use uniform format for index
22729         entries and add a cross-reference to the corresponding function
22730         attribute docs.
22732 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
22734         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
22735         -finite-math typo.
22736         (x86 Options): Likewise.
22738 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
22740         PR 1078
22742         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
22743         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
22744         to corresponding attribute.
22746 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
22748         * doc/extend.texi (Common Function Attributes) <noplt>: Move
22749         to correct alphabetization of table.  Copy-edit and correct
22750         markup.
22751         <stack_protect>: Likewise.
22752         <target_clones>: Likewise.
22753         <simd>: Likewise.
22754         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
22755         Correct punctuation.
22756         (Code Gen Options) <-fno-plt>: Copy-edit.
22758 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22760         PR target/68917
22761         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
22762         SI values.  Explicitly convert SI to DI and vice-versa.
22764 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
22766         PR tree-optimization/69070
22767         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
22768         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
22770         PR sanitizer/69055
22771         * ubsan.c (ubsan_instrument_float_cast): Call
22772         initialize_sanitizer_builtins.
22774         PR target/69015
22775         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
22777 Copyright (C) 2016 Free Software Foundation, Inc.
22779 Copying and distribution of this file, with or without modification,
22780 are permitted in any medium without royalty provided the copyright
22781 notice and this notice are preserved.