[AArch64, 4/4] Reimplement vmvn* intrinscis, remove inline assembly
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
2
3         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4         Remove inline assembly.
5         (vmvn_s16): Likewise.
6         (vmvn_s32): Likewise.
7         (vmvn_u8): Likewise.
8         (vmvn_u16): Likewise.
9         (vmvn_u32): Likewise.
10         (vmvnq_s8): Likewise.
11         (vmvnq_s16): Likewise.
12         (vmvnq_s32): Likewise.
13         (vmvnq_u8): Likewise.
14         (vmvnq_u16): Likewise.
15         (vmvnq_u32): Likewise.
16         (vmvn_p8): Likewise.
17         (vmvnq_p16): Likewise.
18
19 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
20
21         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
22         Use builtin.
23         (vmul_n_s16): Likewise.
24         (vmul_n_s32): Likewise.
25         (vmul_n_u16): Likewise.
26         (vmul_n_u32): Likewise.
27         (vmulq_n_f32): Likewise.
28         (vmulq_n_f64): Likewise.
29         (vmulq_n_s16): Likewise.
30         (vmulq_n_s32): Likewise.
31         (vmulq_n_u16): Likewise.
32         (vmulq_n_u32): Likewise.
33
34 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
35
36         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
37         all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
38
39 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
40
41         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
42         to *aarch64_fma4_elt_from_dup<mode>.
43         (*aarch64_fnma4_elt_to_128df): Rename to
44         *aarch64_fnma4_elt_from_dup<mode>.
45         * config/aarch64/arm_neon.h (vfma_n_f64): New.
46         (vfms_n_f32): Likewise.
47         (vfms_n_f64): Likewise.
48         (vfmsq_n_f32): Likewise.
49         (vfmsq_n_f64): Likewise.
50
51 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
52
53         * wide-int.h: Change fixed_wide_int_storage from class to struct.
54         
55 2016-05-17  Richard Biener  <rguenther@suse.de>
56
57         PR tree-optimization/71132
58         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
59         Only add control dependences for blocks in the loop.
60         (build_rdg): Adjust.
61         (generate_code_for_partition): Return whether loop should
62         be destroyed and delay that.
63         (distribute_loop): Likewise.
64         (pass_loop_distribution::execute): Record loops to be destroyed
65         and perform delayed destroying of loops.
66
67 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
68
69         PR target/70809
70         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
71
72 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
73
74         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
75
76 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
77
78         PR target/71114
79         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
80         insertion point for instructions generated by validize_mem.
81
82 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
83
84         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
85         in brackets.
86
87 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
88
89         * config/aarch64/aarch64.c
90         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
91         rather than a macro.
92
93 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
94
95         * doc/invoke.texi (AArch64 Options): Various updates.
96
97 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
98
99         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
100         into instrumentation thunks.
101         * cif-code.def (CIF_CHKP): New.
102
103 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
104
105         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
106
107 2016-05-16  Martin Jambor  <mjambor@suse.cz>
108
109         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
110         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
111
112 2016-05-16  Marek Polacek  <polacek@redhat.com>
113
114         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
115         commentary.
116
117 2016-05-16  Martin Jambor  <mjambor@suse.cz>
118
119         PR hsa/70857
120         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
121         the outlined kernel function.
122
123 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
124
125         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
126         (ISA_HAS_DLSA): Ditto.
127
128 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
129
130         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
131
132 2016-05-16  Nathan Sidwell  <nathan@acm.org>
133
134         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
135         (nvptx_name_replacement): Restore.  Add comment.
136         (write_fn_proto, write_fn_proto_from_insn,
137         nvptx_output_call_insn): Restore
138         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
139
140 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
141
142         * config/aarch64/aarch64.md
143         (add<mode>3_compareC_cconly_imm): Remove use of %w.
144         (add<mode>3_compareC_imm): Likewise.
145         (<optab>si3_uxtw): Split into register and immediate variants.
146         (andsi3_compare0_uxtw): Likewise.
147         (and<mode>3_compare0): Likewise.
148         (and<mode>3nr_compare0): Likewise.
149         (stack_protect_test_<mode>): Don't use %x for memory operands.
150
151 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
152
153         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
154
155 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
156
157          * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
158         Split integer shifts into shift_reg and bfm.
159         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
160         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
161         (ror<mode>3_insn): Likewise.
162         (<optab>si3_insn_uxtw): Likewise.
163         (<optab><mode>3_insn): Change to rotate_imm.
164         (extr<mode>5_insn_alt): Likewise.
165         (extrsi5_insn_uxtw): Likewise.
166         (extrsi5_insn_uxtw_alt): Likewise.
167
168 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
169
170         * doc/tm.texi: Regenerate.
171         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
172         (TARGET_INVALID_RETURN_TYPE): Remove.
173         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
174         TARGET_INVALID_RETURN_TYPE.
175         * target.def (invalid_parameter_type): Remove.
176         (invalid_return_type): Remove.
177
178 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
179
180         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
181         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
182         calls from thunk.
183         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
184         gimple body.
185         (preserve_function_body_p): No need to preserve function body
186         * cif-codes.def (CIF_THUNK): Remove.
187         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
188
189 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
190
191         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
192
193 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
194
195         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
196         for thunks.
197
198 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
199
200         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
201         (inline_small_functions): Do not look for function symbol when
202         resetting caches.
203
204 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
205
206         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
207         of inline thunks
208
209 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
210             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
211             Jiong Wang  <jiong.wang@arm.com>
212
213         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
214         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
215         Define __ARM_FP16_ARGS when appropriate.
216         * config/arm/arm.c (arm_invalid_parameter_type): Remove
217         declaration.
218         (arm_invalid_return_type): Likewise.
219         (TARGET_INVALID_PARAMETER_TYPE): Remove.
220         (TARGET_INVALID_RETURN_TYPE): Remove.
221         (aapcs_vfp_sub_candidate): Allow HFmode.
222         (aapcs_vfp_allocate): Add comment.  Support HFmode.
223         (aapcs_vfp_allocate_return_reg): Likewise.
224         (struct aapcs_cp_arg_layout): Slightly reword comments for
225         is_return_candidate and allocate_return_reg.
226         (output_mov_vfp): Update assert.
227         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
228         condition.
229         (arm_invalid_parameter_type): Remove.
230         (amr_invalid_return_type): Remove.
231         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
232         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
233         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
234
235 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
236
237         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
238         * config/aarch64/arch64-protos.h
239         (aarch64_legitimize_reload_address): Remove.
240         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
241         Remove.
242
243 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
244
245         * configure.ac: Add ACX_NONCANONICAL_HOST.
246         * configure: Regenerate.
247         * Makefile.in: Set host_noncanonical.
248
249 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
250
251         PR target/71097
252         * config/i386/i386.md (*movtf_internal): Before register allocation,
253         do not allow FP constants for CM_MEDIUM memory model, allow only
254         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
255         (*movxf_internal): Ditto.
256         (*movdf_internal): Ditto.
257         (*movsf_internal): Ditto.
258
259 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
260
261         PR rtl-optimization/67483
262         * combine.c (make_compound_operation): Don't call extract_left_shift
263         with negative shift amounts.
264
265 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
266
267         PR bootstrap/71071
268         * fold-const.c (fold_checksum_tree): Allow modification
269         of TYPE_ALIAS_SET during folding.
270
271         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
272         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
273         (ix86_split_to_parts): Likewise.  Fix up formatting.
274
275 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
276
277         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
278         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
279         printf format.
280
281 2016-05-13  Nathan Sidwell  <nathan@acm.org>
282
283         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
284         (nvptx_name_replacement): Delete.
285         (write_fn_proto, write_fn_proto_from_insn,
286         nvptx_output_call_insn): Remove nvptx_name_replacement call.
287         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
288         * langhooks.c (add_builtin_funcction_common): Call
289         targetm.mangle_decl_assembler_name.
290
291         * config/nvptx/nvptx.c (write_fn_proto): Handle
292         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
293
294 2016-05-13  Martin Liska  <mliska@suse.cz>
295
296         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
297         and PRIu64 in printf format.
298
299 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
300
301         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
302         comment.
303
304 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
305
306         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
307         Change --param max-completely-peeled-times to
308         --param max-completely-peel-times in dump file printing.
309
310 2016-05-13  Richard Biener  <rguenther@suse.de>
311
312         PR tree-optimization/42587
313         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
314         (find_bswap_or_nop_1): Likewise.
315         (bswap_replace): Likewise.
316
317 2016-05-13  Martin Liska  <mliska@suse.cz>
318
319         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
320         Initialize a variable with default value.
321
322 2016-05-13  Martin Liska  <mliska@suse.cz>
323
324         * doc/invoke.texi: Enhance explanation of error recovery
325         of sanitizers.
326
327 2016-05-13  Martin Liska  <mliska@suse.cz>
328
329         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
330         (struct cost_pair): Change inv_expr_id (int) to inv_expr
331         (iv_inv_expr_ent *).
332         (struct iv_inv_expr_ent): Comment struct fields.
333         (sort_iv_inv_expr_ent): New function.
334         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
335         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
336         a hash_map between iv_inv_expr_ent and number of usages.
337         (niter_for_exit): Fix coding style.
338         (tree_ssa_iv_optimize_init): Use renamed variable.
339         (determine_base_object): Fix coding style.
340         (alloc_iv): Likewise.
341         (find_interesting_uses_outside): Likewise.
342         (add_candidate_1): Likewise.
343         (add_standard_iv_candidates): Likewise.
344         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
345         (prepare_decl_rtl): Fix coding style.
346         (get_address_cost): Likewise.
347         (get_shiftadd_cost): Likewise.
348         (force_expr_to_var_cost): Likewise.
349         (compare_aff_trees): Likewise.
350         (get_expr_id): Restructure the function.
351         (get_loop_invariant_expr_id): Renamed to
352         get_loop_invariant_expr.
353         (get_computation_cost_at): Replace usage of inv_expr_id with
354         inv_expr.
355         (get_computation_cost): Likewise.
356         (determine_group_iv_cost_generic): Likewise.
357         (determine_group_iv_cost_address): Likewise.
358         (iv_period): Fix coding style.
359         (iv_elimination_compare_lt): Likewise.
360         (may_eliminate_iv): Likewise.
361         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
362         inv_expr.
363         (determine_group_iv_costs): Dump invariant expressions.
364         (iv_ca_recount_cost): Use the newly added hash_map.
365         (iv_ca_set_remove_invariants): Fix coding style.
366         (iv_ca_set_add_invariants): Fix coding style.
367         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
368         invariants.
369         (iv_ca_set_cp): Likewise.
370         (iv_ca_new): Initialize the newly added hash_map and remove
371         initialization of fields.
372         (iv_ca_free): Delete the hash_map.
373         (iv_ca_dump): Dump invariant expressions.
374         (iv_ca_extend): Fix coding style.
375         (try_add_cand_for): Likewise.
376         (create_new_ivs): Dump information about # of avg iterations and
377         # of used invariant expressions.
378         (rewrite_use_compare): Fix coding style.
379         (free_loop_data): Set default value for max_inv_expr_id.
380
381 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
382
383         * cse.c (rest_of_handle_cse): Use cleanup_cfg
384         returned value cse_cfg_altered computation.
385         (rest_of_handle_cse2): Likewise.
386         (rest_of_handle_cse_after_global_opts): Likewise.
387
388 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
389
390         PR target/53440
391         * config/arm/arm.c (arm32_output_mi_thunk): New.
392         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
393         to split Thumb1 vs TARGET_32BIT functionality.
394         (arm_thumb1_mi_thunk): New.
395
396 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
397
398         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
399         to true.
400
401 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
402
403         PR target/71080
404         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
405
406 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
407
408         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
409         (expand_builtin_trap): Emit a regular call.
410         (set_builtin_user_assembler_name): Remove obsolete cases.
411         * dse.c (scan_insn): Adjust.
412         * except.c: Include calls.h.
413         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
414         emit a regular call to setjmp.
415         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
416         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
417         (emit_block_move_via_libcall): Delete.
418         (block_move_fn): Delete.
419         (init_block_move_fn): Likewise.
420         (emit_block_move_libcall_fn): Likewise.
421         (emit_block_op_via_libcall): New function.
422         (set_storage_via_libcall): Tidy up and use memset builtin.
423         (block_clear_fn): Delete.
424         (init_block_clear_fn): Likewise.
425         (clear_storage_libcall_fn): Likewise.
426         (expand_assignment): Call emit_block_move_via_libcall.
427         Do not include gt-expr.h.
428         * expr.h (emit_block_op_via_libcall): Declare.
429         (emit_block_copy_via_libcall): New inline function.
430         (emit_block_move_via_libcall): Likewise.
431         (emit_block_comp_via_libcall): Likewise.
432         (block_clear_fn): Delete.
433         (init_block_move_fn): Likewise.
434         (init_block_clear_fn): Likewise.
435         (emit_block_move_via_libcall): Likewise.
436         (set_storage_via_libcall): Add default parameter value.
437         * libfuncs.h (enum libfunc_index): Remove obsolete values.
438         (abort_libfunc): Delete.
439         (memcpy_libfunc): Likewise.
440         (memmove_libfunc): Likewise.
441         (memcmp_libfunc): Likewise.
442         (memset_libfunc): Likewise.
443         (setbits_libfunc): Likewise.
444         (setjmp_libfunc): Likewise.
445         (longjmp_libfunc): Likewise.
446         (profile_function_entry_libfunc): Likewise.
447         (profile_function_exit_libfunc): Likewise.
448         (gcov_flush_libfunc): Likewise.
449         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
450         and DECL_VISIBILITY on the declaration.
451         (init_optabs): Do not initialize obsolete libfuncs.
452         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
453         * tree-core.h (ECF_RET1): Define.
454         (ECF_TM_PURE): Adjust.
455         (ECF_TM_BUILTIN): Likewise.
456         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
457         (build_common_builtin_nodes): Initialize abort builtin.
458         Add ECF_RET1 on memcpy, memmove and memset builtins.
459         Pass final flags for alloca and alloca_with_align builtins.
460         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
461         obsolete builtins.
462         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
463         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
464         set_storage_via_libcall and call emit_block_copy_via_libcall.
465
466 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
467
468         * config/i386/i386.md (*call_got_x32): Change operand 0 to
469         DImode before it is passed to ix86_output_call_operand.
470         (*call_value_got_x32): Ditto for operand 1.
471
472 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
473
474         PR rtl-optimization/70904
475         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
476         reload for wide mode.
477
478 2016-05-12  Marek Polacek  <polacek@redhat.com>
479
480         PR c/70756
481         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
482         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
483         * langhooks.h (incomplete_type_error): Likewise.
484         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
485         parameter, pass it down to incomplete_type_error.
486         * tree.h (size_in_bytes): New inline overload.
487         (size_in_bytes_loc): Renamed from size_in_bytes.
488
489 2016-05-12  Richard Biener  <rguenther@suse.de>
490
491         PR tree-optimization/71059
492         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
493         nary before looking up or entering the expression into the VN
494         hashes.
495         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
496         Make sure to re-use NARYs without result as inserted by
497         phi-translation.
498
499 2016-05-12  Richard Biener  <rguenther@suse.de>
500
501         PR tree-optimization/71062
502         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
503         field.
504         * tree-ssa-structalias.c (set_uids_in_ptset): Set
505         vars_contains_restrict if the var is a restrict tag.
506         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
507         do not disambiguate pointers against it.
508         (dump_points_to_solution): Re-structure and adjust for new
509         vars_contains_restrict flag.
510         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
511
512 2016-05-12  Martin Liska  <mliska@suse.cz>
513
514         * doc/invoke.texi: Explain connection between
515         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
516
517 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
518
519         PR tree-optimization/71006
520         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
521         consider COND_EXPR as a mask producer.
522
523 2016-05-12  Marek Polacek  <polacek@redhat.com>
524
525         PR driver/71063
526         * opts.c (common_handle_option): Detect missing argument for --help^.
527
528 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
529
530         PR target/70830
531         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
532         when popping the PC and within an interrupt handler routine.
533         Add missing tab to output of "ldmfd".
534         (output_return_instruction): Output LDMFD with SP update rather
535         than POP when returning from interrupt handler.
536
537 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
538
539         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
540         TARGET_64BIT && TARGET_AVX512DQ.
541         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
542         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
543         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
544         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
545         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
546         (*vec_extractv4si_zext): Add avx512dq alternative.
547         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
548         use v instead of x constraint in other alternatives where possible.
549
550         * config/i386/sse.md (sse2_loadld): Use v instead of x
551         constraint in alternatives 0,1,4.
552
553         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
554         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
555         v constraints instead of x and <pinsr_evex_isa> isa attribute.
556
557         PR target/71019
558         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
559         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
560         is not emitted unless TARGET_AVX512BW.
561         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
562         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
563         for the result operand.
564
565         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
566         constraint instead of x in avx alternatives.  Use maybe_evex instead
567         of vex prefix.
568
569         * config/i386/constraints.md (Yv): New constraint.
570         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
571         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
572         * config/i386/i386.md (avx512fvecmode): New mode attr.
573         (*pushtf): Use v constraint instead of x.
574         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
575         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
576         (*absneg<mode>2): Use Yv constraint instead of x constraint.
577         (*absnegtf2_sse): Likewise.
578         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
579         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
580         avx512f alternatives.
581         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
582
583 2016-05-12  Richard Biener  <rguenther@suse.de>
584
585         PR tree-optimization/71060
586         * tree-data-ref.c (initialize_data_dependence_relation): Do not
587         require exact match of DR_BASE_OBJECT but only matching address and
588         type.
589
590 2016-05-12  Richard Biener  <rguenther@suse.de>
591
592         PR tree-optimization/70986
593         * cfganal.c: Include cfgloop.h.
594         (dfs_find_deadend): Prefer to take edges exiting loops.
595
596 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
597
598         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
599         compile and run time.
600
601 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
602
603         PR c/43651
604         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
605
606 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
607
608         * config/i386/i386.c (legitimize_pic_address): Use
609         copy_to_suggested_reg instead of gen_movsi.
610
611 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
612
613         * config/rs6000/predicates.md (quad_memory_operand): Move most of
614         the code into quad_address_p and call it to share code with
615         vsx_quad_dform_memory_operand.
616         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
617         d-form support.
618         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
619         bit instead of being a separate word.  Split -mpower9-dform into
620         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
621         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
622         for the register class supporting 128-bit quad word memory offsets.
623         (mode_supports_vsx_dform_quad): Helper function to return if the
624         register class uses quad word memory offsets.
625         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
626         (rs6000_debug_reg_global): Always print if we are using LRA or not.
627         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
628         instructions are enabled, set up the appropriate addr_masks for
629         128-bit types.
630         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
631         -mpower9-dform-scalar, instead of -mpower9-dform.
632         (rs6000_option_override_internal): Split -mpower9-dform into two
633         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
634         -mpower9-dform switch sets or clears both.  If we are not using
635         the LRA register allocator, do not enable -mpower9-dform-vector by
636         default.  If we are using LRA, enable -mpower9-dform-vector and
637         -mvsx-timode if it is appropriate.  Issue a warning if either
638         -mpower9-dform-vector or -mvsx-timode are explicitly used without
639         enabling LRA.
640         (quad_address_offset_p): New helper function to return if the
641         offset is legal for quad word memory instructions.
642         (quad_address_p): New function to determin if GPR or vector
643         register quad word memory addresses are legal.
644         (mem_operand_gpr): Validate quad word address offsets.
645         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
646         d-form (register + offset) instructions.
647         (offsettable_ok_by_alignment): Likewise.
648         (rs6000_legitimate_offset_address_p): Likewise.
649         (legitimate_lo_sum_address_p): Likewise.
650         (rs6000_legitimize_address): Likewise.
651         (rs6000_legitimize_reload_address): Add more debug statements for
652         -mdebug=addr.
653         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
654         d-form instructions.
655         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
656         d-form instructions.  Distinguish different cases in debug
657         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
658         d-form instructions.
659         (rs6000_preferred_reload_class): Likewise.
660         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
661         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
662         of the ISA 2.06 indexed memory instructions.
663         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
664         use them to save/restore the saved vector registers instead of
665         using Altivec instructions.
666         (rs6000_emit_epilogue): Likewise.
667         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
668         (rs6000_opt_masks): Split -mpower9-dform into
669         -mpower9-dform-scalar and -mpower9-dform-vector.
670         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
671         was not selected.
672         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
673         ISA 3.0 vector indexed memory instructions, and fold the code into
674         the normal mov<mode> patterns.
675         (p9_vecstore_<mode>): Likewise.
676         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
677         instructions.
678         (vsx_movti_64bit): Likewise.
679         (vsx_movti_32bit): Likewise.
680         * config/rs6000/constraints.md (wO constraint): New constraint for
681         ISA 3.0 vector d-form support.
682         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
683         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
684         include -mpower9-dform-vector until we switch over to LRA.
685         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
686         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
687         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
688         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
689         for -mpower9-dform and -mlra.
690         * doc/md.texi (wO constraint): Document wO constraint.
691
692 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
693
694         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
695         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
696         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
697         Move handling of non-insn arguments inline into the sole user:
698         (output_trans_func): ...here.
699         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
700         in emitted function prototype.
701         (output_internal_insn_latency_func): Ditto.  Simplify.
702         (output_internal_maximal_insn_latency_func): Ditto.  Delete
703         always-unused argument.
704         (output_insn_latency_func): Ditto.
705         (output_maximal_insn_latency_func): Ditto.
706
707 2016-05-11  Richard Biener  <rguenther@suse.de>
708
709         PR tree-optimization/71055
710         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
711         sth with precision not equal to access size verify we don't chop
712         off bits.
713
714 2016-05-11  Richard Biener  <rguenther@suse.de>
715
716         PR debug/71057
717         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
718         (dwarf2out_finish): Move retry_incomplete_types call ...
719         (dwarf2out_early_finish): ... here.
720
721 2016-05-11  Richard Biener  <rguenther@suse.de>
722
723         PR middle-end/71002
724         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
725         if the langhook insists on it.
726         * fold-const.c (make_bit_field_ref): Add arg for the original
727         reference and preserve its alias-set.
728         (decode_field_reference): Take exp by reference and adjust it
729         to the original memory reference.
730         (optimize_bit_field_compare): Adjust callers.
731         (fold_truth_andor_1): Likewise.
732         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
733
734 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
735
736         PR middle-end/70807
737         * cfgrtl.h (delete_insn_and_edges): Now return bool.
738         * cfgrtl.c (delete_insn_and_edges): Likewise.
739         * config/i386/i386.c (convert_scalars_to_vector): Remove
740         redundant code.
741         * cse.c (cse_insn): Compute cse_cfg_altered.
742         (delete_trivially_dead_insns): Likewise.
743         (cse_cc_succs): Likewise.
744         (rest_of_handle_cse): Free dominance info if required.
745         (rest_of_handle_cse2): Likewise.
746         (rest_of_handle_cse_after_global_opts): Likewise.
747
748 2016-05-11  Alan Modra  <amodra@gmail.com>
749
750         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
751         abi_v4_pass_in_fpr): New functions.
752         (rs6000_function_arg_boundary): Exclude complex IBM long double
753         from 64-bit alignment when ABI_V4.
754         (rs6000_function_arg, rs6000_function_arg_advance_1,
755         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
756
757 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
758
759         PR rtl-optimization/71028
760         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
761         jump with just a return in the fallthrough block if the branch
762         block contains just a return as well.
763
764 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
765
766         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
767         * match.pd ((X & Y) ^ Y): ... this.
768         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
769         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
770
771 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
772
773         * read-md.c (require_char_ws): New function.
774         (read_string): Simplify using require_char_ws.
775         (handle_constants): Likewise.
776         (handle_enum): Likewise.
777         (handle_file): Likewise.
778         * read-md.h (require_char_ws): New declaration.
779         * read-rtl.c (read_conditions): Simplify using require_char_ws.
780         (read_mapping): Likewise.
781         (read_rtx_code): Likewise.
782         (read_nested_rtx): Likewise.
783
784 2016-05-10  James Norris  <jnorris@codesourcery.com>
785
786         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
787         if offloading is enabled and -fopenacc or -fopenmp is specified.
788         (CRTOFFLOADEND): Likewise.
789         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
790         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
791
792 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
793
794         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
795         gotoff_operand code paths.  Use copy_to_suggested_regs and
796         expand_simple_binop where appropriate.  Cleanup.
797
798 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
799
800         PR target/70799
801         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
802         integer constants.
803         (dimode_scalar_chain::vector_const_cost): New.
804         (dimode_scalar_chain::compute_convert_gain): Handle constants.
805         (dimode_scalar_chain::convert_op): Likewise.
806         (dimode_scalar_chain::convert_insn): Likewise.
807
808 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
809
810         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
811         unary operation, not a binary one.
812
813 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
814
815         PR middle-end/70877
816         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
817         calls with type casted fndecl.
818
819 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
820
821         PR tree-optimization/70786
822         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
823         * gcc/calls.c (initialize_argument_information): Bind bounds
824         with corresponding args passed by reference.
825
826 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
827
828         PR target/70927
829         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
830         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
831         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
832         accordingly.
833
834 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
835
836         PR target/70963
837         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
838         code for a zero scale factor.
839         (vsx_xvcvdpuxds_scale): Likewise.
840
841 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
842
843         * diagnostic-show-locus.c (layout::layout): Call show_ruler
844         if show_ruler_p was set on the context.
845         (layout::show_ruler): New method.
846         * diagnostic.h (struct diagnostic_context): Add field
847         "show_ruler_p".
848
849 2016-05-10  Richard Biener  <rguenther@suse.de>
850
851         PR tree-optimization/71039
852         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
853         (chk_uses): New function.
854         (propagate_with_phi): Verify we can safely replicate the lhs of an
855         aggregate assignment on all incoming edges.
856
857 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
858
859         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
860         Forward declare.
861         (rx_atomic_sequence): New class.
862         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
863         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
864         non-inline.
865         (rx_atomic_sequence::rx_atomic_sequence,
866         rx_atomic_sequence::~rx_atomic_sequence): New functions.
867         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
868         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
869         CTRLREG_INTB): New constants.
870         (FETCHOP): New code iterator.
871         (fethcop_name, fetchop_name2): New iterator code attributes.
872         (QIHI): New mode iterator.
873         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
874         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
875         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
876
877 2016-05-10  Martin Liska  <mliska@suse.cz>
878
879         * tree-inline.c (remap_dependence_clique): Do not remap
880         debugging statements.
881
882 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
883
884         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
885         ("*fixuns_truncdfdi2_z13")
886         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
887         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
888         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
889
890 2016-05-10  Richard Biener  <rguenther@suse.de>
891
892         PR tree-optimization/70497
893         PR tree-optimization/28367
894         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
895         split out from ...
896         (visit_reference_op_load): ... here.
897         (vn_reference_lookup_3): Use it to handle subreg-like accesses
898         with simplified BIT_FIELD_REFs.
899         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
900         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
901         correctly.
902
903 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
904
905         * dwarf2out.c (add_abstract_origin_attribute): Adjust
906         documentation comment.  For BLOCK nodes, add a
907         DW_AT_abstract_origin attribute that points to the DIE generated
908         for the origin BLOCK.
909         (gen_lexical_block_die): Call add_abstract_origin_attribute for
910         blocks from inlined functions.
911
912 2016-05-10  Alan Modra  <amodra@gmail.com>
913
914         PR target/70947
915         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
916         regrename modifying insns saving lr before __morestack call.
917         * config/rs6000/rs6000.md (split_stack_return): Similarly for
918         insns restoring lr after __morestack call.
919
920 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
921
922         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
923         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
924         expanders.
925         * config/i386/sse.md (vec_interleave_high<mode>,
926         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
927         <avx512>_vpermt2var<mode>3_maskz): Likewise.
928
929 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
930
931         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
932         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
933         parallel reassociation for power8 and forward.
934
935 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
936
937         * config/i386/i386.md (absneg splitters with general regs): Use
938         general_reg_operand predicate.
939         (btsq peephole2): Use x86_64_immediate_operand to check if new
940         value is suitable for immediate operand.  Generate emitted insn
941         using RTL expressions.
942         (btcq peephole2): Ditto.
943         (btrq peephole2): Ditto.  Generate correct immediate operand
944         for AND masking.
945
946 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
947
948         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
949         bitpos.
950
951 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
952
953         * tree-affine.c (wide_int_constant_multiple_p): Add missing
954         pointer dereference.
955
956 2016-05-09  Richard Biener  <rguenther@suse.de>
957
958         PR tree-optimization/70985
959         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
960         op0 isn't a gimple register.
961
962 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
963
964         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
965         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
966         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
967         (i6400_fpu_mult): New cpu units.
968         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
969         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
970         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
971         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
972         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
973         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
974         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
975         (i6400_msa_long_float4, i6400_msa_long_float5)
976         (i6400_msa_long_float8, i6400_msa_fdiv_df)
977         (i6400_msa_fdiv_sf): New reservations.
978         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
979         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
980         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
981         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
982         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
983         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
984         (msa_short_cmp, msa_short_float2, msa_short_logic3)
985         (msa_short_store4, msa_long_load, msa_short_store)
986         (msa_long_logic, msa_long_float2, msa_long_float4)
987         (msa_long_float5, msa_long_float8, msa_long_mult)
988         (msa_long_fdiv, msa_long_div): New reservations.
989
990 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
991             Sameera Deshpande  <sameera.deshpande@imgtec.com>
992             Matthew Fortune  <matthew.fortune@imgtec.com>
993             Graham Stott  <graham.stott@imgtec.com>
994             Chao-ying Fu  <chao-ying.fu@imgtec.com>
995
996         * config.gcc: Add MSA header file for mips*-*-* target.
997         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
998         (Ubv8i, Urv8):  New constraints.
999         * config/mips/mips-ftypes.def: Add function types for MSA
1000         builtins.
1001         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
1002         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
1003         * config/mips/mips-msa.md: New file.
1004         * config/mips/mips-protos.h
1005         (mips_split_128bit_const_insns): New prototype.
1006         (mips_msa_idiv_insns): Likewise.
1007         (mips_split_128bit_move): Likewise.
1008         (mips_split_128bit_move_p): Likewise.
1009         (mips_split_msa_copy_d): Likewise.
1010         (mips_split_msa_insert_d): Likewise.
1011         (mips_split_msa_fill_d): Likewise.
1012         (mips_expand_msa_branch): Likewise.
1013         (mips_const_vector_same_val_p): Likewise.
1014         (mips_const_vector_same_bytes_p): Likewise.
1015         (mips_const_vector_same_int_p): Likewise.
1016         (mips_const_vector_shuffle_set_p): Likewise.
1017         (mips_const_vector_bitimm_set_p): Likewise.
1018         (mips_const_vector_bitimm_clr_p): Likewise.
1019         (mips_msa_vec_parallel_const_half): Likewise.
1020         (mips_msa_output_division): Likewise.
1021         (mips_ldst_scaled_shift): Likewise.
1022         (mips_expand_vec_cond_expr): Likewise.
1023         * config/mips/mips.c (enum mips_builtin_type): Add
1024         MIPS_BUILTIN_MSA_TEST_BRANCH.
1025         (mips_gen_const_int_vector_shuffle): New prototype.
1026         (mips_const_vector_bitimm_set_p): New function.
1027         (mips_const_vector_bitimm_clr_p): Likewise.
1028         (mips_const_vector_same_val_p): Likewise.
1029         (mips_const_vector_same_bytes_p): Likewise.
1030         (mips_const_vector_same_int_p): Likewise.
1031         (mips_const_vector_shuffle_set_p): Likewise.
1032         (mips_symbol_insns): Forbid loading symbols via immediate for
1033         MSA.
1034         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
1035         stores.
1036         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
1037         MSA.
1038         (mips_lx_address_p): Add support load indexed address for MSA.
1039         (mips_address_insns): Add calculation of instructions needed for
1040         stores and loads for MSA.
1041         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
1042         CONST_VECTOR for MSA and let it fall through.
1043         (mips_ldst_scaled_shift): New function.
1044         (mips_subword_at_byte): Likewise.
1045         (mips_msa_idiv_insns): Likewise.
1046         (mips_legitimize_move): Validate MSA moves.
1047         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
1048         calculation of costs for MSA division.
1049         (mips_split_move_p): Check if MSA moves need splitting.
1050         (mips_split_move): Split MSA moves if necessary.
1051         (mips_split_128bit_move_p): New function.
1052         (mips_split_128bit_move): Likewise.
1053         (mips_split_msa_copy_d): Likewise.
1054         (mips_split_msa_insert_d): Likewise.
1055         (mips_split_msa_fill_d): Likewise.
1056         (mips_output_move): Handle MSA moves.
1057         (mips_expand_msa_branch): New function.
1058         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
1059         Reinstate 'y' modifier.
1060         (mips_file_start): Add MSA .gnu_attribute.
1061         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
1062         FPRs.
1063         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
1064         (mips_class_max_nregs): Add register size for MSA supported mode.
1065         (mips_cannot_change_mode_class): Allow conversion between MSA
1066         vector modes and TImode.
1067         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
1068         instruction.
1069         (mips_secondary_reload_class): Force MSA loads/stores via memory.
1070         (mips_preferred_simd_mode): Add preffered modes for MSA.
1071         (mips_vector_mode_supported_p): Add MSA supported modes.
1072         (mips_autovectorize_vector_sizes): New function.
1073         (mips_msa_output_division): Likewise.
1074         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
1075         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
1076         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
1077         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
1078         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
1079         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
1080         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
1081         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
1082         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
1083         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
1084         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
1085         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
1086         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
1087         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
1088         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
1089         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
1090         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
1091         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
1092         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
1093         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
1094         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
1095         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
1096         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
1097         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
1098         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
1099         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
1100         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
1101         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
1102         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
1103         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
1104         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
1105         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
1106         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
1107         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
1108         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
1109         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
1110         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
1111         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
1112         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
1113         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
1114         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
1115         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
1116         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
1117         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
1118         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1119         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1120         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1121         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1122         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1123         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1124         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1125         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1126         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
1127         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
1128         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
1129         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
1130         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
1131         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
1132         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
1133         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
1134         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
1135         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
1136         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
1137         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
1138         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
1139         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
1140         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
1141         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
1142         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
1143         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
1144         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
1145         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
1146         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
1147         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
1148         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
1149         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
1150         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
1151         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
1152         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
1153         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
1154         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
1155         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
1156         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
1157         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
1158         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
1159         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
1160         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
1161         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
1162         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
1163         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
1164         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
1165         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
1166         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
1167         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
1168         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
1169         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
1170         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
1171         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
1172         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
1173         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
1174         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
1175         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
1176         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
1177         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
1178         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
1179         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
1180         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
1181         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
1182         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
1183         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
1184         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
1185         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
1186         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
1187         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
1188         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
1189         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
1190         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
1191         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
1192         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
1193         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
1194         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
1195         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
1196         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
1197         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
1198         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
1199         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
1200         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
1201         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
1202         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
1203         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
1204         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
1205         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
1206         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
1207         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
1208         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
1209         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
1210         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
1211         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
1212         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
1213         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
1214         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
1215         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
1216         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
1217         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
1218         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
1219         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
1220         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
1221         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
1222         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
1223         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
1224         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
1225         move_v builtins.
1226         (mips_get_builtin_decl_index): New array.
1227         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
1228         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
1229         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
1230         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
1231         (mips_init_builtins): Initialize mips_get_builtin_decl_index
1232         array.
1233         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1234         hook.
1235         (mips_expand_builtin_insn): Prepare operands for
1236         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
1237         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
1238         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
1239         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
1240         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
1241         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
1242         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
1243         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
1244         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
1245         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
1246         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
1247         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
1248         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
1249         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
1250         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
1251         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
1252         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
1253         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
1254         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
1255         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
1256         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
1257         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1258         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1259         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1260         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1261         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1262         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1263         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1264         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1265         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1266         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1267         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1268         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1269         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1270         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1271         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1272         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1273         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1274         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1275         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1276         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1277         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1278         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1279         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1280         These are set implicitly and an error is reported if overridden.
1281         (mips_expand_builtin_msa_test_branch): New function.
1282         (mips_expand_msa_shuffle): Likewise.
1283         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1284         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1285         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1286         (mips_expand_vec_unpack): Add support for MSA.
1287         (mips_expand_vector_init): Likewise.
1288         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1289         instead of const0_rtx.
1290         (mips_msa_vec_parallel_const_half): New function.
1291         (mips_gen_const_int_vector): Likewise.
1292         (mips_gen_const_int_vector_shuffle): Likewise.
1293         (mips_expand_msa_cmp): Likewise.
1294         (mips_expand_vec_cond_expr): Likewise.
1295         * config/mips/mips.h
1296         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1297         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1298         specified.
1299         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1300         (ISA_HAS_MSA): New macro.
1301         (UNITS_PER_MSA_REG): Likewise.
1302         (BITS_PER_MSA_REG): Likewise.
1303         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1304         (MSA_REG_FIRST): New macro.
1305         (MSA_REG_LAST): Likewise.
1306         (MSA_REG_NUM): Likewise.
1307         (MSA_REG_P): Likewise.
1308         (MSA_REG_RTX_P): Likewise.
1309         (MSA_SUPPORTED_MODE_P): Likewise.
1310         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1311         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1312         * config/mips/mips.md: Include mips-msa.md.
1313         (alu_type): Add simd_add.
1314         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1315         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1316         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1317         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1318         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1319         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1320         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1321         simd_move, simd_load, simd_store.  Choose "multi" for moves
1322         for "qword_mode".
1323         (qword_mode): New attribute.
1324         (insn_count): Add instruction count for quad moves.
1325         Increase the count for MIPS SIMD division.
1326         (UNITMODE): Add UNITMODEs for vector types.
1327         (addsub): New code iterator.
1328         * config/mips/mips.opt (mmsa): New option.
1329         * config/mips/msa.h: New file.
1330         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1331         specified.
1332         * config/mips/mti-linux.h: Likewise.
1333         * config/mips/predicates.md
1334         (const_msa_branch_operand): New constraint.
1335         (const_uimm3_operand): Likewise.
1336         (const_uimm4_operand): Likewise.
1337         (const_uimm5_operand): Likewise.
1338         (const_uimm8_operand): Likewise.
1339         (const_imm5_operand): Likewise.
1340         (aq10b_operand): Likewise.
1341         (aq10h_operand): Likewise.
1342         (aq10w_operand): Likewise.
1343         (aq10d_operand): Likewise.
1344         (const_m1_operand): Likewise.
1345         (reg_or_m1_operand): Likewise.
1346         (const_exp_2_operand): Likewise.
1347         (const_exp_4_operand): Likewise.
1348         (const_exp_8_operand): Likewise.
1349         (const_exp_16_operand): Likewise.
1350         (const_vector_same_val_operand): Likewise.
1351         (const_vector_same_simm5_operand): Likewise.
1352         (const_vector_same_uimm5_operand): Likewise.
1353         (const_vector_same_uimm6_operand): Likewise.
1354         (const_vector_same_uimm8_operand): Likewise.
1355         (par_const_vector_shf_set_operand): Likewise.
1356         (reg_or_vector_same_val_operand): Likewise.
1357         (reg_or_vector_same_simm5_operand): Likewise.
1358         (reg_or_vector_same_uimm6_operand): Likewise.
1359         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1360         section.
1361         * doc/invoke.texi (-mmsa): Document new option.
1362
1363 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1364
1365         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1366         * configure: Regenerate.
1367         * config.in: Regenerate.
1368         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1369         on -fvtable-verify.
1370         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1371         (ENDFILE_VTV_SPEC): Define.
1372
1373 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1374
1375         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1376         registers in all interrupt handlers if necessary.
1377         (rl78_option_override): Add warning.
1378         (MUST_SAVE_MDUC_REGISTERS): New macro.
1379         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1380         * config/rl78/rl78.c (check_mduc_usage): New function.
1381         (mduc_regs): New structure to hold MDUC register data.
1382         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1383         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1384         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1385         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1386         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1387         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1388
1389 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1390
1391         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1392         (tree-ssa-loop-niter.h): Ditto.
1393         (idx_within_array_bound, ref_within_array_bound): New functions.
1394         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1395         Factor out check on writable base object to ...
1396         (base_object_writable): ... here.
1397
1398 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1399
1400         * config/arm/arm.md (probe_stack): Add modes to set source
1401         and destination.
1402
1403 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1404
1405         * regrename.c (base_reg_class_for_rename): New static function.
1406         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1407
1408 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1409
1410         * cgraph.c (thunk_adjust): Export.
1411         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1412         * cgraphunit.c (thunk_adjust): Export.
1413         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1414         thunks.
1415         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1416         inlinable.
1417         * tree-inline.c (expand_call_inline): Expand thunks inline.
1418
1419 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1420
1421         PR target/70998
1422         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1423         (*sse2_vd_cvtss2sd): Ditto.
1424         * config/i386/i386.md
1425         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1426         Generate *sse2_vd_cvtsd2ss pattern.
1427         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1428         Generate *sse2_vd_cvtss2sd pattern.
1429
1430 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1431
1432         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1433         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1434         users.
1435
1436 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1437
1438         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1439         * config/sh/sh.c: Define and declare variables on first use throughout
1440         the file.
1441         (current_function_interrupt): Change to bool type.
1442         (frame_insn): Rename to emit_frame_insn and update users.
1443         (push_regs): Use bool for 'interrupt_handler' argument.
1444         (save_schedule_s): Remove.
1445         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1446         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1447         targetm.asm_out.unaligned_op.di.
1448         (gen_far_branch): Remove redundant forward declaration.
1449         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1450         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1451         (sh_set_return_address, sh_function_ok_for_sibcall,
1452         scavenge_reg): Update comments.
1453         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1454         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1455         (sh_attr_renesas_p): Remove unnecessary parentheses.
1456         (branch_dest): Simplify.
1457         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1458         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1459         (CUMULATIVE_ARGS): Change macro to typedef.
1460         (current_function_interrupt): Change to bool type.
1461         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1462         Surround with __cplusplus ifdef.
1463         (sh_compare_op0, sh_compare_op1): Remove.
1464         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1465
1466 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1467
1468         * config/arm/arm.md: (arch): Add neon.
1469         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1470         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1471         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1472         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1473         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1474         (thumb2_movdf_vfp): Likewise.
1475
1476 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1477
1478         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1479         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1480         (*andqi_1): Add preferred_for_speed attribute to disparage
1481         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1482         (*<code>qi_1): Ditto.
1483         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1484         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1485         (*ashlqi3_1): Ditto.
1486         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1487         Add preferred_for_size attribute to disparage alternative 0 and
1488         preferred_for_speed attribute to disparage alternative 1 for
1489         TARGET_PARTIAL_REG_STALL targets.
1490
1491 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1492
1493         PR tree-optimization/70956
1494         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1495         def.
1496
1497 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1498
1499         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1500         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1501         * config/sh/sh.md (branch_zero): Remove define_attr.
1502         (define_delay): Disable delay slot if branch distance is one insn.
1503
1504 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1505
1506         * config/i386/i386.md (LEAMODE): New mode attribute.
1507         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1508         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1509         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1510         operand 2 predicate.
1511         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1512         (*lea<mode>_general_3): Ditto.
1513         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1514
1515 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1516
1517         * genmddump.c (main): Convert argv from char ** to const char **.
1518
1519 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1520
1521         * coretypes.h (OVERRIDE): New macro.
1522         (FINAL): New macro.
1523
1524 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1525
1526         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1527         allow coalescing if the types are compatible.
1528
1529 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1530
1531         * pass_manager.h (pass_manager::register_pass_name): New method.
1532         (pass_manager::get_pass_by_name): New method.
1533         (pass_manager::create_pass_tab): New method.
1534         (pass_manager::m_name_to_pass_map): New field.
1535         * passes.c (name_to_pass_map): Delete global in favor of field
1536         "m_name_to_pass_map" of pass_manager.
1537         (register_pass_name): Rename from a function to...
1538         (pass_manager::register_pass_name): ...this method, updating
1539         for renaming of global "name_to_pass_map" to field
1540         "m_name_to_pass_map".
1541         (create_pass_tab): Rename from a function to...
1542         (pass_manager::create_pass_tab): ...this method, updating
1543         for renaming of global "name_to_pass_map" to field.
1544         (get_pass_by_name): Rename from a function to...
1545         (pass_manager::get_pass_by_name): ...this method.
1546         (enable_disable_pass): Convert use of get_pass_by_name to
1547         a method call, locating the pass_manager singleton.
1548
1549 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1550
1551         * genattr-common.c (main): Convert argv from char ** to const char **.
1552         * genattr.c (main): Likewise.
1553         * genattrtab.c (main): Likewise.
1554         * genautomata.c (initiate_automaton_gen): Likewise.
1555         (main): Likewise.
1556         * gencodes.c (main): Likewise.
1557         * genconditions.c (main): Likewise.
1558         * genconfig.c (main): Likewise.
1559         * genconstants.c (main): Likewise.
1560         * genemit.c (main): Likewise.
1561         * genenums.c (main): Likewise.
1562         * genextract.c (main): Likewise.
1563         * genflags.c (main): Likewise.
1564         * genmddeps.c (main): Likewise.
1565         * genopinit.c (main): Likewise.
1566         * genoutput.c (main): Likewise.
1567         * genpeep.c (main): Likewise.
1568         * genpreds.c (main): Likewise.
1569         * genrecog.c (main): Likewise.
1570         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1571         (init_rtx_reader_args): Likewise.
1572         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1573         (init_rtx_reader_args): Likewise.
1574         * gentarget-def.c (main): Likewise.
1575         * read-md.c (read_md_files): Likewise.
1576         * read-md.h (read_md_files): Likewise.
1577
1578 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1579
1580         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1581         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1582         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1583         Remove unused predicate.
1584         (register_and_not_fp_reg_operand): Ditto.
1585
1586 2016-05-06  Martin Liska  <mliska@suse.cz>
1587
1588         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1589         instead of vec as the vector is local to the function.
1590
1591 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1592
1593         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1594         avx512bw alternative.
1595
1596         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1597         before the ashr<mode>3 pattern.
1598
1599         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1600         v instead of x in vex or maybe_vex alternatives, use
1601         maybe_evex instead of vex in prefix.
1602
1603         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1604         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1605         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1606         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1607         in prefix.
1608
1609         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1610         v instead of x in vex or maybe_vex alternatives, use
1611         maybe_evex instead of vex in prefix.
1612
1613         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1614         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1615         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1616         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1617         alternatives, use maybe_evex instead of vex in prefix.
1618
1619         * config/i386/sse.md (vec_interleave_lowv4sf,
1620         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1621         v instead of x in vex or maybe_vex alternatives, use
1622         maybe_evex instead of vex in prefix.
1623
1624         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1625         v instead of x in vex or maybe_vex alternatives, use
1626         maybe_evex instead of vex in prefix.
1627
1628         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1629         v constraint instead of x.
1630
1631 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1632
1633         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1634         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1635         equality first.
1636
1637 2016-05-06  Richard Biener  <rguenther@suse.de>
1638
1639         PR tree-optimization/70948
1640         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1641         Properly clobber all fields of va_list for __builtin_va_start.
1642
1643 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1644
1645         PR debug/70935
1646         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1647         loop latch destination.
1648
1649 2016-05-06  Martin Liska  <mliska@suse.cz>
1650
1651         * tree-ssa-uninit.c: Apply manual changes
1652         to the GNU coding style.
1653         (prune_uninit_phi_opnds): Rename from
1654         prune_uninit_phi_opnds_in_unrealizable_paths.
1655
1656 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1657
1658         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1659         mspace): Remove deprecated options.
1660         * doc/invoke.texi (SH options): Remove -mspace.
1661
1662 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1663
1664         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1665
1666 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1667
1668         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1669         corresponding combine split pattern.
1670
1671 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1672
1673         PR target/58219
1674         * config/sh/predicates.md (long_displacement_mem_operand): New.
1675         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1676         Add movi20, movi20s alternatives.  Adjust length attribute for
1677         alternatives.
1678         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1679         alternatives.
1680         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1681         attribute for alternatives.
1682         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1683         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1684         length attribute for alternatives.
1685
1686 2016-05-06  Richard Biener  <rguenther@suse.de>
1687
1688         PR tree-optimization/70960
1689         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1690
1691 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1692
1693         PR target/52933
1694         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1695         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1696
1697 2016-05-06  Marek Polacek  <polacek@redhat.com>
1698
1699         PR sanitizer/70875
1700         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1701
1702 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1703
1704         PR target/54089
1705         * config/sh/sh.md (*rotcr): Add another variant.
1706
1707 2016-05-06  Richard Biener  <rguenther@suse.de>
1708
1709         PR middle-end/70931
1710         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1711
1712 2016-05-06  Richard Biener  <rguenther@suse.de>
1713
1714         PR middle-end/70941
1715         * fold-const.c (split_tree): Always convert to the original type
1716         before negating.
1717
1718 2016-05-06  Richard Biener  <rguenther@suse.de>
1719
1720         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1721         (fwprop_addr): Likewise.
1722
1723 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1724
1725         PR target/70873
1726         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1727         New prototype.
1728         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1729         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1730         the splitter condition.
1731         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1732         the splitter condition.
1733         (FP float_extend load splitter): Ditto.
1734
1735 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1738         to REGNO in all peephole2 patterns.
1739         (post-reload splitters): Change true_regnum to REGNO in
1740         post-reload splitters.
1741         (zero_extend splitters): Use general_reg_operand and
1742         nonimmediate_gr_operand predicates.
1743
1744 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1745
1746         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1747         v constraint instead of x.
1748
1749 2016-05-05  Alan Modra  <amodra@gmail.com>
1750
1751         PR target/68662
1752         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1753         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1754         TARGET_NO_FP_IN_TOC for -mrelocatable.
1755         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1756         TARGET_RELOCATABLE test.
1757         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1758         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1759         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1760         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1761         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1762         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1763         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1764         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1765         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1766         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1767         Likewise.
1768         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1769         (rs6000_stack_info): Likewise.
1770         (rs6000_elf_asm_out_constructor): Likewise.
1771         (rs6000_elf_asm_out_destructor): Likewise.
1772         (rs6000_elf_declare_function_name): Likewise.
1773         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1774         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1775         Don't define.
1776
1777 2016-05-05  Alan Modra  <amodra@gmail.com>
1778
1779         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1780
1781 2016-05-05  Alan Modra  <amodra@gmail.com>
1782
1783         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1784         out-of-line gpr restore for one or two regs if that would add
1785         a save of lr.
1786
1787 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1788
1789         PR target/70873
1790         * config/i386/i386.md
1791         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1792         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1793         as operand 0 predicate.
1794         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1795         Ditto.
1796         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1797         Ditto.  Emit the pattern using RTX.
1798
1799         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1800         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1801         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1802         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1803         Ditto.
1804         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1805         sse_reg_operand as operand 0 predicate.
1806
1807         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1808         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
1809         instead of gen_rtx_REG.
1810         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
1811         Ditto.
1812
1813 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1814
1815         * function.c (emit_use_return_register_into_block): Delete.
1816         (gen_return_pattern): Delete.
1817         (emit_return_into_block): Delete.
1818         (active_insn_between): Delete.
1819         (convert_jumps_to_returns): Delete.
1820         (emit_return_for_exit): Delete.
1821         (thread_prologue_and_epilogue_insns): Delete all code dealing with
1822         simple_return for shrink-wrapped blocks.
1823         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
1824         end of blocks that need one.
1825         (get_unconverted_simple_return): Delete.
1826         (convert_to_simple_return): Delete.
1827         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
1828         (convert_to_simple_return): Ditto.
1829
1830 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1831
1832         * cfgcleanup.c (bb_is_just_return): New function.
1833         (try_optimize_cfg): Simplify jumps to return, branches to return,
1834         and branches around return.
1835
1836 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1837
1838         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
1839         branch to a return.
1840
1841 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1842
1843         PR c++/70906
1844         PR c++/70933
1845         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
1846         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
1847         assert flags & OEP_HASH_CHECK, instead of asserting it
1848         never happens.  Handle TARGET_EXPR.
1849         * fold-const.c (operand_equal_p): For hash verification,
1850         or in OEP_HASH_CHECK into flags.
1851
1852 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1853
1854         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
1855         comment.
1856         (compute_samebase_partition_bases): Fix typo.
1857
1858 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1859
1860         * config/i386/sse.md (vec_interleave_highv8sf,
1861         vec_interleave_lowv8sf, vec_interleave_highv4df,
1862         vec_interleave_lowv4df): Remove constraints from expanders.
1863
1864         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
1865
1866 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1867
1868         * tree-inline.c (expand_call_inline): Fix path dealing with
1869         making lhs of call statement undefined.
1870
1871 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1872
1873         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
1874         Check availability on NODE, too.
1875         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
1876         (cgraph_node::call_for_symbol_and_aliases): Likewise.
1877         (varpool_node::call_for_symbol_and_aliase): Likewise.
1878         * ipa-pure-const.c (add_new_function): Analyze all bodies.
1879         (propagate_pure_const): Propagate across interposable functions, too.
1880         (skip_function_for_local_pure_const): Do not skip interposable bodies
1881         with aliases.
1882         (pass_local_pure_const::execute): Update.
1883
1884 2016-05-04  Marek Polacek  <polacek@redhat.com>
1885
1886         * doc/invoke.texi: Document -Wdangling-else.
1887
1888 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1889
1890         * config.gcc: Error out when conflicting multilib is detected.  Do not
1891         loop over multilibs since no combination is legal.
1892
1893 2016-05-04  Alan Modra  <amodra@gmail.com>
1894
1895         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
1896         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
1897         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1898         Align .toc.
1899
1900 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
1901
1902         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
1903         Clean up p5600 comments.
1904
1905 2016-05-04  Richard Biener  <rguenther@suse.de>
1906
1907         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
1908         constructor simplifications.
1909         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
1910
1911 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
1912
1913         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
1914         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
1915         result.set_rtx is null instead of aborting.
1916         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
1917         Always enable.
1918         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
1919         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
1920         *mov<mode>_store_postinc): New patterns.
1921
1922 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
1923
1924         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
1925         as commutative.  Check both conversions are NOP.
1926         ((A & B) OP (C & B)): Remove.
1927
1928 2016-05-04  Alan Modra  <amodra@gmail.com>
1929
1930         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
1931
1932 2016-05-04  Alan Modra  <amodra@gmail.com>
1933
1934         PR target/70866
1935         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
1936         when cr2,3,4 are all fixed regs.
1937
1938 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
1939
1940         PR rtl-optimization/57193
1941         * opts.c (default_options_table): Revert OPT_frename_registers change.
1942         * doc/invoke.texi (-frename-registers, -O2): Likewise.
1943
1944 2016-05-03  Martin Sebor  <msebor@redhat.com>
1945
1946         PR c++/66561
1947         * builtins.c (fold_builtin_FILE): New function.
1948         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
1949         (fold_builtin_0): Call them.
1950         * gimplify.c (gimplify_call_expr): Remove the handling of
1951         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
1952
1953         PR c++/66561
1954         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
1955         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
1956         constants.
1957
1958         PR c++/66639
1959         * doc/extend.texi (Function Names as Strings): Update __func__,
1960         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
1961         constants.
1962
1963 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
1964             Richard Biener  <rguenther@suse.de>
1965
1966         PR tree-optimization/70916
1967         * tree-if-conv.c: Include cfganal.h.
1968         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
1969         and remove_fake_exit_edges around the optimization pass.
1970
1971 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
1972
1973         * cgraph.c (symbol_table::create_edge): Set inline_failed.
1974         (cgraph_edge::make_direct): Likewise.
1975         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
1976         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
1977         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
1978         (CIF_THUNK): New code.
1979         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
1980         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
1981         (compute_inline_parameters): Set inline_failed for thunks.
1982         (inline_analyze_function): Cleanup.
1983         * ipa-inline.c (can_inline_edge_p): Do not deal with
1984         call_stmt_cannot_inline_p.
1985         (can_early_inline_edge_p): Likewise.
1986         (early_inliner): Initialize inline_failed.
1987         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
1988
1989 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
1990
1991         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
1992         from nonimm_ssenomem_operand.
1993         (nonimm_ssenomem_operand): New predicate.
1994         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
1995         as operand 0 predicate.
1996         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
1997         Disable unsupported alternatives using "enabled" attribute.
1998         Use register_ssemem_operand as operand 0 predicate.
1999         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
2000
2001 2016-05-03  Marek Polacek  <polacek@redhat.com>
2002
2003         PR c/70859
2004         * input.c (expansion_point_location): New function.
2005         * input.h (expansion_point_location): Declare.
2006
2007 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
2008
2009         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
2010         occurence with frame_offset_ ones.
2011
2012 2016-05-03  Alan Modra  <amodra@gmail.com>
2013
2014         PR rtl-optimization/70890
2015         * ira.c (combine_and_move_insns): When moving def_insn, remove
2016         equivs on use_insn.
2017
2018 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2019
2020         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
2021         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
2022         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
2023         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
2024
2025 2016-05-03  Alan Modra  <amodra@gmail.com>
2026
2027         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
2028         for SAVE_MULTIPLE/STORE_MULTIPLE.
2029
2030 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2031
2032         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
2033         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
2034
2035 2016-05-03  Richard Biener  <rguenther@suse.de>
2036
2037         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
2038         default true.
2039         (gimplify_arg): Likewise.
2040         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
2041         re-writing the result to a decl if required.
2042         (internal_get_tmp_var): Add allow_ssa parameter
2043         and override into_ssa with it.
2044         (get_formal_tmp_var): Adjust.
2045         (get_initialized_tmp_var): Add allow_ssa parameter.
2046         (gimplify_arg): Add allow_ssa parameter and avoid generating
2047         SSA names for the result false.
2048         (gimplify_call_expr): If the call may return twice do not
2049         gimplify parameters into SSA.
2050         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
2051         (gimplify_modify_expr): Adjust assert.  For noreturn calls
2052         with a SSA name LHS adjust its def.
2053         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
2054         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
2055         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
2056         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
2057         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
2058         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
2059         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
2060         (optimize_target_teams): Do not allow SSA names for clause operands.
2061         (gimplify_expr): Likewise for where we mark the result addressable.
2062         * passes.def (pass_init_datastructures): Remove.
2063         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
2064         (rewrite_stmt): Likewise.
2065         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
2066         (replace_locals_op): Replace SSA names.
2067         (copy_gimple_seq_and_replace_locals): Init src_cfun.
2068         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
2069         * cgraph.c (release_function_body): Free CFG annotations only
2070         when we have a CFG.  Simplify.
2071         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2072         force_gimple_operand instead of get_initialized_tmp_var.
2073         * tree-pass.h (make_pass_init_datastructures): Remove.
2074         * tree-ssa.c (execute_init_datastructures): Remove.
2075         (pass_data_init_datastructures): Likewise.
2076         (class pass_init_datastructures): Likewise.
2077         (make_pass_init_datastructures): Likewise.
2078         * omp-low.c (create_omp_child_function): Init SSA data structures.
2079         (grid_expand_target_grid_body): Likewise.
2080         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
2081         name before adding it to names_to_release.
2082         (remove_bb): Always release SSA defs.
2083         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
2084         before dereferencing it.
2085         * cgraphunit.c (init_lowered_empty_function): Always
2086         int SSA data structures.
2087         * tree-ssanames.c (release_defs): Remove assert that we are in
2088         SSA form.
2089         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
2090
2091 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2092             Uros Bizjak  <ubizjak@gmail.com>
2093
2094         PR rtl-optimization/70467
2095         * config/i386/predicates.md (x86_64_hilo_int_operand,
2096         x86_64_hilo_general_operand): New predicates.
2097         * config/i386/constraints.md (Wd): New constraint.
2098         * config/i386/i386.md (mode attr di): Use Wd instead of e.
2099         (general_hilo_operand): New mode attr.
2100         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
2101         instead of <general_operand>.
2102         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
2103         x86_64_hilo_general_operand instead of <general_operand>.
2104
2105 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2106
2107         PR tree-optimization/70916
2108         * tree-if-conv.c (constant_or_ssa_name): Removed.
2109         (fold_build_cond_expr): Use is_gimple_val instead of
2110         constant_or_ssa_name.
2111
2112         PR tree-optimization/70916
2113         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
2114         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
2115
2116         PR target/49244
2117         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
2118         (optimize_atomic_bit_test_and): New function.
2119         (pass_fold_builtins::execute): Use it.
2120         * optabs.def (atomic_bit_test_and_set_optab,
2121         atomic_bit_test_and_complement_optab,
2122         atomic_bit_test_and_reset_optab): New optabs.
2123         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
2124         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
2125         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
2126         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
2127         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
2128         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
2129         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
2130         * doc/md.texi (atomic_bit_test_and_set@var{mode},
2131         atomic_bit_test_and_complement@var{mode},
2132         atomic_bit_test_and_reset@var{mode}): Document.
2133         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
2134         atomic_bit_test_and_complement<mode>,
2135         atomic_bit_test_and_reset<mode>): New expanders.
2136         (atomic_bit_test_and_set<mode>_1,
2137         atomic_bit_test_and_complement<mode>_1,
2138         atomic_bit_test_and_reset<mode>_1): New insns.
2139
2140 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
2141
2142         PR rtl-optimization/70687
2143         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
2144         instead of unsigned HOST_WIDE_INT.
2145
2146 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
2147
2148         PR rtl-optimization/44281
2149         * hard-reg-set.h (struct target_hard_regs): New field
2150         x_fixed_nonglobal_reg_set.
2151         (fixed_nonglobal_reg_set): New macro.
2152         * reginfo.c (init_reg_sets_1): Initialize it.
2153         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
2154         of fixed_reg_set.
2155         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
2156
2157 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2158
2159         PR tree-optimization/56541
2160         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
2161         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
2162         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
2163         (any_complicated_phi): new static variable.
2164         (aggressive_if_conv): delete.
2165         (if_convertible_phi_p): support phis with more than two arguments.
2166         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
2167         critical pred edges.
2168         (ifcvt_split_critical_edges): support phis with more than two
2169         arguments by checking new parameter.  only split critical edges
2170         if needed.
2171         (tree_if_conversion): handle simd pragma marked loop using new
2172         local variable aggressive_if_conv.  check any_complicated_phi.
2173
2174 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2175
2176         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
2177         before using it.
2178
2179 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2180
2181         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
2182         cbase.
2183
2184 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2185
2186         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
2187         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
2188         define_insn_and_split.
2189         (mulsi3_i): New define_insn_and_split.
2190         (mulsi3_call): Convert to define_insn.
2191         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
2192         Remove constraints.
2193
2194 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2195
2196         * machmode.h (mode_complex): Add support to give the complex mode
2197         for a given mode.
2198         (GET_MODE_COMPLEX_MODE): Likewise.
2199         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2200         stored by build_complex_type and gfc_build_complex_type instead of
2201         trying to figure out the appropriate mode based on the size. Raise
2202         an assertion error, if the type was not set.
2203         * genmodes.c (struct mode_data): Add field for the complex type of
2204         the given type.
2205         (blank_mode): Likewise.
2206         (make_complex_modes): Remember the complex mode created in the
2207         base type.
2208         (emit_mode_complex): Write out the mode_complex array to map a
2209         type mode to the complex version.
2210         (emit_insn_modes_c): Likewise.
2211         * tree.c (build_complex_type): Set the complex type to use before
2212         calling layout_type.
2213         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2214         support for __float128 complex datatypes.
2215         (rs6000_hard_regno_mode_ok): Likewise.
2216         (rs6000_setup_reg_addr_masks): Likewise.
2217         (rs6000_complex_function_value): Likewise.
2218         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2219         __float128 and __ibm128 complex.
2220         (FLOAT128_IBM_P): Likewise.
2221         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2222         * doc/extend.texi (Additional Floating Types): Document that
2223         -mfloat128 must be used to enable __float128.  Document complex
2224         __float128 and __ibm128 support.
2225
2226 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2227
2228         PR target/49244
2229         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
2230         char/short arguments promoted to int because of promote_prototypes.
2231
2232 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2233
2234         * config/i386/predicates.md (register_ssemem_operand): New predicate.
2235         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
2236         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
2237         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
2238         alternatives using "enabled" attribute.  Use register_ssemem_operand
2239         as operand 1 predicate.
2240         (*cmpi<unord>xf_i387): Split XFmode pattern from
2241         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
2242         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
2243         *absneg<mode>2_i387.  Disable unsupported alternatives using
2244         "enabled" attribute.
2245         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
2246
2247 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2248
2249         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
2250         marker.
2251         (oacc_loop_process): Check mask for loop termination.
2252
2253 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2254
2255         * cif-code.def (CIF_THUNK): Add.
2256         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
2257         accidental change.
2258
2259 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2260
2261         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2262         (dump_inline_summary): Dump it.
2263         (fp_expression_p): New predicate.
2264         (estimate_function_body_sizes): Use it.
2265         (inline_merge_summary): Merge fp_expressions.
2266         (inline_read_section): Read fp_expressions.
2267         (inline_write_summary): Write fp_expressions.
2268         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2269         codegen boundary if either caller or callee is !fp_expressions.
2270         * ipa-inline.h (inline_summary): Add fp_expressions.
2271         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2272         to fp_expressions be sure the fp generation flags are updated.
2273
2274 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2275
2276         PR rtl-optimization/70467
2277         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2278
2279         PR rtl-optimization/70467
2280         * ipa-pure-const.c (check_call): Handle internal calls even in
2281         ipa mode like in local mode.
2282
2283 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2284
2285         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2286
2287 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2288
2289         * match.pd (X u< X, X u> X): New transformations.
2290
2291 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2292
2293         * flag-types.h (enum warn_strict_overflow_code): Move ...
2294         * coretypes.h: ... here.
2295         * fold-const.h (fold_overflow_warning): Declare.
2296         * fold-const.c (fold_overflow_warning): Make non-static.
2297         (fold_comparison): Move the transformation of X +- C1 CMP C2
2298         into X CMP C2 -+ C1 ...
2299         * match.pd: ... here.
2300         * gimple-fold.c (fold_stmt_1): Protect with
2301         fold_defer_overflow_warnings.
2302
2303 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2304
2305         * omp-low.c (struct oacc_loop): Add 'inner' field.
2306         (new_oacc_loop_raw): Initialize it to zero.
2307         (oacc_loop_fixed_partitions): Initialize it.
2308         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2309         available partitioning.
2310
2311 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2312
2313         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2314         register_operand.
2315         (umulsidi3): Likewise.
2316         (indirect_jump): Fix jump instruction assembly patterns.
2317
2318 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2319
2320         PR target/70860
2321         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2322         (nvptx_function_value): Assert non-NULL cfun.
2323
2324 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2325
2326         PR rtl-optimization/70886
2327         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2328
2329         * cselib.h (rtx_equal_for_cselib_1): Declare.
2330         (rtx_equal_for_cselib_p: New inline function.
2331         * cselib.c (rtx_equal_for_cselib_p): Delete.
2332         (rtx_equal_for_cselib_1): Make public.
2333
2334 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2335
2336         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2337         (register_mixssei387nonimm_operand): Remove predicate.
2338         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2339         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2340         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2341         for TARGET_MIX_SSE_I387 alternatives.
2342         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2343         Disable unsupported alternatives using "enabled" attribute.  Use
2344         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2345         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2346
2347 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2348
2349         * tree.c (cst_and_fits_in_hwi): Simplify.
2350
2351 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2352
2353         * tree.h (wi::to_wide): New function.
2354         * expr.c (expand_expr_real_1): Use wi::to_wide.
2355         * fold-const.c (int_const_binop_1): Likewise.
2356         (extract_muldiv_1): Likewise.
2357
2358 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2359
2360         * wide-int.h: Update offset_int and widest_int documentation.
2361         (WI_SIGNED_SHIFT_RESULT): New macro.
2362         (wi::binary_shift): Define signed_shift_result_type for
2363         shifts on offset_int- and widest_int-like types.
2364         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2365         * tree.h (int_bit_position): Use shift operators instead of wi::
2366          shifts.
2367         * alias.c (adjust_offset_for_component_ref): Likewise.
2368         * expr.c (get_inner_reference): Likewise.
2369         * fold-const.c (fold_comparison): Likewise.
2370         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2371         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2372         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2373         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2374         (stmt_kills_ref_p): Likewise.
2375         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2376         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2377         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2378         (ao_ref_init_from_vn_reference): Likewise.
2379
2380 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2381
2382         * wide-int.h: Update offset_int and widest_int documentation.
2383         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2384         (wi::binary_traits): Allow ordered comparisons between offset_int and
2385         offset_int, between widest_int and widest_int, and between either
2386         of these types and basic C types.
2387         (operator <, <=, >, >=): Define for the same combinations.
2388         * tree.h (tree_int_cst_lt): Use comparison operators instead
2389         of wi:: comparisons.
2390         (tree_int_cst_le): Likewise.
2391         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2392         (fold_nonarray_ctor_reference): Likewise.
2393         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2394         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2395         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2396         * tree-sra.c (completely_scalarize): Likewise.
2397         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2398         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2399         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2400         (check_for_binary_op_overflow): Likewise.
2401         (search_for_addr_array): Likewise.
2402         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2403
2404 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2405
2406         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2407         (arc_save_restore): Likewise.
2408         (arc_dwarf_register_span): Likewise.
2409         (arc_output_pic_addr_const): Initialize suffix variable.
2410
2411 2016-05-02  Martin Liska  <mliska@suse.cz>
2412
2413         * symbol-summary.h (function_summary::function_summary):
2414         Remove checking assert for all cgraph nodes.
2415         (function_summary::get): Check summary_uid.
2416         (symtab_insertion): Check summary_uid.
2417
2418 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2419
2420         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2421         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2422         bmaskn instruction.
2423         (arc_dwarf_register_span): Remove enum keyword.
2424         (compact_memory_operand_p): New function.
2425         * config/arc/arc.h (reg_class): Add code density register classes.
2426         (REG_CLASS_NAMES): Likewise.
2427         (REG_CLASS_CONTENTS): Likewise.
2428         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2429         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2430         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2431         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2432         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2433         constraints.
2434         (h, Rcd, Rsd, Rzd): New register constraints.
2435         (T): Use compact_memory_operand_p function.
2436         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2437
2438 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2439
2440         * config/sh/sh.md (*negnegt, *movtt): Remove.
2441
2442 2016-05-02  Marek Polacek  <polacek@redhat.com>
2443             Tom de Vries  <tom@codesourcery.com>
2444
2445         PR tree-optimization/70700
2446         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2447         bigger than FIRST_REF_NODE.
2448
2449 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2450
2451         PR target/52898
2452         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2453         TARGET_CMPEQDI_T.
2454         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2455         function is used when pseudos can be created.
2456         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2457         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2458         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2459         define_expand.  Allow it only when pseudos can be created.
2460         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2461
2462 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2463
2464         * config/i386/constraints.md (BC): Only allow -1 operands.
2465         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2466         Add "enabled" attribute.  Update XI mode attribute calculation.
2467         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2468         (*movoi_internal_avx): Update XI mode attribute calculation.
2469         (*movti_internal): Ditto.
2470
2471 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2472
2473         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2474         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2475
2476 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2477
2478         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2479         statement on instruction code.  Remove trailing spaces.
2480         (altivec_expand_stv_builtin): Likewise.
2481
2482 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2483
2484         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2485         (TARGET_FPU_DOUBLE): Simplify.
2486         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2487         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2488         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2489         with 'TARGET_FPU_DOUBLE'.
2490         * config/sh/sh.md: Likewise.
2491
2492 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2493
2494         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2495         SH_DIV_STR_FOR_SIZE): Remove.
2496         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2497         SH_DIV_STR_FOR_SIZE): Remove.
2498
2499 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2500
2501         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2502         logical_reg_operand): Delete.
2503         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2504         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2505         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2506         match_operand and match_test.
2507         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2508         variables on their first use.  Return bool values.
2509         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2510         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2511         arith_reg_operand for input operand.  Remove empty constraints.
2512         (xorsi3): Delete.
2513         (*xorsi3_compact): Rename to xorsi3.
2514         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2515         (*zero_extend<mode>si2_disp_mem): Update comment.
2516         (mov_nop): Delete.
2517
2518 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2519
2520         * config/sh/t-sh: Remove SH5 support.
2521         * config.gcc: Likewise.
2522         * configure: Likewise.
2523
2524 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2525
2526         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2527
2528 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2529
2530         * config/sh/sh.c (register_sh_passes, sh_option_override,
2531         sh_print_operand, prepare_move_operands,
2532         sh_can_follow_jump): Remove TARGET_SH1 checks.
2533         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2534         PROMOTE_MODE): Likewise.
2535         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2536         movdi): Likewise.
2537
2538 2016-04-30  Alan Modra  <amodra@gmail.com>
2539
2540         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2541         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2542         Check for user regs later to avoid unnecessary looping over regs.
2543         Merge user reg check with non-saved reg check.  Don't force
2544         inline VR restore when static chain used.
2545         (rs6000_frame_related): Omit eh_frame info for user regs when
2546         saving.
2547         (fixed_regs_p): Delete.
2548
2549 2016-04-30  Alan Modra  <amodra@gmail.com>
2550
2551         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2552         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2553         Update all uses.
2554
2555 2016-04-30  Alan Modra  <amodra@gmail.com>
2556
2557         PR target/69645
2558         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2559         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2560         Update all uses.
2561
2562 2016-04-30  Alan Modra  <amodra@gmail.com>
2563
2564         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2565         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2566         flag_pic test for Darwin.
2567
2568 2016-04-30  Alan Modra  <amodra@gmail.com>
2569
2570         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2571         throw_calls_crossed.
2572         (REG_FREQ_CALLS_CROSSED): Delete.
2573         (REG_N_THROWING_CALLS_CROSSED): Delete.
2574         * regstat.c (regstat_bb_compute_ri): Don't calculate
2575         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2576         (dump_reg_info): Don't print call cross frequency.
2577         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2578         and REG_N_THROWING_CALLS_CROSSED.
2579
2580 2016-04-30  Alan Modra  <amodra@gmail.com>
2581
2582         * regs.h (struct reg_info_t): Delete live_length.
2583         (REG_LIVE_LENGTH): Delete macro.
2584         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2585         local_live, local_processed and local_live_last_luid params.
2586         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2587         Formatting fixes.
2588         (regstat_compute_ri): Adjust for above.  Don't set
2589         REG_LIVE_LENGTH.
2590         (dump_reg_info): Don't print live length.
2591         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2592         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2593         Localize loop_depth var.
2594
2595 2016-04-30  Alan Modra  <amodra@gmail.com>
2596
2597         * ira.c (enum valid_equiv): New.
2598         (validate_equiv_mem): Return enum.
2599         (update_equiv_mem): Create replacement in more cases.
2600         (add_store_equivs): Update validate_equiv_mem call.
2601
2602 2016-04-30  Alan Modra  <amodra@gmail.com>
2603
2604         * ira.c (combine_and_move_insns): Rather than scanning insns,
2605         use DF infrastucture to find use and def insns.
2606
2607 2016-04-30  Alan Modra  <amodra@gmail.com>
2608
2609         ira.c (combine_and_move_insns): Move invariant conditions..
2610         (ira.c): ..to here.  Call combine_and_move_insns before
2611         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2612         req_equiv later using max_reg_num() rather than global max_regno.
2613         (contains_replace_regs): Delete.
2614         (add_store_equivs): Remove contains_replace_regs test.
2615
2616 2016-04-30  Alan Modra  <amodra@gmail.com>
2617
2618         * ira.c (struct equiv_mem_data): New.
2619         (equiv_mem, equiv_mem_modified): Delete static vars.
2620         (validate_equiv_mem_from_store): Use "data" param to communicate..
2621         (validate_equiv_mem): ..from here.
2622
2623 2016-04-30  Alan Modra  <amodra@gmail.com>
2624
2625         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2626         split out from..
2627         (update_reg_equivs): ..here.  Move allocation and freeing of
2628         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2629         end_alias_analysis to..
2630         (ira): ..here.
2631
2632 2016-04-30  Alan Modra  <amodra@gmail.com>
2633
2634         * ira.c (pdx_subregs): Delete.
2635         (struct equivalence): Add pdx_subregs field.
2636         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2637         pdx_subregs access.
2638         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2639         pdx_subregs access.
2640
2641 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2642
2643         * config/rs6000/altivec.h: Change definitions of vec_xl and
2644         vec_xst.
2645         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2646         (LD_ELEMREV_V2DI): New.
2647         (LD_ELEMREV_V4SF): New.
2648         (LD_ELEMREV_V4SI): New.
2649         (LD_ELEMREV_V8HI): New.
2650         (LD_ELEMREV_V16QI): New.
2651         (ST_ELEMREV_V2DF): New.
2652         (ST_ELEMREV_V2DI): New.
2653         (ST_ELEMREV_V4SF): New.
2654         (ST_ELEMREV_V4SI): New.
2655         (ST_ELEMREV_V8HI): New.
2656         (ST_ELEMREV_V16QI): New.
2657         (XL): New.
2658         (XST): New.
2659         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2660         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2661         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2662         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2663         (altivec_expand_builtin): Add handling for
2664         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2665         (rs6000_invalid_builtin): Add error-checking for
2666         RS6000_BTM_P9_VECTOR.
2667         (altivec_init_builtins): Define builtins used to implement vec_xl
2668         and vec_xst.
2669         (rs6000_builtin_mask_names): Define power9-vector.
2670         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2671         (RS6000_BTM_P9_VECTOR): Define.
2672         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2673         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2674         (vsx_ld_elemrev_v2df): Likewise.
2675         (vsx_ld_elemrev_v4sf): Likewise.
2676         (vsx_ld_elemrev_v4si): Likewise.
2677         (vsx_ld_elemrev_v8hi): Likewise.
2678         (vsx_ld_elemrev_v16qi): Likewise.
2679         (vsx_st_elemrev_v2df): Likewise.
2680         (vsx_st_elemrev_v2di): Likewise.
2681         (vsx_st_elemrev_v4sf): Likewise.
2682         (vsx_st_elemrev_v4si): Likewise.
2683         (vsx_st_elemrev_v8hi): Likewise.
2684         (vsx_st_elemrev_v16qi): Likewise.
2685         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2686         grammar.
2687
2688 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2689
2690         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2691         out into ...
2692         (simplify_control_stmt_condition_1): ... here.  Recurse into
2693         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2694
2695 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2696
2697         PR target/69810
2698         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2699         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2700         define_insn_and_split to define_insn.
2701         (zero_extendqi<mode>2_dot2): Same.
2702         (extendqi<mode>2_dot): Same.
2703         (extendqi<mode>2_dot2): Same.
2704
2705 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2706
2707         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2708         (probe_stack): New expander.
2709         (probe_stack_<mode>): New insn pattern.
2710
2711 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2712
2713         * config/i386/i386.md
2714         (operations with memory inputs setting flags peephole2):
2715         Remove uneeded REG_P checks.  Cleanup pattern generation.
2716
2717 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2718
2719         * tree-vect-loop.c (vect_transform_loop): Fix
2720         nb_iterations_upper_bound computation for vectorized loop.
2721
2722 2016-04-29  Marek Polacek  <polacek@redhat.com>
2723             Jakub Jelinek  <jakub@redhat.com>
2724
2725         PR sanitizer/70342
2726         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2727         TARGET_EXPR_SLOT as a base.
2728
2729 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2730
2731         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2732         with 'rCm2' constraints to limit possible immediate size.
2733         (*load_zeroextendqisi_update): Likewise.
2734         (*load_signextendqisi_update): Likewise.
2735         (*loadhi_update): Likewise.
2736         (*load_zeroextendhisi_update): Likewise.
2737         (*load_signextendhisi_update): Likewise.
2738         (*loadsi_update): Likewise.
2739         (*loadsf_update): Likewise.
2740
2741 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2742
2743         * config/i386/predicates.md (constm1_operand): Fix comparison.
2744
2745 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2746
2747         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2748
2749 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2750
2751         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2752         remaining SH5 related settings.
2753         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2754         shmedia_prepare_call_address): Delete.
2755         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2756         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2757         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2758         UNSUPPORTED_SH2A): Remove m5 checks.
2759         (sh_divide_strategy_e): Remove SH5 division strategies.
2760         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2761         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2762
2763 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2764
2765         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2766
2767 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2768
2769         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2770         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2771         Change lder to ldr.
2772         * config/s390/vector.md ("mov<mode>"): Likewise.
2773
2774 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2775
2776         * config/s390/constraints.md ("U", "W"): Invoke
2777         s390_mem_constraint with "ZR" and "ZT".
2778         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2779         addresses when using LRA.  Accept also short displacements for S
2780         and T constraints.  Do not check for long displacement target for
2781         S and T constraints.
2782         (s390_mem_constraint): Remove handling of U and W constraints.
2783         * config/s390/s390.md (various patterns): Remove the short
2784         displacement constraints (Q and R) if a long displacement
2785         constraint is present.  Add longdisp as required CPU capability.
2786         * config/s390/vector.md: Likewise.
2787         * config/s390/vx-builtins.md: Likewise.
2788
2789 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2790
2791         PR target/60040
2792         * reload1.c (reload): Call finish_spills before
2793         restarting reload loop. Skip select_reload_regs
2794         if update_eliminables_and_spill returns true.
2795
2796 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2797
2798         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2799         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2800         (umulhisi3_imm): Update predicates and constraint letters.
2801         (umulhisi3_reg): Declare instruction as commutative.
2802         * config/arc/constraints.md (J12, J16): New constraints.
2803         * config/arc/predicates.md (short_unsigned_const_operand): New
2804         predicate.
2805         (arc_short_operand): Likewise.
2806         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2807
2808 2016-04-29  Richard Biener  <rguenther@suse.de>
2809
2810         PR tree-optimization/13962
2811         PR tree-optimization/65686
2812         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
2813         * tree-ssa-alias.c (ptrs_compare_unequal): New function
2814         using PTA to compare pointers.
2815         * match.pd: Add pattern for pointer equality compare simplification
2816         using ptrs_compare_unequal.
2817
2818 2016-04-29  Richard Biener  <rguenther@suse.de>
2819
2820         * stor-layout.c (layout_type): Do not build a pointer-to-element
2821         type for arrays.
2822
2823 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2824
2825         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
2826         Use SWI mode iterator.  Use general_reg_operand predicate.
2827         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
2828         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
2829         predicates.
2830
2831 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
2832
2833         PR middle-end/70843
2834         * fold-const.c (operand_equal_p): Don't verify hash value equality
2835         if arg0 == arg1.
2836         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
2837         and OMP_CLAUSE.
2838
2839 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2840
2841         PR target/70858
2842         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
2843         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
2844         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
2845         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
2846         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
2847
2848 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2849
2850         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
2851         to info.  Don't initialize separate fields to 0.  Clean up
2852         formatting a bit.
2853
2854 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2855
2856         * config/i386/i386.md (peephole2s for operations with memory inputs):
2857         Use SWI mode iterator.
2858         (peephole2s for operations with memory outputs): Ditto.
2859         Do not check for stack checking probe.
2860
2861         (probe_stack): Remove expander.
2862
2863 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2864             Andrew Burgess  <andrew.burgess@embecosm.com>
2865
2866         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
2867         operands as 32-bits.
2868
2869 2016-04-28  Jason Merrill  <jason@redhat.com>
2870
2871         * gdbinit.in: Skip line-map.h.
2872
2873 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2874             Andrew Burgess  <andrew.burgess@embecosm.com>
2875
2876         * config/arc/arc.c (arc_conditional_register_usage): Take
2877         TARGET_RRQ_CLASS into account.
2878         (arc_print_operand): Support printing 'p' and 's' operands.
2879         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
2880         as 0.
2881         (TARGET_RRQ_CLASS): Define.
2882         (IS_POWEROF2_OR_0_P): Define.
2883         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
2884         alternatives.
2885         (*tst_movb): New define_insn.
2886         (*tst): Avoid recognition if it could prevent '*tst_movb'
2887         combination; replace c/CnL with c/Chs alternative.
2888         (*tst_bitfield_tst): New define_insn.
2889         (*tst_bitfield_asr): New define_insn.
2890         (*tst_bitfield): New define_insn.
2891         (andsi3_i): Add Rrq variant.
2892         (extzv): New define_expand.
2893         (insv): New define_expand.
2894         (*insv_i): New define_insn.
2895         (*movb): New define_insn.
2896         (*movb_signed): New define_insn.
2897         (*movb_high): New define_insn.
2898         (*movb_high_signed): New define_insn.
2899         (*movb_high_signed + 1): New define_split pattern.
2900         (*mrgb): New define_insn.
2901         (*mrgb + 1): New define_peephole2 pattern.
2902         (*mrgb + 2): New define_peephole2 pattern.
2903         * config/arc/arc.opt (mbitops): New option for nps400, uses
2904         TARGET_NPS_BITOPS_DEFAULT.
2905         * config/arc/constraints.md (q): Make register class conditional.
2906         (Rrq): New register constraint.
2907         (Chs): New constraint.
2908         (Clo): New constraint.
2909         (Chi): New constraint.
2910         (Cbf): New constraint.
2911         (Cbn): New constraint.
2912         (C18): New constraint.
2913         (Cbi): New constraint.
2914
2915 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2916
2917         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
2918         dst->popcount.
2919         (bitmap_intersection_of_preds): Ditto.
2920         (bitmap_union_of_succs): Ditto.
2921         (bitmap_union_of_preds): Ditto.
2922         * sbitmap.c (do_popcount): Delete.
2923         (BITMAP_DEBUGGING): Delete.
2924         (sbitmap_verify_popcount): Delete.
2925         (sbitmap_alloc): Don't initialize the popcount field.
2926         (sbitmap_alloc_with_popcount): Delete.
2927         (sbitmap_resize): Don't resize the popcount array.
2928         (sbitmap_vector_alloc): Don't initialize the popcount field.
2929         (bitmap_copy): Don't copy the popcount array.
2930         (bitmap_clear): Don't clear the popcount array.
2931         (bitmap_clear): Delete the popcount array handling.
2932         (bitmap_ior_and_compl): Delete the popcount assert.
2933         (bitmap_not): Ditto.
2934         (bitmap_and_compl): Ditto.
2935         (bitmap_and): Delete the popcount array handling.
2936         (bitmap_xor): Ditto.
2937         (bitmap_ior): Ditto.
2938         (bitmap_or_and): Delete the popcount assert.
2939         (bitmap_and_or): Ditto.
2940         (popcount_table): Delete.
2941         (sbitmap_elt_popcount): Delete.
2942         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
2943         (bitmap_set_bit): Delete the popcount assert.
2944         (bitmap_clear_bit): Ditto.
2945         (sbitmap_free): Don't free the popcount array.
2946         (sbitmap_alloc_with_popcount): Delete declaration.
2947         (sbitmap_popcount): Ditto.
2948
2949 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2950             Andrew Burgess  <andrew.burgess@embecosm.com>
2951
2952         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
2953         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
2954         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
2955         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
2956         * config/arc/arc.opt (mcmem): New option.
2957         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
2958         supply length for r/m alternative.
2959         (*extendqisi2_ac): Likewise.
2960         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
2961         r/Uex alternative.
2962         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
2963         (movhi_insn): Likewise.
2964         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
2965         (*zero_extendqihi2_i): Add r/Ucm alternative.
2966         (*zero_extendqisi2_ac): Likewise.
2967         (*zero_extendhisi2_i): Likewise.
2968         * config/arc/constraints.md (Uex): New memory constraint.
2969         (Ucm): New define_constraint.
2970         * config/arc/predicates.md (long_immediate_loadstore_operand):
2971         Return 0 for MEM with cmem_address address.
2972         (cmem_address_0): New predicates.
2973         (cmem_address_1): Likewise.
2974         (cmem_address_2): Likewise.
2975         (cmem_address): Likewise.
2976
2977 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2978
2979         * config/rs6000/rs6000.c (machine_function): Rename
2980         insn_chain_scanned_p to spe_insn_chain_scanned_p.
2981         (rs6000_stack_info): Adjust.
2982
2983 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2984             Andrew Burgess  <andrew.burgess@embecosm.com>
2985
2986         * config/arc/constraints.md (Usd): Convert to define_constraint.
2987         (Us<): Likewise.
2988         (Us>): Likewise.
2989
2990 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2991
2992         PR target/70821
2993         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
2994         Add new peephole2 where the first insn is *mov<mode>_or instead of
2995         *mov<mode>_internal.
2996
2997 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
2998
2999         * tracer.c (bb_seen): Make static.
3000
3001 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
3002
3003         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
3004         support, setup defaults.
3005         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
3006         * config/arc/arc.c (arc_init): Add NPS400 support.
3007         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
3008         (TARGET_ARC700): NPS400 is also an ARC700.
3009         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
3010
3011 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3012
3013         PR target/70668
3014         * config/nds32/nds32.md (casesi): Don't access the operands array
3015         out of bounds.
3016
3017 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3018
3019         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
3020         (or $-1,reg peephole2): Ditto.
3021         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
3022
3023 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3024
3025         * doc/extend.texi (Common Function Attributes) [optimize]:
3026         Discourage use of the optimize attribute.
3027
3028 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
3029
3030         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
3031         special case builtin.
3032         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3033         ALTIVEC_BUILTIN_VEC_ADDE.
3034         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3035         support for ALTIVEC_BUILTIN_VEC_ADDE.
3036         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3037         for __builtin_vec_adde.
3038
3039 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3040
3041         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
3042         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
3043
3044 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3045
3046         PR testsuite/70595
3047         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3048         attributes): Document cilkplus_runtime.
3049
3050 2016-04-28  Martin Jambor  <mjambor@suse.cz>
3051
3052         * tree-cfg.c (verify_expr): Verify that local declarations belong to
3053         this function.  Call verify_expr on MEM_REFs and bases of other
3054         handled_components.
3055
3056 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3057
3058         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
3059         for WORD_REGISTER_OPERATIONS to runtime check.
3060
3061 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3062
3063         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
3064
3065 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3066
3067         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
3068         big-endian compilation.
3069         * config/arc/arc.md (addf3): Likewise.
3070         (subdf3): Likewise.
3071         (muldf3): Likewise.
3072
3073 2016-04-28  Richard Biener  <rguenther@suse.de>
3074
3075         PR tree-optimization/70840
3076         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
3077         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
3078         Mark x * pow(x,c) -> pow(x,c+1) commutative.
3079         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
3080
3081 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3082
3083         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
3084         and explain why in a comment.
3085
3086 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3087
3088         * config/arc/arc.md (cpu_facility): Add fpx variant.
3089         (subdf3): Prohibit use reverse sub when assist operations option
3090         is enabled.
3091         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
3092         instructions only when FPX is enabled.
3093         * testsuite/gcc.target/arc/trsub.c: New test.
3094
3095 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3096
3097         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
3098         mult_operator when calculating "type" attribute.
3099         (*fop_<mode>_1_i387): Ditto.
3100         (*fop_xf_1_i387): Ditto.
3101         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
3102         Use std::swap to swap operands.  Use RTL expressions to generate
3103         converted pattern.
3104
3105 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3106             Joern Rennecke  <joern.rennecke@embecosm.com>
3107
3108         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
3109         declaration.
3110         (emit_pic_move): Remove.
3111         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
3112         * config/arc/arc.c (emit_pic_move): Removed.
3113         (TARGET_HAVE_TLS): Define.
3114         (arc_conditional_register_usage): Test for arc_tp_regno.
3115         (arc_print_operand, arc_print_operand_address): Handle TLS
3116         unspecs.
3117         (arc_needs_pcl_p): New function.
3118         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
3119         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
3120         (arc_raw_symbolic_reference_mentioned_p): Likewise.
3121         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
3122         (arc_legitimize_tls_address): Likewise.
3123         (DTPOFF_ZERO_SYM): Define.
3124         (arc_legitimize_pic_address): Make it static, handle TLS cases.
3125         (arc_output_pic_addr_const): Print TLS unspecs.
3126         (prepare_pic_move): New function, replaces emit_pic_move.
3127         (arc_legitimate_constant_p): Handle TLS unspecs.
3128         (arc_legitimate_address_p): Likewise.
3129         (arc_rewrite_small_data_p): Use assert for TLS constants.
3130         (prepare_move_operands): Use prepare_pic_move.
3131         (arc_legitimize_address): Legitimize tls addresses.
3132         (arc_epilogue_uses): Check for arc_tp_regno.
3133         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
3134         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
3135         Define.
3136         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
3137         Likewise.
3138         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
3139         %(arc_tls_extra_start_spec).
3140         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
3141         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
3142         (EH_USES): Define.
3143         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
3144         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
3145         (UNSPEC_TLS_OFF): Add.
3146         (R10_REG): Define.
3147         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
3148         (get_thread_pointersi): New patterns.
3149         * config/arc/arc.opt (mtp-regno): New option.
3150         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
3151         (move_dest_operand): Likewise.
3152         * configure: Regenerate.
3153         * configure.ac: Add arc*-*-* case to test for tls.
3154         * doc/invoke.texi (ARC options): Document mtp-regno.
3155
3156 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3157
3158         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
3159         the new ARC HS SIMD instructions.
3160         (arc_preferred_simd_mode): New function.
3161         (arc_autovectorize_vector_sizes): Likewise.
3162         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
3163         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3164         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
3165         (arc_init_builtins): Add new SIMD builtin types.
3166         (arc_split_move): Handle 64 bit vector moves.
3167         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
3168         (TARGET_PLUS_QMACW): Define.
3169         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
3170         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
3171         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
3172         (VSUBADD4H): New builtins.
3173         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
3174         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
3175
3176 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
3177             Matthias Klose  <doko@debian.org>
3178
3179         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
3180
3181 2016-04-28  Richard Biener  <rguenther@suse.de>
3182
3183         PR middle-end/70777
3184         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
3185         canonicalization.
3186
3187 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
3188
3189         * common/config/sh/sh-common.c: Remove SH5 support.
3190         * config/sh/constraints.md: Likewise.
3191         * config/sh/config/sh/elf.h: Likewise.
3192         * config/sh/linux.h: Likewise.
3193         * config/sh/netbsd-elf.h: Likewise.
3194         * config/sh/predicates.md: Likewise.
3195         * config/sh/sh-c.c: Likewise.
3196         * config/sh/sh-protos.h: Likewise.
3197         * config/sh/sh.c: Likewise.
3198         * config/sh/sh.h: Likewise.
3199         * config/sh/sh.md: Likewise.
3200         * config/sh/sh.opt: Likewise.
3201         * config/sh/sync.md: Likewise.
3202         * config/sh/sh64.h: Delete.
3203         * config/sh/shmedia.h: Likewise.
3204         * config/sh/shmedia.md: Likewise.
3205         * config/sh/sshmedia.h: Likewise.
3206         * config/sh/t-netbsd-sh5-64: Likewise.
3207         * config/sh/t-sh64: Likewise.
3208         * config/sh/ushmedia.h: Likewise.
3209
3210 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3211
3212         * config/i386/i386.md (sign_extend to memory peephole2s): Use
3213         general_reg_operand instead of register_operand predicate.
3214
3215 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3216
3217         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
3218
3219 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
3220
3221         * match.pd (A - B > A, A + B < A): New transformations.
3222
3223 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
3224
3225         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
3226         which defaults to true.  Emit an outer pair of parentheses only if
3227         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
3228         don't emit parentheses for the right-hand operand.
3229
3230 2016-04-27  Jeff Law  <law@redhat.com>
3231
3232         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
3233
3234 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3235
3236         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
3237         (altivec_lvx_<mode>_internal): Document.
3238         (altivec_lvx_<mode>_2op): New define_insn.
3239         (altivec_lvx_<mode>_1op): Likewise.
3240         (altivec_lvx_<mode>_2op_si): Likewise.
3241         (altivec_lvx_<mode>_1op_si): Likewise.
3242         (altivec_stvx_<mode>): Remove.
3243         (altivec_stvx_<mode>_internal): Document.
3244         (altivec_stvx_<mode>_2op): New define_insn.
3245         (altivec_stvx_<mode>_1op): Likewise.
3246         (altivec_stvx_<mode>_2op_si): Likewise.
3247         (altivec_stvx_<mode>_1op_si): Likewise.
3248         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3249         Expand vec_ld and vec_st during parsing.
3250         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
3251         changes.
3252         (altivec_expand_stvx_be): Likewise.
3253         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
3254         address-masking behavior in RTL.
3255         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
3256         address-masking behavior in RTL.
3257         (altivec_expand_builtin): Change builtin code arguments for calls
3258         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3259         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3260         presence of lvx/stvx patterns.
3261         (alignment_with_canonical_addr): New function.
3262         (alignment_mask): Likewise.
3263         (find_alignment_op): Likewise.
3264         (recombine_lvx_pattern): Likewise.
3265         (recombine_stvx_pattern): Likewise.
3266         (recombine_lvx_stvx_patterns): Likewise.
3267         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3268         stvx patterns from expand.
3269         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3270         expansions.
3271         (vector_altivec_store_<mode>): Likewise.
3272
3273 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3274
3275         * config/aarch64/aarch64.md
3276         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3277         remove the "fp" attributes.
3278         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3279         add the "simd" attributes.
3280         (*movdf_aarch64): Likewise.
3281         (*movtf_aarch64): Remove the "fp" attributes.
3282         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3283         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3284
3285 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3286
3287         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3288         rtx to rtx_code_label *.
3289         * rtl.h (maybe_set_first_label_num): Likewise.
3290
3291 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3292
3293         * df-core.c (df_add_problem): Make the problem param be const.
3294         (df_remove_problem): Make local "problem" be const.
3295         * df-problems.c (problem_RD): Make const.
3296         (problem_LR): Likewise.
3297         (problem_LIVE): Likewise.
3298         (problem_MIR): Likewise.
3299         (problem_CHAIN): Likewise.
3300         (problem_WORD_LR): Likewise.
3301         (problem_NOTE): Likewise.
3302         (problem_MD): Likewise.
3303         * df-scan.c (problem_SCAN): Likewise.
3304         * df.h (struct df_problem): Make field "dependent_problem" be
3305         const.
3306         (struct dataflow): Likewise for field "problem".
3307         (df_add_problem): Make param const.
3308
3309 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3310
3311         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3312         inter-unit moves to/from vector registers are enabled.  Do not disable
3313         for TARGET_MMX.
3314
3315 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3316
3317         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3318         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3319         #define to...
3320         (enum df_problem_id): ...this new enum.
3321         (struct df_problem): Convert field "id" from "int" to
3322         enum df_problem_id.
3323
3324 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3325
3326         * rtl.def: Update comment for "things in the instruction chain" to
3327         reflect the removal of the leading "i" field for INSN_UID in
3328         r210360.  Fix bogus apostrophe.
3329
3330 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3331
3332         * config/i386/i386.md
3333         (lea arith with mem operand + setcc peephole2): Set operator mode.
3334
3335 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3336
3337         PR target/70155
3338         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3339         (dimode_scalar_to_vector_candidate_p): This.
3340         (timode_scalar_to_vector_candidate_p): New function.
3341         (scalar_to_vector_candidate_p): Likewise.
3342         (timode_check_non_convertible_regs): Likewise.
3343         (timode_remove_non_convertible_regs): Likewise.
3344         (remove_non_convertible_regs): Likewise.
3345         (remove_non_convertible_regs): Renamed to ...
3346         (dimode_remove_non_convertible_regs): This.
3347         (scalar_chain::~scalar_chain): Make it virtual.
3348         (scalar_chain::compute_convert_gain): Make it pure virtual.
3349         (scalar_chain::mark_dual_mode_def): Likewise.
3350         (scalar_chain::convert_insn): Likewise.
3351         (scalar_chain::convert_registers): Likewise.
3352         (scalar_chain::add_to_queue): Make it protected.
3353         (scalar_chain::emit_conversion_insns): Likewise.
3354         (scalar_chain::replace_with_subreg): Likewise.
3355         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3356         (scalar_chain::convert_op): Likewise.
3357         (scalar_chain::convert_reg): Likewise.
3358         (scalar_chain::make_vector_copies): Likewise.
3359         (scalar_chain::convert_registers): New pure virtual function.
3360         (class dimode_scalar_chain): New class.
3361         (class timode_scalar_chain): Likewise.
3362         (scalar_chain::mark_dual_mode_def): Renamed to ...
3363         (dimode_scalar_chain::mark_dual_mode_def): This.
3364         (timode_scalar_chain::mark_dual_mode_def): New function.
3365         (timode_scalar_chain::convert_insn): Likewise.
3366         (dimode_scalar_chain::convert_registers): Likewise.
3367         (scalar_chain::compute_convert_gain): Renamed to ...
3368         (dimode_scalar_chain::compute_convert_gain): This.
3369         (scalar_chain::replace_with_subreg): Renamed to ...
3370         (dimode_scalar_chain::replace_with_subreg): This.
3371         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3372         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3373         (scalar_chain::make_vector_copies): Renamed to ...
3374         (dimode_scalar_chain::make_vector_copies): This.
3375         (scalar_chain::convert_reg): Renamed to ...
3376         (dimode_scalar_chain::convert_reg ): This.
3377         (scalar_chain::convert_op): Renamed to ...
3378         (dimode_scalar_chain::convert_op): This.
3379         (scalar_chain::convert_insn): Renamed to ...
3380         (dimode_scalar_chain::convert_insn): This.
3381         (scalar_chain::convert): Call convert_registers.
3382         (convert_scalars_to_vector): Change to scalar_chain pointer to
3383         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3384         in 32-bit mode.  Delete scalar_chain pointer.  Call
3385         free_dominance_info in 64-bit mode.
3386         (pass_stv::gate): Remove TARGET_64BIT check.
3387         (ix86_option_override): Put the 64-bit STV pass before the CSE
3388         pass.
3389
3390 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3391
3392         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3393         dw_loc_frame_offset field.
3394         * dwarf2out.c (new_loc_descr): Likewise.
3395         (resolve_args_picking_1): Turn the VISITED hash set into a
3396         FRAME_OFFSET hash map. Use it to associate a frame offset to
3397         visited nodes. Remove uses of the CHECKING_P macro.
3398         (resolve_args_picking): Update call to resolve_args_picking_1.
3399
3400 2016-04-27  Martin Liska  <mliska@suse.cz>
3401
3402         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3403         (free_loop_data): Release vuses of groups.
3404
3405 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3406
3407         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3408         instead of redundant use_id and boolean have_use_for.
3409         (struct iv_use): Change sub_id into group_id.  Remove field next.
3410         Move fields: related_cands, n_map_members, cost_map and selected
3411         to ...
3412         (struct iv_group): ... here.  New structure.
3413         (struct iv_common_cand): Use structure declaration directly.
3414         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3415         (MAX_CONSIDERED_USES): Rename macro to ...
3416         (MAX_CONSIDERED_GROUPS): ... here.
3417         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3418         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3419         (dump_uses): Rename to ...
3420         (dump_groups): ... here.  Update all uses.
3421         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3422         (find_induction_variables): Refactor format of dump information.
3423         (record_sub_use): Delete.
3424         (record_use): Update all uses.
3425         (record_group): New function.
3426         (record_group_use, find_interesting_uses_op): Call above functions.
3427         Update all uses.
3428         (find_interesting_uses_cond): Ditto.
3429         (group_compare_offset): New function.
3430         (split_all_small_groups): Rename to ...
3431         (split_small_address_groups_p): ... here.  Update all uses.
3432         (split_address_groups):  Update all uses.
3433         (find_interesting_uses): Refactor format of dump information.
3434         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3435         base and step.
3436         (add_candidate, record_common_cand): Remove redundant assert.
3437         (add_iv_candidate_for_biv): Update use.
3438         (add_iv_candidate_derived_from_uses): Update all uses.
3439         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3440         (alloc_use_cost_map): Ditto.
3441         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3442         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3443         (determine_use_iv_cost_generic): Ditto.
3444         (determine_group_iv_cost_generic): Ditto.
3445         (determine_use_iv_cost_address): Ditto.
3446         (determine_group_iv_cost_address): Ditto.
3447         (determine_use_iv_cost_condition): Ditto.
3448         (determine_group_iv_cost_cond): Ditto.
3449         (determine_use_iv_cost): Ditto.
3450         (determine_group_iv_cost): Ditto.
3451         (set_autoinc_for_original_candidates): Update all uses.
3452         (find_iv_candidates): Update all uses.  Refactor dump information.
3453         (determine_use_iv_costs): Ditto.
3454         (determine_iv_costs): Ditto.
3455         (iv_ca_cand_for_use): Rename to ...
3456         (iv_ca_cand_for_group): ... here.  Update all uses.
3457         (iv_ca_add_use, iv_ca_add_group): Ditto.
3458         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3459         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3460         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3461         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3462         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3463         (create_new_iv, adjust_iv_update_pos): Ditto.
3464         (rewrite_use_address): Delete.
3465         (rewrite_use_address_1): Rename to ...
3466         (rewrite_use_address): ... here.
3467         (rewrite_use_compare): Update all uses.
3468         (rewrite_use): Delete.
3469         (rewrite_uses): Rename to ...
3470         (rewrite_groups): ... here.  Update all uses.
3471         (remove_unused_ivs, free_loop_data): Update all uses.
3472         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3473
3474 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3475
3476         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3477         for WORD_REGISTER_OPERATIONS to runtime check.
3478
3479 2016-04-27  Richard Biener  <rguenther@suse.de>
3480
3481         PR ipa/70760
3482         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3483         aggregate_value_p to determine if a function result is
3484         returned by reference.
3485         (ipa_pta_execute): Functions having their address taken are
3486         not automatically nonlocal.
3487
3488 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3489
3490         PR sanitizer/70683
3491         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3492         * fold-const.c (operand_equal_p): If flag_checking and
3493         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3494         and if it returns non-zero, assert iterative_hash_expr on both
3495         args is the same.
3496
3497 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3498
3499         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3500
3501 2016-04-27  Nick Clifton  <nickc@redhat.com>
3502
3503         PR middle-end/49889
3504         * varasm.c (merge_weak): Generate an error if an attempt is made
3505         to convert a non-weak static function into a weak, public function.
3506
3507 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3508
3509         * params.def (MAX_PARTITION_SIZE): New param.
3510         * doc/invoke.texi: Document lto-max-partition.
3511
3512 2016-04-27  Richard Biener  <rguenther@suse.de>
3513
3514         PR ipa/70785
3515         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3516         function cummulating used_from_other_partition, externally_visible
3517         and force_output from aliases.
3518         (refered_from_nonlocal_var): Likewise.
3519         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3520         node flags properly.
3521
3522 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3523
3524         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3525         (-Wmemset-elt-size): New item.
3526
3527 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3528
3529         PR ada/70759
3530         * stor-layout.h (internal_reference_types): Delete.
3531         * stor-layout.c (reference_types_internal): Likewise.
3532         (internal_reference_types): Likewise.
3533         (layout_type) <REFERENCE_TYPE>: Adjust.
3534
3535 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3536
3537         PR sanitizer/70683
3538         * tree.h (inchash::add_expr): Add FLAGS argument.
3539         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3540         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3541         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3542         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3543         if swap_tree_comparison (code) is smaller than code, hash that
3544         and arguments in the other order.  Hash CONVERT_EXPR the same
3545         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3546         of ADDR_EXPR of decl as the decl itself.  Add or remove
3547         OEP_ADDRESS_OF from recursive flags as needed.  For
3548         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3549         operands commutatively and only the third one normally.
3550         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3551
3552 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3553
3554         * config/rtems.h (LIB_SPEC): Add -latomic.
3555
3556 2016-04-27  Joel Sherrill  <joel@rtems.org>
3557
3558         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3559         xilink.ld and flags not relevant to RTEMS.
3560
3561 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3562
3563         * toplev.c (backend_init_target): Avoid calling init_reload when using
3564         LRA.
3565
3566 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3567
3568         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3569         for loops rather than one for the whole function.
3570
3571 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3572
3573         * match.pd (X + CST CMP X): New transformation.
3574
3575 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3576
3577         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3578         * fold-const.c (fold_binary_loc): Remove 2 transformations
3579         superseded by match.pd.
3580         * match.pd (x+x -> x*2): Generalize to integers.
3581
3582 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3583
3584         * config/i386/i386.md (operation on memory peephole): Duplicate an
3585         existing peephole and adapt it to match lea rather than an operation
3586         that clobbers CC.
3587
3588         PR rtl-optimization/57193
3589         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3590         and above.
3591         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3592
3593 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3594
3595         * tree-if-conv.c (any_pred_load_store): New static variable.
3596         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3597         any_pred_load_store instead of and_mask_load_store.
3598         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3599         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3600         (combine_blocks, tree_if_conversion): Ditto.
3601
3602 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3603
3604         PR tree-optimization/70771
3605         PR tree-optimization/70775
3606         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3607         virtual PHI nodes.  Delete parameter.
3608         (if_convertible_loop_p_1): Delete argument to above function.
3609         (predicate_all_scalar_phis): Delete code handling single-argument
3610         PHIs.
3611         (tree_if_conversion): Mark and update virtual SSA.
3612
3613 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3614
3615         PR target/61821
3616         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3617         (x86_elf_aligned_common): Rename to ...
3618         (x86_elf_aligned_decl_common): ... this.
3619         Add decl arg.  Switch to .lbss for largecomm object.  Use
3620         LARGECOMM_SECTION_ASM_OP.
3621         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3622         renaming.
3623         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3624         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3625         Pass new decl arg.
3626         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3627         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3628
3629 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3630
3631         PR target/59407
3632         * config/i386/i386.c (SECTION_LARGE): Define.
3633         (x86_64_elf_select_section): Set it for large data/bss sections.
3634         Only clear SECTION_WRITE for .lrodata.
3635         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3636         data/bss sections.
3637         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3638         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3639         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3640         SECTION_MACH_DEP.
3641         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3642         * doc/tm.texi: Regenerate.
3643
3644 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3645
3646         PR bootstrap/70704
3647         * configure.ac (--enable-checking): Document extra flag, for
3648         non-release builds default to --enable-checking=yes,extra.
3649         If misc checking and extra checking, define CHECKING_P to 2 instead
3650         of 1.
3651         * common.opt (fchecking=): Add.
3652         * doc/invoke.texi (-fchecking=): Document.
3653         * doc/install.texi: Document --enable-checking changes.
3654         * configure: Regenerated.
3655         * config.in: Regenerated.
3656
3657 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3658
3659         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3660         attribute instead of which_alternative.
3661         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3662         Use EXT_REX_SSE_REG_P where appropriate.
3663
3664 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3665
3666         * config/i386/predicates.md (const0_operand): Do not match
3667         const_wide_int code.
3668         (const1_operand): Ditto.
3669
3670 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3671
3672         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3673         for SSE constm1 operands and TARGET_AVX512VL.
3674         (*movti_internal): Ditto.
3675         (*mov<mode>_or): Use constm1_operand predicate.
3676         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3677         for SSE vector_all_ones operands and TARGET_AVX512VL.
3678         * config/i386/predicates.md (constm1_operand): New predicate.
3679         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3680         emission of constant -1 load.
3681
3682 2016-04-25  Jason Merrill  <jason@redhat.com>
3683
3684         * gdbinit.in: Skip is-a.h.
3685
3686         * attribs.c (register_scoped_attributes): Fix logic.
3687         * attribs.h: Declare register_scoped_attributes.
3688
3689 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3690
3691         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3692         stxvd2x and stxvw4x built-in functions.
3693
3694 2016-04-25  DJ Delorie  <dj@redhat.com>
3695
3696         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3697         (ashrhi3): Likewise.
3698         (lshrhi3): Likewise.
3699
3700 2016-04-25  Richard Biener  <rguenther@suse.de>
3701
3702         PR tree-optimization/70780
3703         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3704         wasn't visited yet.
3705         (compute_antic): Mark blocks with abnormal preds as visited as
3706         they have a final empty antic-in solution already.
3707
3708 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3709
3710         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3711
3712 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3713
3714         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3715         mode is VQI to improve mixed mode vectorization.
3716         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3717         define_insn to match low half of signed vaddw.
3718         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3719         define_insn to match high half of signed vaddw.
3720         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3721         define_insn to match low half of unsigned vaddw.
3722         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3723         define_insn to match high half of unsigned vaddw.
3724         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3725         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3726         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3727         for new function.
3728         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3729         * config/arm/predicates.md (vect_par_constant_high): Support
3730         big endian and simplify by calling
3731         arm_simd_check_vect_par_cnst_half
3732         (vect_par_constant_low): Likewise.
3733
3734 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3735
3736         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3737         predicate for operand 2.
3738
3739 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3740             H.J. Lu  <hongjiu.lu@intel.com>
3741
3742         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3743         machine_mode argument.
3744         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3745         constm1_rtx operands.  For VOIDmode constants, get mode from
3746         pred_mode.  Check mode size if the mode is supported by ABI.
3747         (standard_sse_constant_opcode): Do not use standard_constant_p.
3748         Strictly check ABI support for all-ones operands.
3749         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3750         immediates. Update calls to standard_sse_constant_p.
3751         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3752         (ix86_rtx_costs): Ditto.
3753         * config/i386/i386.md (*movxi_internal_avx512f): Use
3754         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3755         Use (v,BC) alternative instead of (v,C). Use register_operand
3756         checks instead of MEM_P.
3757         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3758         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3759         isa attribute.  Use register_operand checks instead of MEM_P.
3760         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3761         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3762         alternative and corresponding sse2 isa attribute.
3763         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3764         to standard_sse_constant_p.
3765         (FP constant splitters): Ditto.
3766         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3767         (C): Ditto.
3768         * config/i386/predicates.md (constm1_operand): Remove.
3769         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3770         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3771         vector_all_ones_operand instead of constm1_operand.
3772
3773 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3774
3775         * print-rtl.c (print_rtx_insn_vec): New function.
3776         * print-rtl.h: New prototype.
3777         * store-motion.c (struct st_expr): Make avail_stores a vector.
3778         (st_expr_entry): Adjust.
3779         (free_st_expr_entry): Likewise.
3780         (print_store_motion_mems): Likewise.
3781         (find_moveable_store): Likewise.
3782         (compute_store_table): Likewise.
3783         (delete_store): Likewise.
3784         (build_store_vectors): Likewise.
3785
3786 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3787
3788         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3789
3790 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3791
3792         * vec.h (vec_safe_contains): New function.
3793         (vec::contains): Likewise.
3794         (vec::begin): Likewise.
3795         (vec::end): Likewise.
3796
3797 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3798
3799         PR sanitizer/70712
3800         * cfgexpand.c (expand_stack_vars): Fix typo.
3801
3802 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3803
3804         * system.h (list, map, set, vector): Include conditionally.
3805         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3806         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3807         * ipa-icf.c (INCLUDE_LIST): Define.
3808         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
3809         * config/sh/sh.c (INCLUDE_VECTOR): Define.
3810         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
3811         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
3812         * cp/logic.cc (INCLUDE_LIST): Define.
3813         * fortran/trans-common.c (INCLUDE_MAP): Define.
3814
3815 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3816
3817         * auto-profile.c: Remove <string.h> include.
3818         * ipa-icf-gimple.c: Remove <list> include.
3819         * diagnostic.c: Remove <new> include.
3820         * genmatch.c: Likewise.
3821         * pretty-print.c: Likewise.
3822         * toplev.c: Likewise
3823         * c/c-objc-common.c: Likewise.
3824         * cp/error.c: Likewise.
3825         * fortran/error.c: Likewise.
3826
3827 2016-04-22  Richard Biener  <rguenther@suse.de>
3828
3829         * lto-streamer-in.c (input_ssa_names): Do not allocate
3830         GIMPLE_NOP for all SSA names.
3831         * lto-streamer-out.c (output_ssa_names): Do not output
3832         SSA names that should have been released.
3833
3834 2016-04-22  Richard Biener  <rguenther@suse.de>
3835
3836         PR tree-optimization/70740
3837         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
3838         VDEF.
3839
3840 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3841
3842         PR target/70750
3843         * config/i386/predicates.md (call_insn_operand): Replace
3844         sibcall_memory_operand with memory_operand.
3845
3846 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
3847
3848         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
3849         has_single_use() tests.
3850         (register_edge_assert_for_1): Likewise.
3851         (find_assert_locations_1): Check the liveness bitmap instead of
3852         checking has_single_use().
3853
3854 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3855
3856         PR target/70728
3857         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
3858         Extract AVX-512BW constraint from AVX.
3859
3860 2016-04-21  Richard Biener  <rguenther@suse.de>
3861
3862         PR tree-optimization/70725
3863         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
3864         for phi_convertible_by_degenerating_args.
3865         (predicate_all_scalar_phis): Handle single-argument PHIs.
3866
3867 2016-04-21  Richard Biener  <rguenther@suse.de>
3868
3869         PR middle-end/70747
3870         * fold-const.c (fold_comparison): Return properly typed
3871         constant boolean.
3872
3873 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
3874
3875         PR tree-optimization/70715
3876         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
3877         after expanding BASE using expand_simple_operations.
3878
3879 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3880
3881         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
3882         New transformations.
3883
3884 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3885
3886         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
3887
3888 2016-04-20  Jan Hubicka  <jh@suse.cz>
3889
3890         * ipa-inline.c (can_inline_edge_p): Pass caller info to
3891         ultiimate_alias_target.
3892         (update_callee_keys): Likewise.
3893         (lookup_recursive_calls): Likewise.
3894         (speculation_useful_p): Likewise.
3895
3896 2016-04-20  Jan Hubicka  <jh@suse.cz>
3897
3898         PR ipa/70018
3899         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
3900         (set_nothrow_flag_1): ... this; handle interposition correctly;
3901         recurse on aliases and thunks.
3902         (cgraph_node::set_nothrow_flag): New.
3903         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
3904         functions compiled with non-call exceptions that binds to current
3905         def.
3906         (propagate_nothrow): Be safe WRT interposition.
3907         * cgraph.h (set_nothrow_flag): Update prototype.
3908
3909 2016-04-18  Jan Hubicka  <jh@suse.cz>
3910
3911         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3912         max_loop_iterations_int.
3913         (tree_unswitch_outer_loop): Likewise.
3914
3915 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3916
3917         PR tree-optimization/69489
3918         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
3919         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
3920         Revise dump message.
3921         (if_convertible_bb_p): Remove check on edge count of basic block's
3922         predecessors.
3923
3924 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3925
3926         PR tree-optimization/56625
3927         PR tree-optimization/69489
3928         * tree-data-ref.h (DR_INNERMOST): New macro.
3929         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
3930         hashing struct innermost_loop_behavior.
3931         (ref_DR_map): Remove.
3932         (innermost_DR_map): New map.
3933         (baseref_DR_map): Revise comment.
3934         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
3935         to innermost_DR_map accroding to its innermost loop behavior.
3936         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
3937         to its innermost loop behavior.
3938         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
3939         Add initialization for innermost_DR_map.  Record memory reference
3940         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
3941         have innermost loop behavior.
3942         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
3943         innermost_DR_map.
3944
3945 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
3946
3947         * config/i386/i386.md (*lea<mode>_general_1): Rename from
3948         *lea_general_1.  Use explicit SWI12 mode interator.
3949         (*lea<mode>_general_2): Rename from *lea_general_2.
3950         Use explicit SWI12 mode interator.
3951         (*lea<mode>_general_3): Rename from *lea_general_3.
3952         Use explicit SWI12 mode interator.
3953         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
3954         Use explicit SWI12 mode interator.
3955         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
3956         Use explicit SWI48 mode interator.
3957
3958 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3959
3960         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3961         Short-cut unaligned load and store cases.  Handle all integer
3962         vector modes.
3963         (ix86_expand_vector_move_misalign): Short-cut unaligned load
3964         and store cases.  Call ix86_avx256_split_vector_move_misalign
3965         directly without checking mode class.
3966
3967 2016-04-20  Andrew Pinski  <apinski@cavium.com>
3968             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3969
3970         PR target/64971
3971         * config/aarch64/aarch64.md (sibcall): Force call
3972         address to be DImode for ILP32.
3973         (sibcall_value): Likewise.
3974
3975 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3976
3977         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
3978
3979 2016-04-20  Richard Biener  <rguenther@suse.de>
3980
3981         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
3982         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
3983         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
3984         (maybe_push_res_to_seq): Adjust.
3985         * gimple-fold.c (maybe_build_generic_op): Likewise.
3986
3987 2016-04-20  Marek Polacek  <polacek@redhat.com>
3988
3989         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
3990         rather than true.
3991
3992 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
3993
3994         * config/i386/sse.md (vec_unpacks_lo_hi): Always
3995         use kmovw to support AVX512F target.
3996
3997 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3998
3999         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
4000
4001 2016-04-20  Marek Polacek  <polacek@redhat.com>
4002
4003         PR tree-optimization/70725
4004         * tree-if-conv.c (is_false_predicate): New function.
4005         (predicate_mem_writes): Use it.
4006
4007 2016-04-20  Richard Biener  <rguenther@suse.de>
4008
4009         PR tree-optimization/70726
4010         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4011         shift amounts from a pattern stmt operand.
4012
4013 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4014
4015         PR target/70674
4016         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4017         stack_restore_from_fpr pattern when restoring r15.
4018         (s390_optimize_prologue): Strip away the memory barrier in the
4019         parallel when trying to get rid of restore insns.
4020         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4021         definition for loading the stack pointer from an FPR.  Compared to
4022         the normal move insn this pattern includes a full memory barrier.
4023
4024 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4025
4026         PR middle-end/70680
4027         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4028         implicitly linear or lastprivate iterator on the outer context.
4029
4030 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4031
4032         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
4033         alignment check.
4034         * config/i386/i386.md (ssememalign): Removed.
4035         * config/i386/sse.md: Remove ssememalign attribute from patterns.
4036
4037 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4038
4039         PR target/69201
4040         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
4041         const short * to __builtin_ia32_loaddquhi512_mask.
4042         (_mm512_maskz_loadu_epi16): Likewise.
4043         (_mm512_mask_storeu_epi16): Pass short * to
4044         __builtin_ia32_storedquhi512_mask.
4045         (_mm512_mask_loadu_epi8): Pass const char * to
4046         __builtin_ia32_loaddquqi512_mask.
4047         (_mm512_maskz_loadu_epi8): Likewise.
4048         (_mm512_mask_storeu_epi8): Pass char * to
4049         __builtin_ia32_storedquqi512_mask.
4050         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
4051         const double * to __builtin_ia32_loadupd512_mask.
4052         (_mm512_mask_loadu_pd): Likewise.
4053         (_mm512_maskz_loadu_pd): Likewise.
4054         (_mm512_storeu_pd): Pass double * to
4055         __builtin_ia32_storeupd512_mask.
4056         (_mm512_mask_storeu_pd): Likewise.
4057         (_mm512_loadu_ps): Pass const float * to
4058         __builtin_ia32_loadups512_mask.
4059         (_mm512_mask_loadu_ps): Likewise.
4060         (_mm512_maskz_loadu_ps): Likewise.
4061         (_mm512_storeu_ps): Pass float * to
4062         __builtin_ia32_storeups512_mask.
4063         (_mm512_mask_storeu_ps): Likewise.
4064         (_mm512_mask_loadu_epi64): Pass const long long * to
4065         __builtin_ia32_loaddqudi512_mask.
4066         (_mm512_maskz_loadu_epi64): Likewise.
4067         (_mm512_mask_storeu_epi64): Pass long long *
4068         to __builtin_ia32_storedqudi512_mask.
4069         (_mm512_loadu_si512): Pass const int * to
4070         __builtin_ia32_loaddqusi512_mask.
4071         (_mm512_mask_loadu_epi32): Likewise.
4072         (_mm512_maskz_loadu_epi32): Likewise.
4073         (_mm512_storeu_si512): Pass int * to
4074         __builtin_ia32_storedqusi512_mask.
4075         (_mm512_mask_storeu_epi32): Likewise.
4076         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
4077         char * to __builtin_ia32_storedquqi256_mask.
4078         (_mm_mask_storeu_epi8): Likewise.
4079         (_mm256_mask_loadu_epi16): Pass const short * to
4080         __builtin_ia32_loaddquhi256_mask.
4081         (_mm256_maskz_loadu_epi16): Likewise.
4082         (_mm_mask_loadu_epi16): Pass const short * to
4083         __builtin_ia32_loaddquhi128_mask.
4084         (_mm_maskz_loadu_epi16): Likewise.
4085         (_mm256_mask_loadu_epi8): Pass const char * to
4086         __builtin_ia32_loaddquqi256_mask.
4087         (_mm256_maskz_loadu_epi8): Likewise.
4088         (_mm_mask_loadu_epi8): Pass const char * to
4089         __builtin_ia32_loaddquqi128_mask.
4090         (_mm_maskz_loadu_epi8): Likewise.
4091         (_mm256_mask_storeu_epi16): Pass short * to.
4092         __builtin_ia32_storedquhi256_mask.
4093         (_mm_mask_storeu_epi16): Pass short * to.
4094         __builtin_ia32_storedquhi128_mask.
4095         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
4096         const double * to __builtin_ia32_loadupd256_mask.
4097         (_mm256_maskz_loadu_pd): Likewise.
4098         (_mm_mask_loadu_pd): Pass onst double * to
4099         __builtin_ia32_loadupd128_mask.
4100         (_mm_maskz_loadu_pd): Likewise.
4101         (_mm256_mask_storeu_pd): Pass double * to
4102         __builtin_ia32_storeupd256_mask.
4103         (_mm_mask_storeu_pd): Pass double * to
4104         __builtin_ia32_storeupd128_mask.
4105         (_mm256_mask_loadu_ps): Pass const float * to
4106         __builtin_ia32_loadups256_mask.
4107         (_mm256_maskz_loadu_ps): Likewise.
4108         (_mm_mask_loadu_ps): Pass const float * to
4109         __builtin_ia32_loadups128_mask.
4110         (_mm_maskz_loadu_ps): Likewise.
4111         (_mm256_mask_storeu_ps): Pass float * to
4112         __builtin_ia32_storeups256_mask.
4113         (_mm_mask_storeu_ps): ass float * to
4114         __builtin_ia32_storeups128_mask.
4115         (_mm256_mask_loadu_epi64): Pass const long long * to
4116         __builtin_ia32_loaddqudi256_mask.
4117         (_mm256_maskz_loadu_epi64): Likewise.
4118         (_mm_mask_loadu_epi64): Pass const long long * to
4119         __builtin_ia32_loaddqudi128_mask.
4120         (_mm_maskz_loadu_epi64): Likewise.
4121         (_mm256_mask_storeu_epi64): Pass long long * to
4122         __builtin_ia32_storedqudi256_mask.
4123         (_mm_mask_storeu_epi64): Pass long long * to
4124         __builtin_ia32_storedqudi128_mask.
4125         (_mm256_mask_loadu_epi32): Pass const int * to
4126         __builtin_ia32_loaddqusi256_mask.
4127         (_mm256_maskz_loadu_epi32): Likewise.
4128         (_mm_mask_loadu_epi32): Pass const int * to
4129         __builtin_ia32_loaddqusi128_mask.
4130         (_mm_maskz_loadu_epi32): Likewise.
4131         (_mm256_mask_storeu_epi32): Pass int * to
4132         __builtin_ia32_storedqusi256_mask.
4133         (_mm_mask_storeu_epi32): Pass int * to
4134         __builtin_ia32_storedqusi128_mask.
4135         * config/i386/i386-builtin-types.def (PCSHORT): New.
4136         (PINT64): Likewise.
4137         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
4138         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
4139         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
4140         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
4141         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
4142         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
4143         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
4144         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
4145         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
4146         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
4147         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
4148         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
4149         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
4150         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
4151         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
4152         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
4153         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
4154         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
4155         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
4156         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
4157         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
4158         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
4159         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
4160         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
4161         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
4162         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
4163         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
4164         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
4165         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
4166         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
4167         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
4168         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
4169         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
4170         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
4171         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
4172         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
4173         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
4174         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
4175         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
4176         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
4177         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
4178         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
4179         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
4180         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
4181         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
4182         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
4183         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
4184         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
4185         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
4186         use UNSPEC_STOREU.
4187         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
4188         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
4189         load nor store.
4190         (ix86_expand_vector_move_misalign): Likewise.
4191         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
4192         to scalar function prototype for unaligned load/store builtins.
4193         (ix86_expand_special_args_builtin): Updated.
4194         * config/i386/sse.md (UNSPEC_LOADU): Removed.
4195         (UNSPEC_STOREU): Likewise.
4196         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
4197         (VI_ULOADSTORE_F_AVX512VL): Likewise.
4198         (ssescalarsize): Handle V4TI, V2TI and V1TI.
4199         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4200         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4201         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
4202         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
4203         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
4204         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
4205         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
4206         (<avx512>_storedqu<mode>_mask): Likewise.
4207         (*sse4_2_pcmpestr_unaligned): Likewise.
4208         (*sse4_2_pcmpistr_unaligned): Likewise.
4209         (*mov<mode>_internal): Renamed to ...
4210         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
4211         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
4212         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
4213         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
4214
4215 2016-04-19  Richard Biener  <rguenther@suse.de>
4216
4217         PR tree-optimization/70171
4218         * tree-ssa-phiprop.c: Include stor-layout.h.
4219         (phiprop_insert_phi): Handle the aggregate copy case.
4220         (propagate_with_phi): Likewise.
4221
4222 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
4223
4224         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
4225         instead of simplify_gen_subreg (... , 0).
4226         (ix86_delegitimize_address): Ditto.
4227         (ix86_split_divmod): Ditto.
4228         (ix86_split_copysign_const): Ditto.
4229         (ix86_split_copysign_var): Ditto.
4230         (ix86_expand_args_builtin): Ditto.
4231         (ix86_expand_round_builtin): Ditto.
4232         (ix86_expand_special_args_builtin): Ditto.
4233         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
4234         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
4235         (udivmodqi4): Ditto.
4236         (absneg splitters): Ditto.
4237         (*jcc_bt<mode>_1): Ditto.
4238
4239 2016-04-19  Richard Biener  <rguenther@suse.de>
4240
4241         PR tree-optimization/70724
4242         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4243         restoring out from ...
4244         (free_scc_vn): ... here.
4245         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4246         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4247         tail merging.
4248         (pass_fre::execute): Restore SSA info.
4249
4250 2016-04-19  Richard Biener  <rguenther@suse.de>
4251
4252         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
4253         * gimple-walk.c (walk_gimple_op): Initialize it.
4254         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
4255         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
4256         remapping SSA names of defs.
4257         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4258         adjustment.
4259
4260 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4261
4262         PR middle-end/70689
4263         * lra-constraints.c (equiv_substition_p): New.
4264         (process_alt_operands): Use it.
4265         (swap_operands): Swap it.
4266         (curr_insn_transform): Update it.
4267
4268 2016-04-18  Michael Matz  <matz@suse.de>
4269
4270         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4271         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4272         * tree-core.h (tree_type_common.align): Use bit-field.
4273         (tree_type_common.spare): New.
4274         (tree_decl_common.off_align): Make smaller.
4275         (tree_decl_common.align): Use bit-field.
4276
4277         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4278         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4279         (scan_sharing_clauses): Ditto.
4280         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4281         (omp_finish_file): Ditto.
4282         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4283         (layout_decl): Ditto.
4284         (relayout_decl): Ditto.
4285         (finalize_record_size): Use SET_TYPE_ALIGN.
4286         (finalize_type_size): Ditto.
4287         (finish_builtin_struct): Ditto.
4288         (layout_type): Ditto.
4289         (initialize_sizetypes): Ditto.
4290         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4291         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4292         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4293         (get_chain_field): Ditto.
4294         (get_trampoline_type): Ditto.
4295         (get_nl_goto_field): Ditto.
4296         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4297         SET_DECL_ALIGN.
4298         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4299         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4300         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4301         (build_qualified_type): Use SET_TYPE_ALIGN.
4302         (build_aligned_type, build_range_type_1): Ditto.
4303         (build_atomic_base): Ditto.
4304         (build_common_tree_nodes): Ditto.
4305         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4306         (expand_one_stack_var_at): Ditto.
4307         * coverage.c (build_var): Use SET_DECL_ALIGN.
4308         * except.c (init_eh): Ditto.
4309         * function.c (assign_parm_setup_block): Ditto.
4310         * symtab.c (increase_alignment_1): Ditto.
4311         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4312         * tree-vect-stmts.c (ensure_base_align): Ditto.
4313         * varasm.c (align_variable): Ditto.
4314         (assemble_variable): Ditto.
4315         (build_constant_desc): Ditto.
4316         (output_constant_def_contents): Ditto.
4317
4318         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4319         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4320         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4321         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4322         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4323
4324 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4325
4326         PR target/70708
4327         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4328         replace %vmovsd with "%vmovq".
4329         (vec_concatv2df): Likewise.
4330
4331 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4332
4333         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4334         (*vec_extractv2si_0): Ditto.
4335         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4336         (zero_extended_scalar_load_operand splitters): Ditto.
4337         (vec_extract splitters): Ditto.
4338         (*vec_extractv4si_0_zext): Ditto.
4339         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4340         and lowpart_subreg.
4341         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4342         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4343         (*sse4_1_extractps): Use lowpart_subreg.
4344         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4345
4346 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4347
4348         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4349         gld requirements.
4350         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4351         Mention Solaris 11 packaging changes.
4352         Update gas and gld requirements.
4353         Remove reference to pre-Solaris 10 bug.
4354         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4355         systems and bugs.
4356         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4357         with cc.
4358
4359 2016-04-17  Jan Hubicka  <jh@suse.cz>
4360
4361         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4362         max_loop_iterations_int.
4363
4364 2016-04-18  Richard Biener  <rguenther@suse.de>
4365
4366         PR tree-optimization/43434
4367         * tree-ssa-structalias.c (struct vls_data): New.
4368         (visit_loadstore): Handle all pointer-based accesses.
4369         (compute_dependence_clique): Compute a bitmap of restrict tags
4370         assigned bases and pass it to visit_loadstore.
4371
4372 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4373
4374         PR target/70711
4375         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4376         armv8.1-a and armv8.1-a+crc.
4377
4378 2016-04-18  Richard Biener  <rguenther@suse.de>
4379
4380         PR tree-optimization/70701
4381         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4382         references after translating through a memcpy.
4383
4384 2016-04-18  Richard Biener  <rguenther@suse.de>
4385
4386         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4387         (compute_antic): ... here.  For partial antic use regular
4388         postorder and scrap iteration.
4389         (compute_partial_antic_aux): Remove unused return value.
4390         (init_pre): Do not allocate postorder.
4391         (fini_pre): Do not free postorder.
4392
4393 2016-04-18  Richard Biener  <rguenther@suse.de>
4394
4395         PR middle-end/37870
4396         * expmed.c (extract_bit_field_1): Remove broken case
4397         using a wider MODE_INT mode.
4398
4399 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4400
4401         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4402         unless compiling with at least GCC-4.8.
4403
4404 2016-04-17  Jan Hubicka  <jh@suse.cz>
4405
4406         PR bootstrap/70706
4407         * graphite.c (graphite_finalize): Update call to
4408         tree_estimate_probability.
4409         * predict.h (tree_estimate_probability): Update prototype.
4410
4411 2016-04-17  Jan Hubicka  <jh@suse.cz>
4412
4413         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4414         (tree_estimate_probability): Likewise.
4415         (pass_profile::execute): Update.
4416         (report_predictor_hitrates): New function.
4417         * profile.c (compute_branch_probabilities): Use it.
4418         * predict.h (report_predictor_hitrates): Declare.
4419
4420 2016-04-17  Jan Hubicka  <jh@suse.cz>
4421
4422         PR ipa/70018
4423         * cgraph.h (cgraph_node::set_const_flag,
4424         cgraph_node::set_pure_flag): Update prototype to return bool;
4425         update comment.
4426         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4427         of interposable symbol are interposable, too.
4428         (cgraph_set_const_flag_1): Rename to ...
4429         (set_const_flag_1): ... this one; change to self recursive function
4430         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4431         clearnig the flag in all variants and also virtual thunks of const
4432         functions are pure; track if any change was done.
4433         (cgraph_node::set_const_flag): Update.
4434         (struct set_pure_flag_info): New struct.
4435         (cgraph_set_pure_flag_1): Rename to ...
4436         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4437         rather than pointer encoded flags; track if any changes was done;
4438         handle correctly clearning flag and setting flag of aliases already
4439         declared const.
4440         (cgraph_node::set_pure_flag): Update.
4441         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4442
4443 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4444
4445         PR other/70433
4446         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4447         backslash in label.
4448
4449 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4450
4451         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4452         '{}<> ' as escape-for-record.
4453
4454 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4455
4456         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4457         structure.
4458
4459 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4460
4461         PR other/70185
4462         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4463         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4464         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4465         * passes.c (finish_optimization_passes): Only call
4466         finish_graph_dump_file if dfi->graph_dump_initialized.
4467         (execute_function_dump, pass_init_dump_file): Use
4468         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4469
4470 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4471
4472         PR tree-optimization/70256
4473         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4474         (debug_varmap): New function.
4475
4476 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4477
4478         PR other/70183
4479         * passes.c (pass_manager::register_pass): Propagate pflags.
4480
4481 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4482
4483         PR other/68875
4484         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4485         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4486         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4487         check if it's equal to p_start.
4488         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4489
4490 2016-04-15  Jan Hubicka  <jh@suse.cz>
4491
4492         PR ipa/70018
4493         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4494         function does not bind to current def.
4495         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4496         handle conservatively calls to functions that does not need to bind
4497         to current def.
4498         (check_call): Update call of worse_state.
4499         (ignore_edge_for_nothrow): Update.
4500         (ignore_edge_for_pure_const): Likewise.
4501         (propagate_pure_const): Update calls to worse_state.
4502         (skip_function_for_local_pure_const): Reformat comments.
4503
4504 2016-04-15  Jan Hubicka  <jh@suse.cz>
4505
4506         PR ipa/70018
4507         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4508         (cgraph_node::function_symbol): Likewise.
4509         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4510         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4511         (symtab_node::ultimate_alias_target): Add REF parameter.
4512         (symtab_node::binds_to_current_def_p): Declare.
4513         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4514         (cgraph_node::function_symbol): Likewise.
4515         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4516         (cgraph_node::get_availability): Likewise.
4517         (cgraph_edge::binds_to_current_def_p): New inline function.
4518         (varpool_node::get_availability): Add REF parameter.
4519         (varpool_node::ultimate_alias_target): Likewise.
4520         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4521         (symtab_node::binds_to_current_def_p): Likewise.
4522         * varpool.c (varpool_node::get_availability): Likewise.
4523
4524 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4525
4526         PR target/70662
4527         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4528         Fix mode size check.
4529
4530 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4531
4532         * BASE-VER: Set to 7.0.0.
4533
4534 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4535
4536         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4537
4538 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4539
4540         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4541         architecture revisions.
4542
4543 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4544
4545         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4546         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4547         * config/i386/i386.md (stack decrement to push peepholes): Guard
4548         with !x86_using_red_zone ().
4549
4550 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4551
4552         PR c++/70675
4553         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4554         to dump_generic_node.
4555         (NIY): Pass also flags to do_niy.
4556
4557 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4558
4559         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4560         (simd_clone_vector_of_formal_parm_types)
4561         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4562         (simd_clone_mangle, simd_clone_create)
4563         (simd_clone_adjust_return_type, create_tmp_simd_array)
4564         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4565         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4566         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4567         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4568         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4569         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4570         * omp-simd-clone.c: ... this new file.
4571         (simd_clone_vector_of_formal_parm_types): Make it static.
4572         * Makefile.in (OBJS): Add omp-simd-clone.o.
4573
4574 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4575
4576         PR target/70662
4577         * config/i386/sse.md: Use proper memory operand modifiers.
4578
4579
4580 2016-04-15  Richard Biener  <rguenther@suse.de>
4581         Alan Modra  <amodra@gmail.com>
4582
4583         PR tree-optimization/70130
4584         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4585         when alignment stays not the same and no not use the realign
4586         scheme then.
4587
4588 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4589
4590         PR target/70669
4591         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4592         direct move handlers for KFmode. Change TFmode handlers test from
4593         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4594
4595 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4596
4597         PR c++/70594
4598         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4599         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4600         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4601         * tree-ssa-live.c (remove_unused_scope_block_p): When
4602         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4603         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4604         block_ultimate_origin is FUNCTION_DECL.
4605         (remove_unused_locals): If current_function_decl is
4606         polymorphic_ctor_dtor_p, pass initial true to
4607         remove_unused_scope_block_p' is_ctor_dtor_block.
4608
4609 2016-04-14  Martin Sebor  <msebor@redhat.com>
4610
4611         PR c++/69517
4612         PR c++/70019
4613         PR c++/70588
4614         * doc/extend.texi (Variable Length): Revert.
4615
4616 2016-04-14  Marek Polacek  <polacek@redhat.com>
4617             Jan Hubicka  <hubicka@ucw.cz>
4618
4619         PR c++/70029
4620         * tree.c (verify_type): Disable the canonical type of main variant
4621         check.
4622
4623 2016-04-14  Jason Merrill  <jason@redhat.com>
4624
4625         * cfgexpand.c, expr.c: Revert previous change.
4626
4627 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4628
4629         PR middle-end/70643
4630         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4631         when building a mem ref for the incoming reduction variable.
4632
4633 2016-04-14  Richard Biener  <rguenther@suse.de>
4634
4635         PR tree-optimization/70614
4636         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4637         loop if the evolution dropped to chrec_dont_know.
4638         (interpret_condition_phi): Likewise.
4639
4640 2016-04-14  Richard Biener  <rguenther@suse.de>
4641
4642         PR tree-optimization/70623
4643         * tree-ssa-pre.c (changed_blocks): Make global ...
4644         (compute_antic): ... local here.  Move and fix worklist
4645         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4646         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4647         worklist handling, dump when ANTIC_IN changed.
4648         (compute_partial_antic_aux): Remove worklist handling.
4649         (init_pre): Do not compute post dominators.  Add a comment about
4650         the CFG order chosen.
4651         (fini_pre): Do not free post dominators.
4652
4653 2016-04-13  Martin Sebor  <msebor@redhat.com>
4654
4655         PR c++/69517
4656         PR c++/70019
4657         PR c++/70588
4658         * doc/extend.texi (Variable Length): Document C++ specifics.
4659
4660 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4661
4662         PR c++/70641
4663         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4664         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4665         eh edges have been purged.
4666
4667         PR c++/70594
4668         * tree-sra.c (create_access_replacement,
4669         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4670         gets fancy name.
4671         * tree-pretty-print.c (dump_fancy_name): New function.
4672         (dump_decl_name, dump_generic_node): Use it.
4673
4674 2016-04-13  Jason Merrill  <jason@redhat.com>
4675
4676         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4677         * expr.c (expand_expr_real_1): Likewise.
4678
4679 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4680
4681         * config/i386/i386.md (kunpckhi): Swap operands.
4682         (kunpcksi): Likewise.
4683         (kunpckdi): Likewise.
4684         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4685         (vec_pack_trunc_<mode>): Likewise.
4686
4687 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4688
4689         PR debug/70628
4690         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4691
4692         PR middle-end/70633
4693         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4694         gimplification turns some element into non-constant.
4695
4696         PR debug/70628
4697         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4698         * explow.c (convert_memory_address_addr_space_1): No longer static,
4699         add NO_EMIT argument and don't call convert_modes if true, pass
4700         it down recursively, remove break after return.
4701         (convert_memory_address_addr_space): Adjust caller.
4702         * simplify-rtx.c (simplify_unary_operation_1): Call
4703         convert_memory_address_addr_space_1 instead of convert_memory_address,
4704         if it returns NULL, don't simplify.
4705
4706 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4707
4708         PR target/70630
4709         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4710
4711 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4712
4713         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4714         Bump the upper SIMDLEN limits, so that if the return type or
4715         characteristic type if the return type is void can be passed in
4716         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4717         allowed.
4718
4719 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4720
4721         PR target/70640
4722         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4723         Do not use "=" constraint on an input constraint.
4724         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4725         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4726         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4727         generates (neg (abs ...)) instead of (abs ...).
4728
4729 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4730
4731         PR rtl-optimization/70596
4732         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4733         just invalidate LRA data and reset them.  Adjust dump wording.
4734
4735 2016-04-12  Martin Liska  <mliska@suse.cz>
4736
4737         Revert
4738         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4739
4740         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4741         estimates here.
4742         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4743         max_loop_iterations_int.
4744         (tree_unswitch_outer_loop): Likewise.
4745         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4746         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4747
4748 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4749
4750         PR tree-optimization/68756
4751         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4752         instead of new_name.
4753
4754 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4755
4756         PR tree-optimization/70602
4757         * tree-sra.c (generate_subtree_copies): Don't write anything into
4758         constant pool decls.
4759
4760         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4761         regardless whether there are depend clauses or not.
4762
4763 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4764
4765         PR target/70381
4766         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4767         target attribute and pragma from changing the -mfloat128
4768         and -mfloat128-hardware options.
4769
4770         * doc/extend.texi (Additional Floating Types): Document PowerPC
4771         __float128 restrictions.
4772
4773 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4774
4775         PR target/70133
4776         * config/aarch64/driver-aarch64.c
4777         (aarch64_get_extension_string_for_isa_flags): New.
4778         (arch_extension): Rename to...
4779         (aarch64_arch_extension): ...This.
4780         (ext_to_feat_string): Rename to...
4781         (aarch64_extensions): ...This.
4782         (aarch64_core_data): Keep track of architecture extension flags.
4783         (cpu_data): Rename to...
4784         (aarch64_cpu_data): ...This.
4785         (aarch64_arch_driver_info): Keep track of architecture extension
4786         flags.
4787         (get_arch_name_from_id): Rename to...
4788         (get_arch_from_id): ...This, change return type.
4789         (host_detect_local_cpu): Update and reformat for renames, handle
4790         extensions through common infrastructure.
4791
4792 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4793
4794         PR target/70133
4795         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4796         track of a canonical flag name.
4797         (all_extensions): Likewise.
4798         (arch_to_arch_name): Also track extension flags enabled by the arch.
4799         (all_architectures): Likewise.
4800         (aarch64_parse_extension): Move to here.
4801         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4802         rework.
4803         (aarch64_rewrite_selected_cpu): Update for above change.
4804         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4805         are handled, such that the single explicit value enabled by an
4806         extension is kept seperate from the implicit values it also enables.
4807         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4808         to here.
4809         (aarch64_parse_extension): New.
4810         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4811         here to config/aarch64/aarch64-protos.h.
4812         (aarch64_parse_extension): Move from here to
4813         common/config/aarch64/aarch64-common.c.
4814         (aarch64_option_print): Update.
4815         (aarch64_declare_function_name): Likewise.
4816         (aarch64_start_file): Likewise.
4817         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4818         the canonical flag for extensions.
4819         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4820         flags.
4821
4822 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4823
4824         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4825         AARCH64_FL_CRC.
4826
4827 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4828
4829         PR tree-optimization/68953
4830         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4831         first to last subscript.
4832
4833 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4834
4835         PR tree-optimization/70586
4836         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4837         for any calls.
4838
4839 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4840
4841         PR lto/70289
4842         PR ipa/70348
4843         PR tree-optimization/70373
4844         PR middle-end/70533
4845         PR middle-end/70534
4846         PR middle-end/70535
4847         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
4848         clauses for acc parallel reductions as necessary.  Error on those
4849         that are private.
4850         * omp-low.c (scan_sharing_clauses): Don't install variables which
4851         are used in acc parallel reductions.
4852         (lower_rec_input_clauses): Remove dead code.
4853         (lower_oacc_reductions): Add support for reference reductions.
4854         (lower_reduction_clauses): Remove dead code.
4855         (lower_omp_target): Don't remap variables appearing in acc parallel
4856         reductions.
4857         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
4858
4859 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
4860
4861         PR middle-end/70593
4862         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
4863         with multiple SSA_NAME defs, force the outputs other than first
4864         to be live before calling live_track_process_def on each output.
4865
4866         PR rtl-optimization/70574
4867         * fwprop.c (forward_propagate_and_simplify): Don't add
4868         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
4869         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
4870         paradoxical subregs within *loc.
4871
4872 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
4873
4874         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
4875         -ftree-parallelize-loops={0,1}.
4876         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
4877         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
4878         * config/ia64/hpux.h (LIB_SPEC): Likewise.
4879         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4880         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
4881
4882 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
4883
4884         PR sanitizer/70541
4885         * asan.c (instrument_derefs): If we get unknown location, extract it
4886         with EXPR_LOCATION.
4887         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
4888
4889 2016-04-08  Tom de Vries  <tom@codesourcery.com>
4890
4891         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
4892         implicit firstprivate clause.
4893
4894 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4895
4896         PR target/70566
4897         * config/arm/thumb2.md (tst + branch-> lsls + branch
4898         peephole below *orsi_not_shiftsi_si): Require that condition
4899         register is dead after the peephole.
4900         (second peephole after the above): Likewise.
4901
4902 2016-04-08  Alan Modra  <amodra@gmail.com>
4903
4904         PR target/70117
4905         * builtins.c (fold_builtin_classify): For IBM extended precision,
4906         look at just the high-order double to test for NaN.
4907         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
4908         test just the high double for Inf but both doubles for subnormal
4909         limit.
4910
4911 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
4912
4913         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
4914         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
4915         node->simdclone->mask_mode != VOIDmode masks.
4916         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
4917         earlier, use it instead of node->simdclone.
4918         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4919         Set clonei->mask_mode.
4920
4921 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4922
4923         PR c/70436
4924         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
4925         Pass it through to cp_parser_already_scoped_statement.
4926         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
4927         it through to cp_parser_statement.
4928         (cp_parser_statement): Pass IF_P through to
4929         cp_parser_iteration_statement.
4930         (cp_parser_pragma): Adjust call to
4931         cp_parser_iteration_statement.
4932
4933 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4934
4935         PR c/70436
4936         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
4937         resolve a future -Wparentheses warning.
4938         * omp-low.c (scan_sharing_clauses): Likewise.
4939         * tree-parloops.c (eliminate_local_variables): Likewise.
4940
4941 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
4942
4943         PR rtl-optimization/70398
4944         * lra-constraints.c (process_address_1): Check zero scale and code
4945         for reloading with zero scale.
4946
4947 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
4948
4949         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
4950         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
4951
4952 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
4953
4954         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4955         Add support for AVX512F clones, include them by default for
4956         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
4957         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
4958         up to 128.
4959
4960         PR middle-end/70550
4961         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
4962         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
4963         firstprivate clauses.
4964         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
4965         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
4966         (lower_omp_target): Set TREE_NO_WARNING for
4967         non-addressable possibly uninitialized vars which are copied into
4968         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
4969
4970 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
4971
4972         * config/pa/predicates.md (integer_store_memory_operand): Accept
4973         REG+D operands with a large offset when reload_in_progress is true.
4974         (floating_point_store_memory_operand): Likewise.
4975
4976 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4977
4978         PR c++/70336
4979         * match.pd (nested int casts): Limit to GIMPLE.
4980
4981 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
4982
4983         PR ipa/66223
4984         * ipa-devirt.c (maybe_record_node): Fix comment; use
4985         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
4986
4987 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR rtl-optimization/70542
4990         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
4991         if there are any uses other than insn or debug insns.
4992
4993 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
4994             Jakub Jelinek  <jakub@redhat.com>
4995
4996         PR tree-optimization/70509
4997         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
4998         Shift HOST_WIDE_INT_1U instead of 1.
4999
5000 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5001
5002         PR tree-optimization/70509
5003         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5004         of the vector base type for index.
5005
5006 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5007
5008         PR target/70510
5009         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5010
5011 2016-04-05  Richard Biener  <rguenther@suse.de>
5012
5013         PR tree-optimization/70526
5014         * tree-sra.c (build_ref_for_offset): Use prev_base to
5015         extract the alias pointer type.
5016
5017 2016-04-05  Richard Biener  <rguenther@suse.de>
5018
5019         * dse.c (struct store_info): Remove alias_set member.
5020         (struct read_info_type): Likewise.
5021         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5022         spill_deleted, clear_alias_set_lookup): Remove.
5023         (get_group_info): Remove dead base == NULL_RTX case.
5024         (dse_step0): Remove initialization of removed variables.
5025         (delete_dead_store_insn): Reomve alias set dumping.
5026         (free_read_records): Remove alias_set handling.
5027         (canon_address): Remove alias_set_out parameter.
5028         (record_store): Remove spill_alias_set, it's always zero.
5029         (check_mem_read_rtx): Likewise.
5030         (dse_step2): Rename from ...
5031         (dse_step2_nospill): ... this.  Adjust.
5032         (scan_stores): Rename from ...
5033         (scan_stores_nospill): ... this.
5034         (scan_reads): Rename from ...
5035         (scan_reads_nospill): ... this.
5036         (scan_stores_spill, scan_reads_spill): Remove.
5037         (dse_step3_scan): Remove for_spills argument which is always false.
5038         (dse_step3): Likewise.
5039         (dse_step5): Rename from ...
5040         (dse_step5_nospill): ... this.  Remove alias_set handling.
5041         (rest_of_handle_dse): Adjust.
5042
5043 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5044
5045         PR target/70525
5046         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5047         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5048         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5049         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5050
5051 2016-04-05  Richard Biener  <rguenther@suse.de>
5052
5053         PR middle-end/70499
5054         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5055         non-register type temporaries into SSA.
5056
5057 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5058
5059         PR ipa/66223
5060         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5061         calls when sanitizing.
5062         (possible_polymorphic_call_target_p): Fix formatting.
5063
5064 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5065             Jakub Jelinek <jakub@redhat.com>
5066
5067         PR middle-end/70457
5068         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5069         to ensure a call statement is compatible with a built-in's
5070         prototype.
5071         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5072         Likewise.
5073
5074 2016-04-04  Richard Biener  <rguenther@suse.de>
5075
5076         PR rtl-optimization/70484
5077         * rtl.h (canon_output_dependence): Declare.
5078         * alias.c (canon_output_dependence): New function.
5079         * dse.c (record_store): Use canon_output_dependence rather
5080         than canon_true_dependence.
5081
5082 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5083
5084         PR ipa/68881
5085         * cgraph.h (symtab_node::copy_visibility_from): New function.
5086         * symtab.c (symtab_node::copy_visibility_from): New function.
5087         * ipa-visibility.c (optimize_weakref): New function.
5088         (function_and_variable_visibility): Use it.
5089
5090 2016-04-04  Martin Liska  <mliska@suse.cz>
5091
5092         PR hsa/70402
5093         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5094         value that is really in range handled by SBR instruction.
5095         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5096         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5097         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5098
5099 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5100
5101         PR target/70416
5102         PR target/67391
5103         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5104         set, but not for SP_REG operands.
5105
5106 2016-04-02  Martin Sebor  <msebor@redhat.com>
5107
5108         PR c++/67376
5109         * fold-const.c (maybe_nonzero_address): New function.
5110         (fold_comparison): Call it.  Fold equality and relational
5111         expressions involving null pointers.
5112         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5113
5114 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5115
5116         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5117         the "Y" constraint (scalar FP 0.0 immediate).
5118
5119         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5120         Add the "const_double" to the list of operand constraints.
5121
5122 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5123
5124         PR rtl-optimization/70467
5125         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5126         If low word of the last operand is 0, just emit addition/subtraction
5127         for the high word.
5128
5129 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5130
5131         PR target/70404
5132         * config/s390/s390.c (s390_expand_insv): Check for everything
5133         constant instead of just VOIDmode stuff.
5134
5135 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5136
5137         PR target/70496
5138         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5139
5140 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5141
5142         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5143
5144 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5145
5146         PR rtl-optimization/70461
5147         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5148         is necessary.
5149
5150 2016-03-31  Martin Liska  <mliska@suse.cz>
5151
5152         PR hsa/70399
5153         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5154         a tree value or an immediate integer value to a buffer
5155         that is eventually copied to a BRIG section.
5156         (emit_immediate_operand): Call the function here.
5157         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5158         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5159         of class' fields that are removed.
5160         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5161         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5162         m_brig_repr_size fields.
5163
5164 2016-03-31  Martin Liska  <mliska@suse.cz>
5165
5166         PR hsa/70391
5167         * hsa-gen.c (hsa_function_representation::update_dominance): New
5168         function.
5169         (convert_addr_to_flat_segment): Likewise.
5170         (gen_hsa_memory_set): New alignment argument.
5171         (gen_hsa_ctor_assignment): Likewise.
5172         (gen_hsa_insns_for_single_assignment): Provide alignment
5173         to gen_hsa_ctor_assignment.
5174         (gen_hsa_insns_for_direct_call): Add new argument.
5175         (expand_lhs_of_string_op): New function.
5176         (expand_string_operation_builtin): Likewise.
5177         (expand_memory_copy): New function.
5178         (expand_memory_set): New function.
5179         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5180         (convert_switch_statements): Change signature.
5181         (generate_hsa): Use a return value of the function.
5182         (pass_gen_hsail::execute): Do not call
5183         convert_switch_statements here.
5184         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5185         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5186         (hsa_function_representation::update_dominance): New function.
5187
5188 2016-03-31  Martin Liska  <mliska@suse.cz>
5189
5190         PR hsa/70391
5191         * hsa-brig.c (emit_directive_variable): Emit alignment
5192         according to hsa_symbol::m_align.
5193         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5194         (dump_hsa_symbol): Dump alignment of HSA symbols.
5195         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5196         (gen_hsa_addr_with_align): New function.
5197         (hsa_bitmemref_alignment): Use newly added function.
5198         (gen_hsa_insns_for_load): Likewise.
5199         (gen_hsa_insns_for_store): Likewise.
5200         (gen_hsa_memory_copy): New argument added.
5201         (gen_hsa_insns_for_single_assignment): Respect
5202         alignment for assignments processed via gen_hsa_memory_copy.
5203         (gen_hsa_insns_for_direct_call): Likewise.
5204         (gen_hsa_insns_for_return): Likewise.
5205         (gen_function_def_parameters): Set default alignment.
5206         * hsa.c (hsa_object_alignment): New function.
5207         (hsa_byte_alignment): Pasted function.
5208         * hsa.h (hsa_symbol::m_align): New field.
5209
5210 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5211
5212         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5213         scratch field for goto case.
5214
5215 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5216
5217         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5218
5219 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5220
5221         PR target/70442
5222         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5223         (scalar_chain::convert_insn): Call convert_op for reg
5224         moves to handle undefined registers.
5225
5226 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5227
5228         PR c++/70393
5229         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5230         Assert we don't want to move backwards.
5231
5232 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5233
5234         PR target/70453
5235         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5236
5237 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5238
5239         PR rtl-optimization/70460
5240         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5241         with operand from REG_LABEL_OPERAND, instead substitute
5242         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5243         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5244
5245 2016-03-31  Martin Liska  <mliska@suse.cz>
5246
5247         * passes.c (execute_one_pass): Do not call
5248         todo_after for a discarded function.
5249
5250 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5251
5252         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5253         (no_cost, infinite_cost): Initialize the new field.
5254         (get_computation_cost_at): Record setup cost.
5255         (determine_use_iv_cost_address): Skip cost computation for sub
5256         uses if we can estimate it without losing accuracy.
5257
5258 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5259
5260         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5261         estimates here.
5262         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5263         max_loop_iterations_int.
5264         (tree_unswitch_outer_loop): Likewise.
5265         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5266         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5267
5268 2016-03-30  Richard Biener  <rguenther@suse.de>
5269
5270         PR middle-end/70450
5271         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5272
5273 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5274
5275         PR target/70421
5276         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5277         in gen_blendm expander.
5278
5279 2016-03-30  Nick Clifton  <nickc@redhat.com>
5280
5281         PR target/62254
5282         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5283         case where we are already provided with an SImode SUBREG.
5284
5285 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5286
5287         PR target/70439
5288         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5289         conflict between DRAP register and __builtin_eh_return.
5290
5291 2016-03-30  Michael Matz  <matz@suse.de>
5292             Richard Biener  <rguenther@suse.de>
5293
5294         PR ipa/12392
5295         * ipa-polymorphic-call.c (struct type_change_info): Change
5296         speculative to an unsigned allowing to limit the work we do.
5297         (csftc_abort_walking_p): New inline function..
5298         (check_stmt_for_type_change): Limit the number of may-defs
5299         skipped for speculative devirtualization to
5300         max-speculative-devirt-maydefs.
5301         * params.def (max-speculative-devirt-maydefs): New param.
5302         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5303
5304 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5305
5306         PR target/63890
5307         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5308         and TARGET_MACHO.
5309
5310 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5311
5312         PR tree-optimization/59124
5313         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5314         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5315
5316 2016-03-29  Jeff Law  <law@redhat.com>
5317
5318         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5319
5320 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5321
5322         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5323         to HOST_WIDE_INT.
5324
5325 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5326
5327         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5328         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5329         gcrt0.o if linking dynamically.
5330
5331 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5332
5333         PR ipa/70283
5334         * ipa-devirt.c (methods_equal_p): New function.
5335         (compare_virtual_tables): Use it.
5336         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5337         * cgraphclones.c (clone_function_name_1): Use
5338         symbol_table::symbol_suffix_separator.
5339         * coverage.c (build_var): Likewise.
5340         * symtab.c (symbol_table::symbol_suffix_separator): New.
5341
5342 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5343
5344         PR rtl-optimization/70429
5345         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5346         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5347         mode != result_mode.
5348
5349         PR c++/70353
5350         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5351
5352         PR tree-optimization/70405
5353         * ssa-iterators.h (num_imm_uses): Add missing braces.
5354
5355 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5356
5357         PR rtl-optimization/68695
5358         * ira-color.c (allocno_copy_cost_saving): New.
5359         (improve_allocation): Use it.
5360
5361 2016-03-29  Richard Henderson  <rth@redhat.com>
5362
5363         PR middle-end/70355
5364         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5365
5366 2016-03-29  Richard Biener  <rguenther@suse.de>
5367
5368         PR middle-end/70424
5369         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5370         use alignment returned by get_pointer_alignment_1 if it is
5371         bigger than BITS_PER_UNIT.
5372         * builtins.c (get_pointer_alignment_1): Do not return true
5373         for alignment extracted from SSA info.
5374
5375 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5376
5377         * config/ft32/ft32.opt (mnodiv): New.
5378         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5379         * doc/invoke.texi (FT32 Options -mnodiv): New.
5380
5381 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5382
5383         PR target/70406
5384         * config/i386/i386.md (define_split, andn): Fix modes.
5385
5386 2016-03-26  Richard Biener  <rguenther@suse.de>
5387             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5388
5389         PR ipa/70366
5390         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5391         instead of
5392         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5393         as 2nd argument to cl_optimization_restore().
5394
5395 2016-03-25  Richard Henderson  <rth@redhat.com>
5396
5397         PR target/70120
5398         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5399         * config/aarch64/aarch64-protos.h: Declare it.
5400         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5401
5402 2016-03-25  Alan Modra  <amodra@gmail.com>
5403
5404         PR target/70052
5405         * config/rs6000/constraints.md (j): Simplify.
5406         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5407         decimal float 0.D.
5408         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5409         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5410          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5411         in all constraint alternatives.
5412         (movtd_64bit_nodm): Delete "j" constraint alternative.
5413
5414 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5415
5416         * tree-ssa-propagate.c: Enhance docs for
5417         SSA_PROP_NOT_INTERESTING.
5418
5419 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5420
5421         * doc/extend.texi: Fix typo in documentation to pure attribute.
5422
5423 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5424
5425         PR target/70319
5426         * config/pa/pa.md (bswapdi2): Use a scratch register.
5427
5428 2016-03-24  Richard Henderson  <rth@redhat.com>
5429
5430         PR middle-end/69845
5431         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5432         overflow.
5433
5434 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5435
5436         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5437         using ix86_expand_binary_operator instead of gen_andsi3.
5438
5439 2016-03-24  Richard Biener  <rguenther@suse.de>
5440
5441         PR tree-optimization/70396
5442         * tree-vect-stmts.c (vectorizable_comparison): Use
5443         get_vectype_for_scalar_type.
5444
5445 2016-03-24  Richard Biener  <rguenther@suse.de>
5446
5447         PR middle-end/70370
5448         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5449         with register bases.
5450
5451 2016-03-24  Richard Biener  <rguenther@suse.de>
5452
5453         PR tree-optimization/70372
5454         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5455         build_all_ones_cst to also handle vector types correctly.
5456
5457 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5458
5459         PR target/70381
5460         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5461         -mfloat128 here.
5462
5463 2016-03-23  Marek Polacek  <polacek@redhat.com>
5464
5465         PR c++/69884
5466         * doc/invoke.texi: Document -Wignored-attributes.
5467
5468 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5469
5470         PR tree-optimization/69042
5471         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5472         parameter from 30 to 40.
5473
5474 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5475
5476         PR tree-optimization/69042
5477         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5478         for use with constant offset stripped in base.
5479
5480 2016-03-23  Richard Biener  <rguenther@suse.de>
5481
5482         PR middle-end/70251
5483         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5484         mode compatibility check.
5485         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5486
5487 2016-03-23  Jeff Law  <law@redhat.com>
5488
5489         PR tree-optimization/64058
5490         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5491         CONFLICT_COUNT.
5492         (struct ssa_conflicts): Move up earlier in the file.
5493         (conflicts_, var_map_): New static variables.
5494         (initialize_conflict_count): New function to initialize the
5495         CONFLICT_COUNT field for each conflict pair.
5496         (compare_pairs): Lazily initialize the conflict count and use it
5497         as the first tie-breaker.
5498         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5499         and wipe conflicts_ and map_ around the call to qsort.  Remove
5500         special case for 2 coalesce pairs.
5501         * bitmap.c (bitmap_count_unique_bits): New function.
5502         (bitmap_count_bits_in_word): New function, extracted from
5503         bitmap_count_bits.
5504         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5505         * bitmap.h (bitmap_count_unique_bits): Declare it.
5506
5507 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5508
5509         PR target/69917
5510         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5511         transparent alias chain for decl assembler name.
5512         * config/sol2.c (solaris_assemble_visibility): Likewise.
5513
5514 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5515
5516         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5517         duration.
5518         (v10_fdivs): Likewise.
5519         (v10_fdivd): Likewise.
5520
5521 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5522
5523         PR driver/70132
5524         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5525         to not call fclose twice on file.
5526
5527 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5528
5529         PR tree-optimization/70354
5530         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5531         oprnd0 is wider than oprnd1 and there is a cast from the wider
5532         type to oprnd1, mask it with the mask of the narrower type.
5533
5534         PR target/70321
5535         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5536         Optimize TARGET_STV splitters, if high or low word of last argument
5537         is 0 or -1.
5538
5539 2016-03-22  Jeff Law  <law@redhat.com>
5540
5541         PR target/70232
5542         tree-ssa-threadbackward.c
5543         (fsm_find_control_statement_thread_paths): Correctly distinguish
5544         between old style jump threads vs FSM jump threads.
5545
5546 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5547
5548         PR target/70302
5549         * config/i386/i386.c (scalar_chain::convert_op): Support
5550         uninitialized register usage case.
5551
5552 2016-03-22  Richard Biener  <rguenther@suse.de>
5553
5554         PR middle-end/70251
5555         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5556         int...
5557         (capture::gen_transform): ... to change behavior when substituting
5558         a condition into cond or not-cond expr context.
5559         (dt_simplify::gen_1): Adjust.
5560         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5561         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5562         last change and instead change to
5563         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5564         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5565
5566 2016-03-22  Anthony Green  <green@moxielogic.com>
5567
5568         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5569         issue for moxiebox targets.
5570         (CC1PLUS_SPEC): Ditto.
5571
5572 2016-03-22  Richard Biener  <rguenther@suse.de>
5573
5574         PR middle-end/70333
5575         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5576         in the wide type.
5577
5578 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5579
5580         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5581
5582 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5583
5584         PR target/70325
5585         * config/i386/i386.c (def_builtin): Handle
5586         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5587         bits.
5588         (const struct builtin_description bdesc_special_args[]):
5589         Remove duplicate ISA bits.
5590
5591 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5592
5593         PR target/70329
5594         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5595         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5596         in a way that works also for AVX512BW.
5597
5598         PR target/70300
5599         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5600         instead of source if operands[1] is xmm16 and above and
5601         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5602         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5603
5604         PR c++/70295
5605         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5606         on assign if (*from_p) is a comparison, set it to
5607         TREE_NO_WARNING (*from_p).
5608
5609 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5610
5611         PR middle-end/70326
5612         * lra.c (restore_scratches): Ignore deleted insns.
5613
5614 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5615             Jakub Jelinek  <jakub@redhat.com>
5616
5617         PR tree-optimization/70317
5618         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5619         to HONOR_NANS.
5620
5621 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5622
5623         PR target/70327
5624         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5625         of ix86_expand_move.
5626         (movoi): Ditto.
5627         (movti): Use general_operand for operand 1 predicate.
5628
5629 2016-03-21  Martin Liska  <mliska@suse.cz>
5630
5631         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5632         insns.
5633         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5634
5635 2016-03-21  Martin Liska  <mliska@suse.cz>
5636
5637         PR ipa/70306
5638         * ipa-icf.c (sem_function::parse): Skip static
5639         constructors and destructors.
5640
5641 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5642
5643         PR target/70296
5644         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5645         function-like macro, peek following token(s) if it is followed
5646         by CPP_OPEN_PAREN token with optional padding in between, and
5647         if not, don't treat it like a macro.
5648
5649 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5650             Alexander Monakov  <amonakov@ispras.ru>
5651
5652         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5653         for the stabs debug format.
5654
5655 2016-03-21  Richard Biener  <rguenther@suse.de>
5656
5657         PR tree-optimization/70310
5658         * tree-vect-generic.c (expand_vector_condition): Fold the built
5659         condition.
5660
5661 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5662
5663         PR target/70293
5664         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5665         Block third alternative for AVX-512VL target,
5666
5667 2016-03-21  Martin Liska  <mliska@suse.cz>
5668
5669         PR hsa/70234
5670         * hsa-brig.c (emit_function_directives): Mark unemitted
5671         global variables for emission.
5672         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5673         (get_symbol_for_decl): Likewise.
5674         * hsa.h (struct hsa_symbol): New flag.
5675
5676 2016-03-21  Richard Biener  <rguenther@suse.de>
5677
5678         PR tree-optimization/70288
5679         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5680         we do not estimate unsimplified all-constant conditionals or
5681         switches as optimized away.
5682
5683 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5684
5685         PR rtl-optimization/69102
5686         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5687         when we have a readonly dependency context.
5688
5689 2016-03-18  Jeff Law  <law@redhat.com>
5690
5691         PR rtl-optimization/70263
5692         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5693         (update_equiv_regs): When trying to move a store to after the insn
5694         that sets the source of the store, make sure the store occurs after
5695         the insn that sets the source of the store.  When successful note
5696         the REG_EQUIV note created in the dump file.
5697
5698 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5699             Bernd Schmidt  <bschmidt@redhat.com>
5700
5701         * doc/extend.texi: Document more potential problems with basic asms.
5702
5703 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5704
5705         PR rtl-optimization/70278
5706         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5707         VOIDmode.
5708
5709 2016-03-18  Jason Merrill  <jason@redhat.com>
5710
5711         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5712
5713 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5714
5715         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5716         values to 128b regs.
5717
5718 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5719
5720         PR tree-optimization/70252
5721         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5722         boolean vector has a proper number of elements.
5723         (supportable_narrowing_operation): Likewise.
5724
5725 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5726
5727         PR ipa/70269
5728         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5729
5730 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5731
5732         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5733         instead of replace_rtx for DEBUG_INSNs.
5734
5735 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5736
5737         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5738         load type reservations.
5739
5740 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5741
5742         PR target/70188
5743         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5744         define_constraint for "Q" and "T" constraints.
5745
5746 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5747
5748         Tweak the pipeline model for Exynos M1
5749
5750         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5751         model.
5752
5753 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5754
5755         PR c/70264
5756         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5757         where one or both locations aren't within a line_map.
5758
5759 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5760
5761         PR driver/70192
5762         * opts.c (finish_options): Don't set flag_pie to the default if
5763         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5764         if it is -1.
5765
5766 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5767
5768         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5769         true as ALL_REGS argument to replace_rtx.
5770
5771 2016-03-17  Richard Biener  <rguenther@suse.de>
5772
5773         PR debug/70271
5774         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5775         last.
5776
5777 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5778
5779         PR target/70245
5780         * rtl.h (replace_rtx): Add ALL_REGS argument.
5781         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5782         equality and assert mode is the same, instead of just rtx pointer
5783         equality.
5784         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5785         true as ALL_REGS argument to replace_rtx.
5786
5787 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5788
5789         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5790         for boolean vector with vector mode only.
5791         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5792
5793 2016-03-17  Nick Clifton  <nickc@redhat.com>
5794
5795         PR target/70162
5796         * config/rx/rx.c (rx_print_integer): Print negative constants in
5797         decimal.
5798
5799 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5800
5801         PR target/70261
5802         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5803
5804 2016-03-16  Richard Henderson  <rth@redhat.com>
5805             Richard Biener  <rguenth@suse.de>
5806
5807         PR middle-end/70240
5808         PR middle-end/68215
5809         PR tree-opt/68714
5810         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5811         first operand as is_gimple_condexpr.
5812
5813         PR middle-end/70240
5814         PR middle-end/68215
5815         Revert r231575
5816         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5817         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5818         Do not gimplify the result.
5819         (do_unop): Adjust call to tree_vec_extract.
5820         (do_binop): Likewise.
5821         (do_compare): Likewise.
5822         (do_plus_minus): Likewise.
5823         (do_negate): Likewise.
5824         (expand_vector_condition): Likewise.
5825         (do_cond): Likewise.
5826
5827 2016-03-16  Richard Henderson  <rth@redhat.com>
5828
5829         PR target/70048
5830         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5831         (aarch64_classify_address): Use it.
5832         (aarch64_legitimize_address): Force all subexpressions of PLUS
5833         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5834
5835 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5836             Richard Biener  <rguenth@suse.de>
5837
5838         PR target/70245
5839         * rtlanal.c (replace_rtx): For REG, if from is a REG,
5840         return to even if only REGNO is equal, and assert
5841         mode is the same.
5842
5843 2016-03-11  Jeff Law  <law@redhat.com>
5844
5845         PR rtl-optimization/70224
5846         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
5847
5848 2016-03-16  Richard Henderson  <rth@redhat.com>
5849
5850         PR middle-end/70199
5851         * function.h (struct function): Add has_forced_label_in_static.
5852         * gimplify.c (force_labels_r): Set it.
5853         * lto-streamer-in.c (input_struct_function_base): Read it.
5854         * lto-streamer-out.c (output_struct_function_base): Write it.
5855         * tree-inline.c (has_label_address_in_static_1): Remove.
5856         (copy_forbidden): Remove fndecl parameter; test
5857         has_forced_label_in_static.
5858         (inline_forbidden_p): Update call to copy_forbidden.
5859         (tree_versionable_function_p): Likewise.
5860         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
5861         (chkp_versioning): Likewise.
5862         * tree-inline.h (copy_forbidden): Update decl.
5863
5864 2016-03-16  Marek Polacek  <polacek@redhat.com>
5865
5866         PR c/70093
5867         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
5868         function being thunked if the result type doesn't have fixed size.
5869         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
5870         doesn't have fixed size.
5871
5872 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
5873
5874         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
5875         reporting malformed loop nest.
5876
5877 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5878
5879         PR lto/70187
5880         * ipa-devirt.c (possible_polymorphic_call_targets): Move
5881         nodes.length () == 1 test to before first nodes[0] access.
5882
5883 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5884
5885         PR tree-optimization/68715
5886         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
5887         single_pred_p test.
5888
5889 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5890
5891         PR tree-optimization/68809
5892         * graphite-scop-detection.c (same_close_phi_node): Test if result types
5893         are the same.
5894
5895 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
5896             Sandra Loosemore  <sandra@codesourcery.com>
5897
5898         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
5899         on leaf attribute. Mention ELF interposition problems.
5900
5901 2016-03-16  Alan Modra  <amodra@gmail.com>
5902
5903         PR rtl-optimization/69195
5904         PR rtl-optimization/47992
5905         * ira.c (indirect_jump_optimize): Ignore artificial defs.
5906         Add comments.
5907
5908 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5909
5910         PR bootstrap/69513
5911         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
5912
5913 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5914
5915         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
5916
5917 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
5918
5919         PR rtl-optimization/70222
5920         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
5921         optimization if mode is different from result_mode, queue up masking
5922         of the result in outer_op.  Formatting fix.
5923
5924         PR middle-end/70239
5925         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
5926         of safe_grow.
5927
5928 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5929
5930         PR rtl-optimization/69032
5931         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
5932         looping backwards over basic block insns.
5933
5934 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5935
5936         PR target/66660
5937         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
5938         to non-speculative when propagating trap bits.
5939
5940 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5941
5942         PR rtl-optimization/63384
5943         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
5944         DEBUG_INSN_P insns.
5945
5946 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5947
5948         PR target/64411
5949         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
5950         factored out from ...
5951         (sched_analyze_insn): ... here.
5952         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
5953         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
5954         get_implicit_reg_pending_clobbers in it.
5955         (setup_id_reg_sets): Use setup_id_implicit_regs.
5956         (deps_init_id): Ditto.
5957
5958 2016-03-15  Tom de Vries  <tom@codesourcery.com>
5959
5960         PR ipa/70161
5961         * cgraph.c (cgraph_node::get_body): Save, reset and restore
5962         dump_file_name.
5963         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
5964         execute_function_dump.
5965         (execute_one_pass): Don't dump function if it will be dumped after ipa
5966         transform.
5967
5968 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
5969
5970         * genrecog.c (match_pattern_2): If pred is NULL don't call
5971         safe_predicate_mode on it.
5972
5973 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
5974
5975         PR middle-end/70219
5976         * lra-constraints.c (delete_move_and_clobber): Change assertion
5977         to also allow dregno == 0.
5978
5979 2016-03-14  Richard Henderson  <rth@redhat.com>
5980
5981         PR tree-opt/68714
5982         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
5983         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
5984         (reassociate_bb): Use optimize_vec_cond_expr; avoid
5985         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
5986         on vectors.
5987
5988 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
5989
5990         PR target/70083
5991         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
5992         regs.
5993         (lra_create_live_ranges_1): initialize hard register biggest_mode to
5994         VOIDmode.
5995         * lra-constraints.c (split_reg): For hard regs, try to find the
5996         biggest single-register mode used in the function.
5997
5998 2016-03-14  Richard Biener  <rguenther@suse.de>
5999
6000         PR tree-optimization/56365
6001         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6002         constants to compare against.
6003
6004 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6005
6006         PR target/70098
6007         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6008         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6009         (define_split for the GPR case): Use int_reg_operand instead of
6010         gpc_reg_operand for the output.
6011
6012 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6013
6014         PR tree-optimization/70045
6015         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6016         create_empty_if_region_on_edge argument.
6017
6018 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6019
6020         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6021         (STACK_CHECK_PROTECT): Likewise.
6022         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6023         (STACK_CHECK_PROTECT): Likewise.
6024         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6025         (STACK_CHECK_PROTECT): Likewise.
6026         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6027         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6028         (STACK_CHECK_PROTECT): Likewise.
6029
6030 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6031
6032         PR rtl-optimization/69307
6033         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6034         registers in modes that span more than one register.
6035
6036 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6037
6038         PR target/69614
6039         * lra-constraints.c (delete_move_and_clobber): New.
6040         (remove_inheritance_pseudos): Use it.
6041
6042 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6043
6044         PR ada/70017
6045         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6046         the libcall is LCT_THROW.
6047         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6048         for the checking routine.
6049
6050 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6051
6052         PR target/70131
6053         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6054         optimization if we have direct move.
6055         (roundu32<mode>2_fprs): Likewise.
6056
6057 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6058
6059         PR target/70123
6060         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6061         be rematerialized.
6062         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6063         Arguments swapped.  All callers changed.  Take reg_renumber into
6064         account, and Calculate and compare register ranges for hard regs.
6065
6066 2016-03-11  Jeff Law  <law@redhat.com>
6067
6068         PR tree-optimization/70190
6069         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6070         Handle cases where we can not extract the taken edge, even though we
6071         found a constant value.
6072
6073         PR tree-optimization/64058
6074         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6075         (num_coalesce_pairs): Move up earlier in file.
6076         (find_coalesce_pair): Initialize the INDEX field for each pair
6077         discovered.
6078         (compare_pairs): No longer sort on the elements in each pair.
6079         Instead break ties with the index of the coalesce pair.
6080
6081 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6082
6083         PR target/70002
6084         * config/aarch64/aarch64-protos.h
6085         (aarch64_save_restore_target_globals): New prototype.
6086         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6087         Call the above when popping pragma.
6088         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6089         New function.
6090         (aarch64_set_current_function): Rewrite using the above.
6091
6092 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6093
6094         PR tree-optimization/70177
6095         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6096         (extract_ops_from_tree): ... this.  In the 2 argument
6097         overload remove _1 suffix.
6098         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6099         (extract_ops_from_tree): ... this.
6100         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6101         Adjust callers.
6102         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6103         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6104         extract_ops_from_tree instead of 2 operand one.
6105
6106 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6107
6108         PR tree-optimization/70013
6109         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6110         for constant-pool entries.
6111
6112 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6113
6114         PR rtl-optimization/70174
6115         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6116         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6117
6118         PR tree-optimization/70169
6119         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6120         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6121         for unknown codes.
6122
6123 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6124             Jakub Jelinek  <jakub@redhat.com>
6125
6126         PR target/70160
6127         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6128         of uninitialized values.
6129
6130 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6131
6132         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6133         define_expand.
6134         ("*trunctddd2"): New pattern definition.
6135         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6136         TD->DD truncation.
6137
6138 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6139
6140         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6141         definitions for BFP and DFP rounding modes.
6142         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6143         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6144         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6145         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6146         numbers.
6147
6148 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6149
6150         * config/s390/constraints.md: Adjust comment.
6151         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6152         s390_decompose_addrstyle_without_index.
6153         * config/s390/predicates.md (shift_count_or_setmem_operand):
6154         Rename to setmem_operand.
6155         * config/s390/s390-protos.h
6156         (s390_decompose_shift_count): Rename to
6157         s390_decompose_addrstyle_without_index.
6158         * config/s390/s390.c (s390_decompose_shift_count)
6159         (s390_mem_constraint, print_shift_count_operand)
6160         (print_operand_address, print_operand): Rename
6161         s390_decompose_shift_count to
6162         s390_decompose_addrstyle_without_index and rename
6163         print_shift_count_operand to print_addrstyle_operand troughout the
6164         file.
6165         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6166         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6167         Rename shift_count_or_setmem_operand to setmem_operand.
6168         * config/s390/vx-builtins.md ("vec_insert<mode>")
6169         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6170         nonmemory_operand.
6171
6172 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6173
6174         PR target/70168
6175         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6176         Handle overlapping retval and newval.
6177
6178 2016-03-10  Nick Clifton  <nickc@redhat.com>
6179
6180         PR target/7044
6181         * config/aarch64/aarch64.c
6182         (aarch64_override_options_after_change_1): When forcing
6183         flag_omit_frame_pointer to be true, use a special value that can
6184         be detected if this function is called again, thus preventing
6185         flag_omit_leaf_frame_pointer from being forced to be false.
6186
6187 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6188
6189         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6190         Set x_flag_omit_leaf_frame_pointer when handling
6191         -momit-leaf-frame-pointer.
6192
6193 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6194
6195         PR lto/69589
6196         * cgraph.c (cgraph_node::dump): Dump split_part and
6197         indirect_call_target.
6198         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6199         * ipa.c (has_addr_references_p): Cleanup.
6200         (is_indirect_call_target_p): New.
6201         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6202         called indirectly as local.
6203         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6204
6205 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6206
6207         PR ipa/69630
6208         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6209         on cxa_pure_virtual.
6210
6211 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6212
6213         PR lto/69589
6214         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6215
6216 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6217
6218         PR lto/69589
6219         * tree.c (need_assembler_name_p): Only record main variant type names.
6220
6221 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6222
6223         PR target/70113.
6224         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6225         Always define to 0 or 1.
6226         (TARGET_FIX_ERR_A53_843419): New macro.
6227         * config/aarch64/aarch64-elf-raw.h
6228         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6229         * config/aarch64/aarch64-linux.h: Likewise.
6230         * config/aarch64/aarch64.c
6231         (aarch64_override_options_after_change_1): Do not default
6232         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6233         843419 is on.
6234         (aarch64_attributes): Handle fix-cortex-a53-843419.
6235         (aarch64_can_inline_p): Likewise.
6236         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6237
6238 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6239         Jakub Jelinek <jakub@redhat.com>
6240
6241         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6242         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6243         DECL_COMMONS if flag_unconstrained_commons is set.
6244         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6245         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6246         (funconstrained-commons): Document.
6247
6248 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6249
6250         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6251         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6252
6253 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6254
6255         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6256         has a proper number of elements.
6257
6258 2016-03-10  Alan Modra  <amodra@gmail.com>
6259
6260         PR rtl-optimization/69195
6261         PR rtl-optimization/47992
6262         * ira.c (recorded_label_ref): Delete.
6263         (update_equiv_regs): Return void.
6264         (indirect_jump_optimize): New function.
6265         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6266         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6267         Delete update_regstat.
6268
6269 2016-03-10  Richard Biener  <rguenther@suse.de>
6270
6271         PR tree-optimization/70128
6272         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6273         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6274
6275 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6276
6277         PR tree-optimization/70152
6278         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6279         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6280
6281         PR target/70086
6282         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6283         instead of gen_sse2_loadlpd.
6284         * config/i386/sse.md (*vec_concatv2df): Rename to...
6285         (vec_concatv2df): ... this.
6286
6287         PR tree-optimization/70127
6288         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6289
6290 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6291
6292         PR c/68473
6293         PR c++/70105
6294         * diagnostic-show-locus.c (compatible_locations_p): New function.
6295         (layout::layout): Sanitize ranges using compatible_locations_p.
6296
6297 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6298
6299         PR c/68473
6300         PR c++/70105
6301         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6302         location_range param with three const expanded_locations * and a
6303         bool.
6304         (layout::layout): Replace call to
6305         rich_location::lazily_expand_location with get_expanded_location.
6306         Extract the range and perform location expansion here, passing
6307         the results to the layout_range ctor.
6308         * diagnostic.c (source_range::debug): Delete.
6309         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6310         of rich_location::get_expanded_location.
6311         * gcc-rich-location.c (get_range_for_expr): Delete.
6312         (gcc_rich_location::add_expr): Reimplement to avoid the
6313         rich_location::add_range overload that took a location_range,
6314         passing a location_t instead.
6315
6316 2016-03-09  Richard Biener  <rguenther@suse.de>
6317         Jakub Jelinek  <jakub@redhat.com>
6318
6319         PR tree-optimization/70138
6320         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6321         Also skip vect_double_reduction_def.
6322
6323 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6324
6325         PR target/70049
6326         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6327         if the operand is "m".
6328
6329 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6330
6331         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6332
6333 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6334
6335         * config/i386/i386.c (processor_target_table): Fix cost table
6336         intialization order for znver1.
6337
6338 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6339
6340         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6341         - becuase -> because.
6342         * ipa-reference.c (ignore_module_statics): Likewise.
6343         * cgraph.c (cgraph_node::get_body): Likewise.
6344         * ipa-inline.c (early_inliner): Likewise.
6345         * ipa-devirt.c (types_same_for_odr): Likewise.
6346         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6347         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6348
6349 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6350
6351         * tree-ssa-math-opts.c: Fix typo in comment.
6352
6353 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6354
6355         PR target/70110
6356         * config/i386/i386.c (scalar_chain::make_vector_copies,
6357         scalar_chain::convert_reg): Call end_sequence in between
6358         get_insns and emit_conversion_insns rather than after both
6359         calls.
6360
6361 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6362
6363         PR target/70064
6364         * config/i386/i386.h (machine_function): Add
6365         pc_thunk_call_expanded flag.
6366         (ix86_pc_thunk_call_expanded): New define.
6367         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6368         (*set_got): Rename insn pattern from set_got.
6369         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6370         * config/i386/i386.c (ix86_compute_frame_layout): Use
6371         ix86_pc_thunk_call_expanded to prevent red-zone.
6372
6373 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6374
6375         * hsa.h (hsa_get_ctor_statements): Declare.
6376         (hsa_get_dtor_statements): Likewise.
6377         (hsa_get_kernel_dispatch_type): Likewise.
6378         * hsa.c (hsa_get_ctor_statements): New function.
6379         (hsa_get_dtor_statements): Likewise.
6380         (hsa_get_kernel_dispatch_type): Likewise.
6381         * hsa-brig.c (hsa_cdtor_statements): Removed.
6382         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6383         hsa_get_dtor_statements.
6384         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6385         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6386
6387 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6388
6389         * config/arm/arm-cores.def (cortex-r8): New.
6390         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6391         * config/arm/arm-tune.md: Likewise.
6392         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6393
6394 2016-03-07  Martin Sebor  <msebor@redhat.com>
6395
6396         PR rtl-optimization/19705
6397         * doc/invoke.texi (Options That Control Optimization): Clarify
6398         -fno-branch-count-reg.
6399
6400 2016-02-26  Richard Biener  <rguenther@suse.de>
6401             Jeff Law  <law@redhat.com>
6402
6403         PR tree-optimization/69740
6404         * cfghooks.c (remove_edge): Request loop fixups if we delete
6405         an edge that might turn an irreducible loop into a natural
6406         loop.
6407         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6408         Move after definition of loops_state_clear.
6409
6410 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6411
6412         PR rtl-optimization/69052
6413         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6414         to CONST_WIDE_INT.
6415
6416 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6417
6418         PR tree-optimization/70116
6419         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6420         is_tm_ending stmts and ubsan/asan internal functions.
6421         (find_duplicate): Use it.  Don't test is_tm_ending here.
6422
6423 2016-03-07  Richard Biener  <rguenther@suse.de>
6424
6425         PR tree-optimization/70115
6426         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6427         (propagate_constants_for_unrolling): Use replace_uses_by.
6428
6429 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6430
6431         PR middle-end/69916
6432         * omp-low.c (struct oacc_loop): Add ifns.
6433         (new_oacc_loop_raw): Initialize it.
6434         (finish_oacc_loop): Clear mask & flags if no ifns.
6435         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6436         (oacc_loop_xform_loop): Add ifns arg & adjust.
6437         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6438
6439 2016-03-07  Richard Henderson  <rth@redhat.com>
6440
6441         PR rtl-opt/70061
6442         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6443         (insert_value_copy_on_edge): Likewise.
6444
6445 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6446
6447         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6448
6449 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6450
6451         PR target/62281
6452         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6453
6454 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6455
6456         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6457
6458 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6459
6460         Fix sseimul type attribute.
6461         * config/i386/znver1.md
6462         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6463         znver1_sseimul_avx256_load) : Fix the type attribute.
6464         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6465         pipe usage and latency.
6466
6467 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6468
6469         PR c++/70084
6470         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6471         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6472         to the right type.
6473
6474 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6475
6476         PR c/69973
6477         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6478
6479         PR rtl-optimization/69941
6480         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6481         the reg share its mode.
6482
6483 2016-03-04  Jeff Law  <law@redhat.com>
6484
6485         PR tree-optimization/69196
6486         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6487         If the both SSA_NAMEs are anonymous, then consider them unassociated
6488         and include the PHI in the statement count.
6489
6490 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6491
6492         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6493         construct in oacc routine.  Check for oacc region in oacc routine.
6494
6495 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6496
6497         PR target/70062
6498         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6499         2016-02-22 changes, instead don't recurse if RECUR is already true.
6500         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6501         to pass true to the new argument.
6502         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6503
6504         PR target/70059
6505         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6506         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6507         fixes.
6508         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6509
6510 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6511
6512         PR rtl-optimization/57676
6513         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6514         with flag_checking.
6515
6516 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6517
6518         * tree-vect-patterns.c (search_type_for_mask): Handle
6519         comparison of booleans.
6520
6521 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6522
6523         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6524         Fix @xref usage.
6525
6526         PR debug/69947
6527         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6528         all other ops that have dw_val_class_die_ref operands,
6529         and DW_OP_GNU_entry_value.
6530
6531 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6532
6533         PR rtl-optimization/69904
6534         * config/arm/arm.c (arm_cannot_copy_insn_p):
6535         Return true for load-exclusive instructions.
6536
6537 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6538
6539         PR target/70021
6540         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6541         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6542         the pattern no matter if it is used just by non-pattern, pattern
6543         or mix thereof.
6544         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6545         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6546         oprnd1 def_stmt is in pattern, don't look through it.
6547
6548 2016-03-03  Marek Polacek  <polacek@redhat.com>
6549
6550         PR middle-end/70050
6551         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6552
6553 2016-03-03  Martin Liska  <mliska@suse.cz>
6554
6555         PR tree-optimization/70043
6556         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6557         previous statement if we see a debug statement.
6558
6559 2016-03-03  Richard Biener  <rguenther@suse.de>
6560
6561         PR tree-optimization/55936
6562         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6563         parameter and guard unsafe equivalence use.
6564         (vrp_evaluate_conditional_warnv_with_ops): Always use
6565         safe equivalences but not via the quadratic compare_names
6566         helper.
6567
6568 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6569
6570         PR target/70014
6571         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6572         for operand 1 to s_register_operand. Change predicate for operand
6573         2 to arm_not_immediate_operand.
6574
6575 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6576
6577         * doc/tm.texi: Regenerated.
6578
6579 2016-03-02  Richard Henderson  <rth@redhat.com>
6580
6581         PR rtl-opt/67145
6582         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6583         simplification when all args are positive non-fixed registers.
6584
6585 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6586
6587         * target.def (lra_p): Specify that new ports should use LRA.
6588
6589 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6590
6591         PR libgomp/69555
6592         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6593         gimplify_type_sizes the type they refer to.
6594         (omp_notice_variable): Handle reference vars to VLAs.
6595         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6596         reference to VLA decls in the second pass instead of first pass.
6597
6598 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6599
6600         PR tree-optimization/68659
6601         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6602         new_expr == NULL_TREE.
6603         (get_new_name): Handle ADDR_EXPR.
6604
6605 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6606
6607         PR rtl-optimization/69052
6608         * loop-invariant.c (canonicalize_address): New function.
6609         (inv_can_prop_to_addr_use): Check validity of address expression
6610         which is canonicalized by above function.
6611
6612 2016-03-02  Alan Modra  <amodra@gmail.com>
6613
6614         PR ipa/69990
6615         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6616         larger alignment.
6617
6618 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6619
6620         PR target/70028
6621         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6622         (*movhi_internal): Put mask moves from and to memory separately
6623         from moves from/to GPRs.
6624
6625 2016-03-02  Richard Biener  <rguenther@suse.de>
6626
6627         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6628         GENERIC expressions in GIMPLE.
6629
6630 2016-03-02  Richard Biener  <rguenther@suse.de>
6631
6632         * config/i386/i386.c (type_natural_mode): Fix typo.
6633
6634 2016-03-02  Nick Clifton  <nickc@redhat.com>
6635
6636         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6637
6638 2016-03-02  Richard Biener  <rguenther@suse.de>
6639             Uros Bizjak  <ubizjak@gmail.com>
6640
6641         PR target/67278
6642         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6643
6644 2016-03-02  Richard Biener  <rguenther@suse.de>
6645
6646         PR middle-end/67278
6647         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6648
6649 2016-03-02  Marek Polacek  <polacek@redhat.com>
6650
6651         PR c/67854
6652         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6653         "is promoted to" warning.
6654
6655 2016-03-01  DJ Delorie  <dj@redhat.com>
6656
6657         * config.gcc: Deprecate mep-*.
6658
6659 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6660
6661         PR middle-end/70025
6662         * lra-constraints.c (regno_val_use_in): New.
6663         (match_reload): Use it instead of regno_use_in.
6664
6665 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6666
6667         PR rtl-optimization/70007
6668         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6669         references present in REG_EQUAL notes attached to non-SET patterns.
6670
6671 2016-03-01  Jeff Law  <law@redhat.com>
6672
6673         PR tree-optimization/69196
6674         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6675         Appropriately clamp the number of statements to copy when the
6676         thread path does not traverse a loop backedge.
6677
6678         PR tree-optimization/69196
6679         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6680         Do count some PHIs in the thread path against the insn count.  Decrease
6681         final statement count by one as the control statement in the last
6682         block will get removed.  Remove special cased code for handling PHIs
6683         in the last block.
6684
6685 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6686
6687         PR target/70027
6688         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6689         asm dialect alternatives to explicit GOTPCREL calls.
6690
6691 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6692
6693         PR ada/70017
6694         * ira.c (do_reload): Issue warning for generic stack checking here...
6695         * reload1.c (reload): ...instead of here and streamline it.
6696
6697 2016-03-01  Nick Clifton  <nickc@redhat.com>
6698
6699         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6700
6701 2016-03-01  Richard Biener  <rguenther@suse.de>
6702
6703         PR tree-optimization/69983
6704         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6705         types and fall back to operand_equal_p.
6706
6707 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6708
6709         Revert
6710         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6711
6712         * config/s390/constraints.md ("jm8"): New constraint.
6713         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6714         predicate.
6715         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6716         into ...
6717         ("*setmem_long<setmem_and>"): New pattern.
6718         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6719         into ...
6720         ("*setmem_long_31z<setmem_and>"): New pattern.
6721         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6722         New substitution rules with the required attributes.
6723
6724
6725 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6726
6727         Revert
6728         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6729
6730         * gensupport.c (process_substs_on_one_elem): Split loop to
6731         complete mark_operands_used_in_match_dup on all expressions in the
6732         vector first.
6733         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6734         and remove function.
6735
6736 2016-03-01  Richard Biener  <rguenther@suse.de>
6737
6738         PR middle-end/70022
6739         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6740         vector BIT_FIELD_REF extract.
6741
6742 2016-03-01  Richard Biener  <rguenther@suse.de>
6743
6744         PR tree-optimization/69994
6745         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6746
6747 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6748
6749         PR tree-optimization/69956
6750         * tree-vect-stmts.c (supportable_widening_operation): Support
6751         multi-step conversion of boolean vectors.
6752         (supportable_narrowing_operation): Likewise.
6753
6754 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6755
6756         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6757         anymore.
6758
6759 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6760
6761         * config/s390/subst.md (DSI_VI): New mode iterator.
6762         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6763         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6764         the insn definition.
6765         ("*vec_set<mode>"): Change predicate and add alternative to
6766         support only either register or const_int operands as element
6767         selector.
6768         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6769         operands.
6770         ("vec_extract<mode>"): New expander.
6771         ("*vec_extract<mode>"): New insn definition supporting reg and
6772         const_int element selectors.
6773         ("*vec_extract<mode>_plus"): New insn definition supporting
6774         reg+const_int element selectors.
6775         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6776         following expander+insn definition.
6777         ("<vec_shifts_name><mode>3"): New expander.
6778         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6779
6780 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6781
6782         * config/s390/s390.md ("*tabort_1"): Change predicate to
6783         nonmemory_operand.  Add a second alternative to cover
6784         register as well as const int operands.
6785         ("*tabort_1_plus"): New pattern definition.
6786
6787 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6788
6789         * config/s390/s390.md ("*ashrdi3_cc_31")
6790         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6791         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6792         Merge insn definitions into ...
6793         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6794         New pattern definition.
6795         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6796         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6797         ("*ashr<mode>3_and"): Merge insn definitions into ...
6798         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6799         New pattern definition.
6800         * config/s390/subst.md ("addr_style_op_cc_subst")
6801         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6802         substitutions patterns plus attributes.
6803         Add ashiftrt to SUBST iterator.
6804
6805 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6806
6807         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6808         op2 to nonmemory_operand.
6809         ("*<shift>di3_31", "*<shift>di3_31_and"):
6810         Merge into single pattern definition ...
6811         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6812         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6813         pattern definition ...
6814         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6815         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6816         iterator.
6817
6818 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6819
6820         * config/s390/predicates.md (const_int_6bitset_operand): New
6821         predicate.
6822         * config/s390/s390.md: Include subst.md.
6823         ("rotl<mode>3"): New expander.
6824         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6825         ...
6826         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6827         * config/s390/subst.md: New file.
6828
6829 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6830
6831         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6832         Remove RRR type.  It doesn't really exist.
6833         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6834         attributes.
6835         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6836         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6837         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6838         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6839         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
6840         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
6841         `enabled' attribute.
6842
6843 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6844
6845         * gensupport.c (process_substs_on_one_elem): Split loop to
6846         complete mark_operands_used_in_match_dup on all expressions in the
6847         vector first.
6848         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6849         and remove function.
6850
6851 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6852
6853         PR target/69706
6854         * config/sparc/sparc.c (NWORDS_UP): Rename to...
6855         (CEIL_NWORDS): ...this.  Use CEIL macro.
6856         (compute_fp_layout): Adjust to above renaming.
6857         (function_arg_union_value): Likewise.
6858         (sparc_arg_partial_bytes): Likewise.
6859         (sparc_function_arg_advance): Likewise.
6860
6861 2016-02-29  Jeff Law  <law@redhat.com>
6862
6863         PR tree-optimization/70005
6864         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
6865         where an object with a boolean range is compared against a value
6866         outside [0..1].
6867
6868         PR tree-optimization/69999
6869         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
6870         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
6871         loop cleanups.
6872
6873 2016-02-29  Richard Biener  <rguenther@suse.de>
6874
6875         PR tree-optimization/69994
6876         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
6877         (get_unary_op): Look through nop conversions.
6878         (ops_equal_values_p): New function, look for equality diregarding
6879         nop conversions.
6880         (eliminate_plus_minus_pair): Use ops_equal_values_p
6881         (repropagate_negates): Do not use get_unary_op here.
6882
6883 2016-02-29  Martin Liska  <mliska@suse.cz>
6884
6885         * system.h: Poison ENABLE_CHECKING macro.
6886
6887 2016-02-29  Martin Liska  <mliska@suse.cz>
6888
6889         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
6890         is presented in dump flags.
6891         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6892         (hsa_regalloc): Likewise.
6893
6894 2016-02-19  Richard Biener  <rguenther@suse.de>
6895
6896         PR tree-optimization/69980
6897         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
6898         permutation of those we need to keep.
6899
6900 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6901
6902         PR target/69706
6903         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
6904         (NWORDS_UP): ...this
6905         (init_cumulative_args): Minor tweaks.
6906         (sparc_promote_function_mode): Likewise.
6907         (scan_record_type): Delete.
6908         (traverse_record_type): New function template.
6909         (classify_data_t): New structure type.
6910         (classify_registers): New inline function.
6911         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
6912         exhausted.  Instantiate traverse_record_type on classify_registers and
6913         deal with the case of a structure passed in slot #15 with no FP field
6914         in the first word.
6915         (assign_data_t): New structure type.
6916         (compute_int_layout): New static function.
6917         (compute_fp_layout): Likewise.
6918         (count_registers): New inline function.
6919         (assign_int_registers): New static function.
6920         (assign_fp_registers): Likewise.
6921         (assign_registers): New inline function.
6922         (function_arg_record_value_1): Delete.
6923         (function_arg_record_value_2): Likewise.
6924         (function_arg_record_value_3): Likewise.
6925         (function_arg_record_value): Adjust to above changes.  Instantiate
6926         traverse_record_type on count_registers to first count the number of
6927         registers to be used and then on assign_registers to assign them.
6928         (function_arg_union_value): Adjust to above renaming.
6929         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
6930         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
6931         case of a structure passed in slot #15
6932         (sparc_function_arg_advance): Likewise.
6933         (function_arg_padding): Minor tweak.
6934
6935 2016-02-29  Richard Biener  <rguenther@suse.de>
6936
6937         PR tree-optimization/69720
6938         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
6939         the adjustment_def path for possibly vectorized defs.
6940         (vect_create_epilog_for_reduction): Handle vectorized initial
6941         defs properly.
6942
6943 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6944
6945         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
6946
6947 2016-02-27  Jeff Law  <law@redhat.com>
6948
6949         Revert
6950         2016-02-26  Richard Biener  <rguenther@suse.de>
6951                     Jeff Law  <law@redhat.com>
6952
6953         PR tree-optimization/69740
6954         * cfghooks.c (remove_edge): Request loop fixups if we delete
6955         an edge that might turn an irreducible loop into a natural
6956         loop.
6957
6958 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
6959
6960         PR rtl-optimization/69896
6961         * tree-vect-generic.c (get_compute_type): Avoid single element
6962         vector types.
6963
6964 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
6965
6966         Rename the AArch64 tuning option and related functions to enable the
6967         Newton series for the reciprocal square root to reflect its
6968         approximative characteristic.
6969
6970         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
6971         function to "aarch64_emit_approx_rsqrt".
6972         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
6973         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
6974         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
6975         (xgene1_tunings): Likewise.
6976         (use_rsqrt_p): Likewise.
6977         (aarch64_emit_swrsqrt): Use new function name.
6978         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
6979         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
6980         text explaining this option.
6981         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
6982
6983 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
6984
6985         PR target/69969
6986         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6987         complain about -mallow-movmisalign without -mvsx if
6988         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
6989
6990 2016-02-26  Joel Sherrill  <joel@rtems.org>
6991
6992         * config.gcc: Add x86_64-*-rtems*.
6993         * gcc/config/i386/rtems-64.h: New file.
6994
6995 2016-02-26  Joel Sherrill  <joel@rtems.org>
6996
6997         * config.gcc: Add aarch64-*-rtems*.
6998         * gcc/config/aarch64/rtems.h: New file.
6999
7000 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7001
7002         PR target/69946
7003         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7004         shift amount using %h.  Add comment.
7005
7006 2016-02-26  Richard Biener  <rguenther@suse.de>
7007             Jeff Law  <law@redhat.com>
7008
7009         PR tree-optimization/69740
7010         * cfghooks.c (remove_edge): Request loop fixups if we delete
7011         an edge that might turn an irreducible loop into a natural
7012         loop.
7013
7014 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7015
7016         PR middle-end/69920
7017         * tree-sra.c (sra_modify_assign): Do not remove loads of
7018         uninitialized aggregates to SSA_NAMEs.
7019
7020 2016-02-26  Richard Henderson  <rth@redhat.com>
7021
7022         PR target/69709
7023         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7024         pseudo in case the target rtx matches the source of the left
7025         shift.
7026
7027 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7028
7029         PR hsa/69568
7030         * hsa.h (hsa_type_packed_p): Declare.
7031         * hsa.c (hsa_type_packed_p): New function.
7032         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7033         loads.
7034         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7035         * hsa-brig.c (emit_basic_insn): Likewise.
7036
7037 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7038
7039         pr hsa/69674
7040         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7041         pointers.
7042         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7043
7044 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7045
7046         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7047         hsa_op_with_type operands.
7048         (hsa_unsigned_type_for_type): Declare.
7049         * hsa.c (hsa_unsigned_type_for_type): New function.
7050         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7051         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7052         the finalizer.  Do not emit extra move.
7053
7054 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7055
7056         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7057         atomic operations in private segment.
7058
7059 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7060
7061         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7062         statements to wi->info.  Also disallow omp simd constructs.
7063         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7064         for not gridifying.  Dump special string for omp_for.
7065
7066 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7067
7068         PR target/69245
7069         * config/aarch64/aarch64.c (aarch64_set_current_function):
7070         Save/restore target globals when switching to
7071         target_option_default_node.
7072
7073 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7074
7075         PR target/69613
7076         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7077         Return 0 if !SHIFT_COUNT_TRUNCATED.
7078
7079 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7080             Eric Botcazou  <ebotcazou@adacore.com>
7081
7082         PR rtl-optimization/69891
7083         * dse.c (scan_insn): If we can't figure out memset arguments
7084         or they are non-constant, call clear_rhs_from_active_local_stores.
7085
7086 2016-02-26  Martin Liska  <mliska@suse.cz>
7087
7088         * doc/extend.texi: Mention clog10, clog10f an clog10l
7089         in Builtins section.
7090
7091 2016-02-26  Martin Liska  <mliska@suse.cz>
7092
7093         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7094         CHECKING_P.
7095         (resolve_args_picking_1): Likewise.
7096         * dwarf2out.h (struct GTY): Likewise.
7097
7098 2016-02-26  Martin Liska  <mliska@suse.cz>
7099
7100         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7101         with flag_checking.
7102         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7103
7104 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7105             Martin Liska  <mliska@suse.cz>
7106
7107         * doc/install.texi: Mention --enable-valgrind-annotations.
7108
7109 2016-02-26  Richard Biener  <rguenther@suse.de>
7110
7111         PR tree-optimization/69551
7112         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7113         looking through aliases adjust DECL_PT_UID to refer to the
7114         ultimate alias target.
7115
7116 2016-02-25  Martin Liska  <mliska@suse.cz>
7117
7118         PR middle-end/69919
7119         * alloc-pool.c (after_memory_report): New variable.
7120         * alloc-pool.h (base_pool_allocator ::release): Do not use
7121         the infrastructure if after_memory_report.
7122         * toplev.c (toplev::main): Mark after memory report.
7123
7124 2016-02-25  Richard Biener  <rguenther@suse.de>
7125
7126         PR tree-optimization/48795
7127         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7128
7129 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7130
7131         PR driver/68463
7132         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7133         offloading is enabled and -fopenacc or -fopenmp is specified.
7134         (CRTOFFLOADEND): Likewise.
7135         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7136         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7137         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7138         (offload_objects_file_name): New static var.
7139         (tool_cleanup): Remove offload_objects_file_name file.
7140         (find_offloadbeginend): Replace with ...
7141         (find_crtoffloadtable): ... this.
7142         (run_gcc): Remove offload_argc and offload_argv.
7143         Get offload_objects_file_name from -foffload-objects=... option.
7144         Read names of object files with offload from this file, pass them to
7145         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7146         don't pass offloadbegin and offloadend to the linker.  Don't pass
7147         offload non-LTO files to the linker, because now they're not claimed.
7148
7149 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7150
7151         PR ipa/69630
7152         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7153         on builtin_unreachable.
7154
7155 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7156
7157         PR rtl-optimization/69896
7158         * regcprop.c: Include cfgrtl.h.
7159         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7160         than remembered mode, either delete it (if noop_move_p), or
7161         treat like copy_p but not noop_p instruction.
7162
7163 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7164
7165         PR debug/69705
7166         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7167         - allow NULL decl for Fortran DW_TAG_common_block variables.
7168
7169 2016-02-24  Jason Merrill  <jason@redhat.com>
7170
7171         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7172
7173 2016-02-24  Richard Biener  <rguenther@suse.de>
7174             Jakub Jelinek  <jakub@redhat.com>
7175
7176         PR middle-end/69760
7177         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7178         conditionally executed ops to well-defined overflow behavior.
7179
7180 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7181
7182         PR middle-end/69915
7183         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7184         elements.
7185
7186 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7187
7188         PR rtl-optimization/69886
7189         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7190         argument.  Use it when checking validity of set instructions.
7191         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7192         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7193         callsite.
7194         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7195         * store-motion.c (find_moveable_store): Update
7196         can_assign_to_reg_without_clobbers_p callsite.
7197
7198 2016-02-24  Richard Biener  <rguenther@suse.de>
7199
7200         PR middle-end/68963
7201         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7202         bogus check.
7203         (record_nonwrapping_iv): Do not fall back to the low/high bound
7204         for non-constant IV bases if the stmt is not always executed.
7205
7206 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7207
7208         * config/arm/arm-cores.def (cortex-a32): New entry.
7209         * config/arm/arm-tables.opt: Regenerate.
7210         * config/arm/arm-tune.md: Regenerate.
7211         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7212         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7213         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7214         for -mcpu and -mtune.
7215
7216 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7217
7218         PR target/69875
7219         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7220         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7221         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7222         (atomic_loaddi_1): Delete.
7223         (atomic_loaddi): Rewrite expander using the above changes.
7224
7225 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7226
7227         PR c/69918
7228         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7229         2 to 3.
7230
7231 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7232             Richard Biener  <rguenth@suse.de>
7233
7234         PR middle-end/69909
7235         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7236         set_mem_attributes if tem is SSA_NAME which got expanded
7237         as a MEM.
7238
7239 2016-02-24  Richard Biener  <rguenther@suse.de>
7240
7241         PR tree-optimization/69907
7242         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7243         end of permutations for BB vectorization.
7244
7245 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7246
7247         * config/arm/arm-c.c (arm_option_override): Initialize
7248         target_option_current_node.
7249         * config/arm/arm.c (arm_pragma_target_parse): Replace
7250         build_target_option_node call by target_option_current_node.
7251         Set target_option_current_node.
7252         Fix comments.
7253
7254 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7255
7256         PR target/69810
7257         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7258         define_insn_and_split to define_insn.
7259         (zero_extendqi<mode>2_dot2): Same.
7260         (extendqi<mode>2_dot): Same.
7261         (extendqi<mode>2_dot2): Same.
7262
7263 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7264
7265         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7266         and add bypass for AES{D,E} and AESMC pairs.
7267         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7268         and AESMC pairs.
7269
7270 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7271
7272         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7273         series for reciprocal square root in Exynos M1.
7274
7275 2016-02-23  Martin Sebor  <msebor@redhat.com>
7276
7277         PR c/69759
7278         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7279         __builtin_alloca_with_align.
7280
7281 2016-02-23  Richard Henderson  <rth@redhat.com>
7282
7283         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7284         (ix86_register_pragmas): Remove __seg_tls.
7285         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7286         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7287         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7288         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7289         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7290         * doc/extend.texi (__seg_tls): Remove item.
7291
7292 2016-02-23  Richard Biener  <rguenther@suse.de>
7293
7294         * alloc-pool.h (struct allocation_object): Make id member
7295         conditional on CHECKING_P again.
7296         (get_instance): Adjust.
7297         (base_pool_allocator): Likewise.
7298
7299 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7300
7301         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7302         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7303         zero.
7304         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7305         flag_openacc.
7306         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7307
7308 2016-02-23  Richard Biener  <rguenther@suse.de>
7309
7310         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7311         * bitmap.h (struct bitmap_usage): Likewise.
7312         (bitmap_move): Declare.
7313         * bitmap.c (register_overhead): Take size_t argument.
7314         (bitmap_move): New function.
7315         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7316         to properly account overhead.
7317         * tree.c (free_node): Use tree_size.
7318
7319 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7320
7321         PR c++/69902
7322         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7323         when inverting comparison.
7324
7325         PR c/69900
7326         * common.opt (Wunreachable-code): Add Warning flag.
7327
7328 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7329             Jakub Jelinek  <jakub@redhat.com>
7330
7331         PR c/69911
7332         * cgraphunit.c (check_global_declaration): Check main_input_filename
7333         and DECL_SOURCE_FILE are not NULL.
7334
7335 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7336
7337         PR tree-optimization/69666
7338         * tree-sra.c (sra_modify_assign): Do not attempt to create
7339         default_def replacements for unscalarizable regions.
7340
7341 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7342
7343         PR c/28901
7344         * cgraphunit.c (check_global_declaration): Check level of
7345         warn_unused_const_variable and main_input_filename.
7346         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7347         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7348         (-Wunused-const-variable): Explain levels 1 and 2.
7349
7350 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7351
7352         PR target/69888
7353         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7354         identical arguments.  Formatting and spelling fixes.
7355
7356         PR target/69885
7357         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7358         be specified.
7359
7360         PR target/69894
7361         PR target/69895
7362         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7363         and m68k-devices.def.
7364         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7365         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7366
7367 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7368
7369         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7370         and HImode registers.
7371
7372 2016-02-22  Richard Biener  <rguenther@suse.de>
7373
7374         PR tree-optimization/69882
7375         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7376         preserve permutations present because of gaps.
7377         (vect_supported_load_permutation_p): Always continue checking
7378         permutations after vect_attempt_slp_rearrange_stmts.
7379
7380 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7381
7382         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7383         min_profitable_estimate, rather than min_profitable_iters.
7384
7385 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7386
7387         PR target/69885
7388         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7389         SImode for last match_operand.
7390
7391 2016-02-22  Martin Liska  <mliska@suse.cz>
7392
7393         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7394         return bitsize - 1 as the return value.
7395
7396 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7397
7398         PR target/69806
7399         PR target/54089
7400         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7401         Handle negative shift counts.
7402         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7403         force_reg on the shift constant.
7404         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7405         (lshrsi3_d): Handle negative shift counts.
7406
7407 2016-02-22  Richard Biener  <rguenther@suse.de>
7408             Tom de Vries  <tom@codesourcery.com>
7409
7410         * graph.c: Include dumpfile.h.
7411         (print_graph_cfg): Split into three overloads.
7412         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7413
7414 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7415
7416         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7417         dump-fn.
7418
7419 2016-02-22  Richard Biener  <rguenther@suse.de>
7420
7421         PR ipa/37448
7422         * ipa-inline-transform.c (inline_call): When not updating
7423         overall summaries adjust self size by the growth estimate.
7424         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7425         hash-set, do not update overall summaries here.  Renamed from ...
7426         (inline_to_all_callers): ... this which is now wrapping the
7427         above and performing delayed overall summary update.
7428         (early_inline_small_functions): Delay updating of the overall
7429         summary.
7430
7431 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7432
7433         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7434         variable.
7435
7436 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7437
7438         PR driver/69805
7439         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7440         :%* in %:gt() argument.
7441         (greater_than_spec_func): Adjust for expecting only numbers,
7442         if there are more than two numbers, compare the last two.
7443
7444 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7445
7446         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7447         -Wnarrowing with -std.
7448
7449 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7450
7451         PR c++/69851
7452         * expr.c (store_field): Don't use bit-field path if exp is
7453         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7454         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7455         and the assignment can be performed by bitwise copy.  Formatting
7456         fix.
7457
7458         PR middle-end/69838
7459         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7460         call copy_reg_eh_region_note_forward on before and/or after sequences
7461         and remove note from insn if it no longer can throw.
7462
7463         PR target/69820
7464         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7465         if TARGET_AVX512BW.
7466
7467 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7468
7469         * config/s390/vector.md: Add missing commutative operand markers
7470         to the patterns which qualify for one.
7471         * config/s390/vx-builtins.md: Likewise.
7472
7473 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7474
7475         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7476         types to mode iterators.
7477         (vec_double): ... and mode attribute.
7478         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7479
7480 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7481
7482         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7483         Change the predicate of op2 from nonimmediate to general and let
7484         reload fix it if necessary.
7485
7486 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7487
7488         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7489
7490 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7491
7492         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7493         mode.
7494
7495 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7496
7497         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7498         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7499         * config/s390/s390.md ("movstr<P:mode>"): Call
7500         s390_expand_vec_movstr.
7501
7502 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7503
7504         * config/s390/s390.md: Add missing output modifier for operand 1
7505         to print it as address properly.
7506
7507 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7508
7509         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7510         * config/s390/2964.md: New file.
7511         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7512         of insn grouping attributes depending on the CPU level.
7513         (s390_get_unit_mask): New function.
7514         (s390_sched_score): Remove the OOO from the scheduling macros.
7515         Add loop to calculate a score for the instruction mix.
7516         (s390_sched_reorder): Likewise plus improve debug output.
7517         (s390_sched_variable_issue): Rename macros as above.  Calculate
7518         the unit distances after actually scheduling an insn.  Improve
7519         debug output.
7520         (s390_sched_init): Clear last_scheduled_unit_distance array.
7521         * config/s390/s390.md: Include 2964.md.
7522
7523 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7524
7525         PR target/69671
7526         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7527         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7528         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7529         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7530         *avx512f_<code>v8div16qi2_mask_1): New insns.
7531
7532 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7533
7534         PR target/68404
7535         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7536         2016-02-09 change.
7537
7538         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7539         earlyclobber from target.  Use wF constraint for fused memory
7540         address.
7541         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7542
7543 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7544             Martin Liska  <mliska@suse.cz>
7545
7546         PR sanitizer/69863
7547         * cfgexpand.c (asan_sanitize_stack_p): New function.
7548         (partition_stack_vars): Use the function.
7549         (expand_stack_vars): Likewise.
7550         (defer_stack_allocation): Likewise.
7551         (expand_used_vars): Likewise.
7552
7553 2016-02-18  Richard Biener  <rguenther@suse.de>
7554
7555         PR middle-end/69553
7556         * fold-const.c (operand_equal_p): Properly compare offsets for
7557         IMAGPART_EXPR and ARRAY_REF.
7558
7559 2016-02-18  Nick Clifton  <nickc@redhat.com>
7560
7561         PR target/62254
7562         PR target/69610
7563         * config/arm/arm.c (arm_option_override_internal): Disable
7564         interworking if the target does not support thumb instructions.
7565         (arm_reload_in_hi): Handle the case where a register to register
7566         move needs reloading because there is no simple pattern to handle
7567         it.
7568         (arm_reload_out_hi): Likewise.
7569
7570 2016-02-18  Richard Biener  <rguenther@suse.de>
7571
7572         PR middle-end/69854
7573         * match.pd: Don't use fold_binary or fold_unary for folding
7574         constants.
7575
7576 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7577
7578         PR c++/69850
7579         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7580         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7581         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7582         warn on gimple_no_warning_p statements.
7583
7584 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7585
7586         * doc/extend.texi (C++ Attributes): Correct description of
7587         warn_unused type attribute.
7588
7589 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7590
7591         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7592         correct instruction.
7593
7594 2016-02-17  Richard Biener  <rguenther@suse.de>
7595
7596         PR rtl-optimization/69609
7597         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7598         (find_traces_1_round): When ending a trace update cached priority
7599         of successors.
7600         (bb_to_key): Use cached priority when available.
7601         (copy_bb): Initialize cached priority.
7602         (reorder_basic_blocks_software_trace_cache): Likewise.
7603
7604 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7605
7606         PR target/69161
7607         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7608         New predicate.
7609         (aarch64_comparison_operator): Break overly long line into two.
7610         (aarch64_comparison_operation): Likewise.
7611         * config/aarch64/aarch64.md (cstorecc4): Use
7612         aarch64_comparison_operator_mode instead of
7613         aarch64_comparison_operator.
7614         (cstore<mode>4): Likewise.
7615         (aarch64_cstore<mode>): Likewise.
7616         (*cstoresi_insn_uxtw): Likewise.
7617         (cstore<mode>_neg): Likewise.
7618         (*cstoresi_neg_uxtw): Likewise.
7619
7620 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7621
7622         PR target/69161
7623         * config/arm/predicates.md (arm_comparison_operator_mode):
7624         New predicate.
7625         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7626         instead of arm_comparison_operator.
7627         (*mov_negscc): Likewise.
7628         (*mov_notscc): Likewise.
7629         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7630         (*thumb2_mov_negscc): Likewise.
7631         (*thumb2_mov_negscc_strict_it): Likewise.
7632         (*thumb2_mov_notscc): Likewise.
7633         (*thumb2_mov_notscc_strict_it): Likewise.
7634
7635 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7636
7637         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7638         Add missing return.
7639
7640 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7641
7642         * config/visium/visium.c (machine_libfunc_index): New enum.
7643         (machine_libfuncs): New structure.
7644         (visium_libfuncs): New static variable.
7645         (TARGET_INIT_LIBFUNCS): Define to...
7646         (visium_init_libfuncs): ...this.  New function.
7647         (expand_block_move_4): Use the appropriate libfunc.
7648         (expand_block_move_2): Likewise.
7649         (expand_block_move_1): Likewise.
7650         (expand_block_set_4): Likewise.
7651         (expand_block_set_2): Likewise.
7652         (expand_block_set_1): Likewise.
7653         (visium_trampoline_init): Likewise.
7654
7655 2016-02-17  Nick Clifton  <nickc@redhat.com>
7656
7657         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7658         TI's devices.csv file as of March 2016.
7659
7660 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7661
7662         PR Target/48344
7663         * opts-global.c (handle_common_deferred_options): Introduce and
7664         initialize two global variables to remember command-line options
7665         specifying a stack-limiting register.
7666         * opts.h: Add extern declarations of the two new global variables.
7667         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7668         variable based on the values of the two new global variables.
7669
7670 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7671
7672         PR c/69835
7673         * common.opt (Wnonnull-compare): New warning.
7674         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7675         of arguments against NULL.
7676         (-Wnonnull-compare): Document.
7677         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7678         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7679         * passes.def (pass_warn_nonnull_compare): Add.
7680         * gimple-ssa-nonnull-compare.c: New file.
7681
7682 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7683
7684         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7685         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7686
7687 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7688
7689         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7690         reciprocal sqrt for -mlow-precision-recip-sqrt.
7691
7692 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7693             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7694
7695         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7696         always use lane loads to construct non-constant vectors.
7697
7698 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7699
7700         * config/aarch64/aarch64.md
7701         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7702         constraints for operand 3.
7703         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7704
7705 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7706             Richard Biener  <rguenther@suse.de>
7707
7708         PR tree-optimization/69820
7709         * tree-vect-patterns.c (type_conversion_p): Return false if
7710         *orig_type is unsigned single precision or boolean.
7711         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7712         Formatting fix.
7713
7714 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7715
7716         PR rtl-optimization/69764
7717         PR rtl-optimization/69771
7718         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7719         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7720
7721 2016-02-16  Richard Biener  <rguenther@suse.de>
7722
7723         PR tree-optimization/69776
7724         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7725         sets from caller.
7726         (indirect_refs_may_alias_p): Likewise.
7727         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7728         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7729         according to tbaa_p.
7730         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7731         (optimize_stmt): For redundant store discovery do not allow tbaa.
7732
7733 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7734
7735         PR tree-optimization/69714
7736         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7737         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7738
7739 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7740
7741         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7742         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7743         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7744         * config/arc/arc.c (arc_init): Check FPU options.
7745         (get_arc_condition_code): Handle new CC_FPU* modes.
7746         (arc_select_cc_mode): Likewise.
7747         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7748         register pair only. Allow access for ARCv2 accumulator.
7749         (gen_compare_reg): Whenever we have FPU support use FPU compare
7750         instructions.
7751         (arc_reorg): Don't generate brcc insns when FPU compare
7752         instructions are involved.
7753         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7754         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7755         floating point emulation.
7756         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7757         (REVERSE_CONDITION): Add new CC_FPU* modes.
7758         (TARGET_FP_SP_BASE): Define.
7759         (TARGET_FP_DP_BASE): Likewise.
7760         (TARGET_FP_SP_FUSED): Likewise.
7761         (TARGET_FP_DP_FUSED): Likewise.
7762         (TARGET_FP_SP_CONV): Likewise.
7763         (TARGET_FP_DP_CONV): Likewise.
7764         (TARGET_FP_SP_SQRT): Likewise.
7765         (TARGET_FP_DP_SQRT): Likewise.
7766         (TARGET_FP_DP_AX): Likewise.
7767         * config/arc/arc.md (ARCV2_ACC): New constant.
7768         (type): New fpu type attribute.
7769         (SDF): Conditional iterator.
7770         (cstore<mode>, cbranch<mode>): Change expand condition.
7771         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7772         handles FPU/FPX cases as well.
7773         * config/arc/arc.opt (mfpu): New option.
7774         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7775         Renamed.
7776         (adddf3, muldf3, subdf3): Removed.
7777         * config/arc/predicates.md (proper_comparison_operator): Recognize
7778         CC_FPU* modes.
7779         * config/arc/fpu.md: New file.
7780         * doc/invoke.texi (ARC Options): Document mfpu option.
7781
7782 2016-02-16  Richard Biener  <rguenther@suse.de>
7783
7784         PR rtl-optimization/69291
7785         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7786         noce_operand_ok check.
7787
7788 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7789
7790         PR lto/67709
7791         * omp-low.c (simd_clone_create): Remove call to
7792         symtab->call_cgraph_insertion_hooks.
7793
7794 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7795
7796         PR tree-optimization/69802
7797         * tree-ssa-reassoc.c (update_range_test): If op is
7798         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7799         op == 1 test of precision 1 integral op, otherwise handle
7800         that case as op itself.  Fix up formatting.
7801         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7802         up formatting.
7803
7804 2016-02-16  Richard Biener  <rguenther@suse.de>
7805
7806         PR tree-optimization/69586
7807         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7808         types for conversion sources.
7809
7810 2016-02-16  Richard Biener  <rguenther@suse.de>
7811
7812         PR middle-end/69801
7813         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7814         mask OEP_ADDRESS_OF.
7815
7816 2016-02-16  Alan Modra  <amodra@gmail.com>
7817
7818         PR target/68973
7819         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7820         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7821         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7822         (p8_mtvsrwz): New.
7823         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7824         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7825         (p8_fmrgow_<mode>): Likewise.
7826         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7827         changes.
7828         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7829         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7830         to use movdi_internal64.  Remove op0_di.
7831         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7832
7833 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7834
7835         Add support for the FCCMP insn types
7836
7837         * config/aarch64/aarch64.md (fccmp): Change insn type.
7838         (fccmpe): Likewise.
7839         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
7840         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
7841         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
7842         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
7843         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
7844         * config/arm/types.md (fccmps): Add new insn type.
7845         (fccmpd): Likewise.
7846
7847 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7848
7849         * alias.c (get_alias_set): Fix a typo in comment.
7850
7851 2016-02-15  Richard Biener  <rguenther@suse.de>
7852
7853         PR tree-optimization/69595
7854         * match.pd: Complete range test simplification to true.
7855
7856 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
7857
7858         PR rtl-optimization/69648
7859         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
7860         pic_offset_table_rtx.
7861
7862         PR rtl-optimization/69752
7863         * ira.c (update_equiv_regs): When looking for more than a single SET,
7864         also take other side effects into account.
7865
7866 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7867
7868         * config/s390/s390.c (s390_function_profiler): Add a new sequence
7869         for z900+ CPUs in 31-bit mode.
7870
7871 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7872
7873         * common/config/s390/s390-common.c (s390_supports_split_stack):
7874         New function.
7875         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
7876         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
7877         * config/s390/s390.c (struct machine_function): New field
7878         split_stack_varargs_pointer.
7879         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
7880         in s390_emit_prologue.
7881         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
7882         vararg pointer.
7883         (morestack_ref): New global.
7884         (SPLIT_STACK_AVAILABLE): New macro.
7885         (s390_expand_split_stack_prologue): New function.
7886         (s390_live_on_entry): New function.
7887         (s390_va_start): Use split-stack vararg pointer if appropriate.
7888         (s390_asm_file_end): Emit the split-stack note sections.
7889         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
7890         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
7891         (UNSPECV_SPLIT_STACK_CALL): New unspec.
7892         (UNSPECV_SPLIT_STACK_DATA): New unspec.
7893         (split_stack_prologue): New expand.
7894         (split_stack_space_check): New expand.
7895         (split_stack_data): New insn.
7896         (split_stack_call): New expand.
7897         (split_stack_call_*): New insn.
7898         (split_stack_cond_call): New expand.
7899         (split_stack_cond_call_*): New insn.
7900
7901 2016-02-15  Richard Biener  <rguenther@suse.de>
7902
7903         PR tree-optimization/69783
7904         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7905         Add trivially correct cases.
7906
7907 2016-02-15  Tom de Vries  <tom@codesourcery.com>
7908
7909         PR lto/69655
7910         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
7911         do_force_output.
7912         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
7913
7914 2016-02-15  Richard Biener  <rguenther@suse.de>
7915
7916         PR tree-optimization/69776
7917         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7918         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
7919         indicate whether we can use TBAA to disambiguate against stores.
7920         Use alias-set zero if not.
7921         (visit_reference_op_store): Do not use TBAA when looking up
7922         redundant stores.
7923         * tree-ssa-pre.c (compute_avail): Use TBAA here.
7924         (eliminate_dom_walker::before_dom_children): But not when looking
7925         up redundant stores.
7926
7927 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
7928
7929         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
7930
7931 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7932
7933         *  config/i386/znver1.md
7934         (znver1_pop, znver1_pop_mem,
7935         znver1_load_imov_double_store,
7936         znver1_load_imov_direct_store,
7937         znver1_load_imov_direct_load,
7938         znver1_load_imov_double_load): Add new.
7939         (znver1_insn, znver1_insn_load): Add icmov type.
7940         (znver1_sseavx_fma,
7941         znver1_sseavx_fma_load,
7942         znver1_avx256_fma,
7943         znver1_avx256_fma_load): Fix pipe usage.
7944
7945 2016-02-14  Alan Modra  <amodra@gmail.com>
7946
7947         PR target/68973
7948         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
7949         with an invalid hard reg, reload just the reg not the entire
7950         pre/post-inc/dec address expression.
7951
7952 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7953
7954         PR target/67260
7955         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
7956         fixed R1_REG scratch reg.
7957         (sibcall_value_pcrel_fdpic): Likewise.
7958
7959 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7960
7961         PR target/67636
7962         PR target/64345
7963         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
7964
7965 2016-02-12  Walter Lee  <walt@tilera.com>
7966
7967         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
7968         * config/tilegx/t-tilegx: Likewise.
7969
7970 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7971
7972         PR other/69554
7973         * diagnostic-show-locus.c (struct line_span): New struct.
7974         (layout::get_first_line): Delete.
7975         (layout::get_last_line): Delete.
7976         (layout::get_num_line_spans): New member function.
7977         (layout::get_line_span): Likewise.
7978         (layout::print_heading_for_line_span_index_p): Likewise.
7979         (layout::get_expanded_location): Likewise.
7980         (layout::calculate_line_spans): Likewise.
7981         (layout::m_first_line): Delete.
7982         (layout::m_last_line): Delete.
7983         (layout::m_line_spans): New field.
7984         (layout::layout): Update comment.  Replace m_first_line and
7985         m_last_line with m_line_spans, replacing their initialization
7986         with a call to calculate_line_spans.
7987         (diagnostic_show_locus): When printing source lines and
7988         annotations, rather than looping over a single span
7989         of lines, instead loop over each line_span within
7990         the layout, with an inner loop over the lines within them.
7991         Call the context's start_span callback when changing line spans.
7992         * diagnostic.c (diagnostic_initialize): Initialize start_span.
7993         (diagnostic_build_prefix): Break out the building of the location
7994         part of the string into...
7995         (diagnostic_get_location_text): ...this new function, rewriting
7996         it from nested ternary expressions to a sequence of "if"
7997         statements.
7998         (default_diagnostic_start_span_fn): New function.
7999         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8000         (diagnostic_context::start_span): New field.
8001         (default_diagnostic_start_span_fn): New prototype.
8002
8003 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8004
8005         PR driver/69779
8006         * gcc.c (driver::finalize): Fix cleanup of "specs".
8007
8008 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8009
8010         PR driver/69265
8011         PR driver/69453
8012         * gcc.c (driver::driver): Initialize m_option_suggestions.
8013         (driver::~driver): Clean up m_option_suggestions.
8014         (suggest_option): Convert to...
8015         (driver::suggest_option): ...this, and split out into
8016         driver::build_option_suggestions and find_closest_string.
8017         (driver::build_option_suggestions): New function, from
8018         first half of suggest_option.  Special-case
8019         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8020         the sanitizer_opts array.  For options of enum types, add the
8021         various enum values to the candidate strings.
8022         (driver::handle_unrecognized_options): Remove "const".
8023         * gcc.h (driver::handle_unrecognized_options): Likewise.
8024         (driver::build_option_suggestions): New decl.
8025         (driver::suggest_option): New decl.
8026         (driver::m_option_suggestions): New field.
8027         * opts-common.c (add_misspelling_candidates): New function.
8028         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8029         and make non-static.
8030         * opts.h (sanitizer_opts): New array decl.
8031         (add_misspelling_candidates): New function decl.
8032         * spellcheck.c (find_closest_string): New function.
8033         * spellcheck.h (find_closest_string): New function decl.
8034
8035 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8036
8037         PR rtl-optimization/69764
8038         PR rtl-optimization/69771
8039         * optabs.c (expand_binop_directly): For shift_optab_p, force
8040         convert_modes with VOIDmode if xop1 has VOIDmode.
8041
8042 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8043
8044         PR target/69729
8045         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8046         to correctly determine instrumentation thunks.
8047
8048 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8049
8050         PR ipa/69241
8051         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8052         type by reference, force lhs on the call.
8053
8054         PR ipa/68672
8055         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8056         Compute retval and retbnd early in all cases if split_part_return_p
8057         and return_bb is not EXIT.  Remove all clobber stmts and reset
8058         all debug stmts that refer to SSA_NAMEs defined in split part,
8059         except if it is retval, in that case replace the old retval with the
8060         lhs of the call to the split part.
8061
8062 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8063
8064         revert:
8065         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8066
8067         PR middle-end/66726
8068         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8069         whose result is used in PHI.
8070         (maybe_optimize_range_tests): Likewise.
8071         (final_range_test_p): Likweise.
8072
8073 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8074
8075         PR middle-end/66726
8076         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8077         whose result is used in PHI.
8078         (maybe_optimize_range_tests): Likewise.
8079         (final_range_test_p): Likweise.
8080
8081 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8082
8083         * cgraph.c: Spelling fixes - behaviour -> behavior and
8084         neighbour -> neighbor.
8085         * target.def: Likewise.
8086         * sel-sched.c: Likewise.
8087         * config/mips/mips.c: Likewise.
8088         * config/arc/arc.md: Likewise.
8089         * config/arm/cortex-a57.md: Likewise.
8090         * config/arm/arm.c: Likewise.
8091         * config/arm/neon.md: Likewise.
8092         * config/arm/arm-c.c: Likewise.
8093         * config/vms/vms-c.c: Likewise.
8094         * config/s390/s390.c: Likewise.
8095         * config/i386/znver1.md: Likewise.
8096         * config/i386/i386.c: Likewise.
8097         * config/ia64/hpux-unix2003.h: Likewise.
8098         * config/msp430/msp430.md: Likewise.
8099         * config/rx/rx.c: Likewise.
8100         * config/rx/rx.md: Likewise.
8101         * config/aarch64/aarch64-simd.md: Likewise.
8102         * config/aarch64/aarch64.c: Likewise.
8103         * config/nvptx/nvptx.c: Likewise.
8104         * config/bfin/bfin.c: Likewise.
8105         * config/cris/cris.opt: Likewise.
8106         * config/rs6000/rs6000.c: Likewise.
8107         * target.h: Likewise.
8108         * spellcheck.c: Likewise.
8109         * ira-build.c: Likewise.
8110         * tree-inline.c: Likewise.
8111         * builtins.c: Likewise.
8112         * lra-constraints.c: Likewise.
8113         * explow.c: Likewise.
8114         * hwint.h: Likewise.
8115         * targhooks.c: Likewise.
8116         * tree-vect-data-refs.c: Likewise.
8117         * expr.c: Likewise.
8118         * doc/tm.texi: Likewise.
8119         * doc/extend.texi: Likewise.
8120         * doc/install.texi: Likewise.
8121         * doc/md.texi: Likewise.
8122         * tree-ssa-tail-merge.c: Likewise.
8123         * sched-int.h: Likewise.
8124         * match.pd: Likewise.
8125         * sched-ebb.c: Likewise.
8126         * target.def (omit_struct_return_reg): Likewise.
8127         * gimple-ssa-isolate-paths.c: Likewise.
8128         (find_implicit_erroneous_behaviour): Renamed to...
8129         (find_implicit_erroneous_behavior): ... this.
8130         (find_explicit_erroneous_behaviour): Renamed to...
8131         (find_explicit_erroneous_behavior): ... this.
8132         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8133
8134 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8135
8136         PR rtl-optimization/64682
8137         PR rtl-optimization/69567
8138         PR rtl-optimization/69737
8139         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8140         in I2 as well, just lose it.
8141
8142 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8143
8144         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8145         New variable.
8146         (aarch64_last_printed_tune_string): Likewise.
8147         (aarch64_declare_function_name): Only output .arch assembler
8148         directive if it will be different from the previously output
8149         directive.  Same for .tune comment but only if -dA is set.
8150         (aarch64_start_file): New function.
8151         (TARGET_ASM_FILE_START): Define.
8152
8153 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8154
8155         PR plugins/69758
8156         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8157
8158 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8159
8160         PR target/65313
8161         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8162         -Wmaybe-uninitialized warning.
8163
8164 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8165
8166         PR target/69713
8167         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8168
8169 2016-02-11  Richard Biener  <rguenther@suse.de>
8170
8171         PR rtl-optimization/69291
8172         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8173         subexpressions affected by changing the result.
8174
8175 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8176
8177         PR target/69148
8178         * lra-constraints.c (curr_insn_transform): Find in/out operands
8179         for secondary memory moves.  Update dups.
8180
8181 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8182
8183         PR tree-optimization/69652
8184         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8185         to nested loop, did source re-formatting, skip debug statements,
8186         add check on statement with volatile operand, remove dead scalar
8187         statements.
8188
8189 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8190             Patrick Palka  <ppalka@gcc.gnu.org>
8191
8192         PR ipa/69241
8193         PR c++/69649
8194         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8195         calls if the return type is TREE_ADDRESSABLE.
8196         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8197         * ipa-split.c (split_function): Fix doubled "we" in comment.
8198         Use void return type for the split part even if
8199         !split_point->split_part_set_retval.
8200
8201 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8202
8203         PR tree-optimization/68021
8204         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8205         when computing the value of biv cand by itself.
8206
8207 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8208
8209         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8210         (cortexa57_tunings): Likewise.
8211         (cortexa72_tunings): Likewise.
8212         (arch_macro_fusion_pair_p): Add support for AES fusion.
8213         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8214         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8215         Allow virtual registers before reload so early scheduling works.
8216         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8217         correct latency and pipeline.
8218         (cortex_a57_crypto_complex): Likewise.
8219         (cortex_a57_crypto_xor): Likewise.
8220         (define_bypass): Add AES bypass.
8221
8222 2016-02-10  Richard Biener  <rguenther@suse.de>
8223
8224         PR tree-optimization/69726
8225         * passes.def: Add DCE pass before late uninit.
8226         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8227         really fixup if-conversions job.
8228
8229 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8230
8231         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8232         (arm_cortex_a57_tune): Likewise.
8233         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8234         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8235
8236 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8237
8238         * timevar.def (TV_PHASE_DBGINFO): Delete.
8239         (TV_PHASE_CHECK_DBGINFO): Likewise.
8240         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8241
8242 2016-02-10  Richard Biener  <rguenther@suse.de>
8243
8244         PR tree-optimization/69719
8245         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8246         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8247
8248 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8249
8250         PR tree-opt/69282
8251         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8252         get_vcond_mask_icode returns false.
8253
8254 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8255
8256         PR target/68404
8257         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8258         an ADDIS that adds a pointer to a large constant that sets the
8259         upper16 bits with a load operation.
8260
8261 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8262
8263         PR target/68532
8264         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8265         order.
8266         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8267         endian.
8268         (vzipq_s16): Likewise.
8269         (vzipq_s32): Likewise.
8270         (vzipq_f32): Likewise.
8271         (vzipq_u8): Likewise.
8272         (vzipq_u16): Likewise.
8273         (vzipq_u32): Likewise.
8274         (vzipq_p8): Likewise.
8275         (vzipq_p16): Likewise.
8276
8277 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8278
8279         PR target/68532
8280         * config/arm/arm.c (neon_endian_lane_map): New function.
8281         (neon_vector_pair_endian_lane_map): New function.
8282         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8283         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8284         endian.
8285         (vuzpq_s16): Likewise.
8286         (vuzpq_s32): Likewise.
8287         (vuzpq_f32): Likewise.
8288         (vuzpq_u8): Likewise.
8289         (vuzpq_u16): Likewise.
8290         (vuzpq_u32): Likewise.
8291         (vuzpq_p8): Likewise.
8292         (vuzpq_p16): Likewise.
8293
8294 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8295
8296         PR target/69634
8297         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8298         debug insns.
8299
8300 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8301
8302         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8303         truncate const_int operand 1 to QImode.
8304
8305 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8306
8307         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8308         corresponding to an abnormal edge.
8309
8310 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8311
8312         PR tree-optimization/69599
8313         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8314         function.
8315         (find_func_aliases_for_builtin_call, find_func_clobbers)
8316         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8317         partition.
8318
8319 2016-02-09  Richard Biener  <rguenther@suse.de>
8320
8321         PR tree-optimization/69715
8322         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8323         LHS on calls as non-rewritable.
8324
8325 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8326
8327         PR lto/69707
8328         * lto-wrapper.c (append_diag_options): New function.
8329         (compile_offload_image): Call append_diag_options.
8330
8331 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8332
8333         PR other/69722
8334         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8335         Minor copy-edit to fix verb tenses.
8336
8337 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8338
8339         PR tree-optimization/69209
8340         * ipa-split.c (split_function): If split part is not
8341         returning retval, retval has gimple type but is not
8342         gimple value, force it into a SSA_NAME first.
8343
8344 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8345
8346         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8347         outdated section.
8348
8349 2016-02-08  Jason Merrill  <jason@redhat.com>
8350
8351         PR c++/69631
8352         * convert.c (convert_to_integer_1): Check dofold on truncation
8353         distribution.
8354         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8355         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8356         Rename from *_nofold.
8357         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8358         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8359
8360 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8361
8362         PR target/60410
8363         * tree.c (build_common_tree_nodes): Remove short_double argument.
8364         All callers changed.
8365         * tree.h (build_common_tree_nodes): Adjust declaration.
8366         * doc/invoke.texi (-fshort-double): Remove documentation.
8367         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8368         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8369         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8370         (append_linker_options): Don't handle OPT_fshort_double.
8371
8372         PR rtl-optimization/68730
8373         * lra-remat.c (insn_to_cand_activation): New static variable.
8374         (lra_remat): Allocate and free it.
8375         (create_cand): New arg activation. Initialize a field in
8376         insn_to_cand_activation if it is nonnull.
8377         (create_cands): Pass the activation insn to create_cand when making
8378         a candidate involving an output reload.  Reorganize code a little.
8379         (do_remat): Keep track of active status of candidates in a separate
8380         bitmap.
8381
8382 2016-02-08  Richard Biener  <rguenther@suse.de>
8383
8384         PR tree-optimization/69719
8385         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8386         Properly use absolute of the difference of the two offsets to
8387         compare or adjust the segment length.
8388
8389 2016-02-08  Richard Biener  <rguenther@suse.de>
8390             Jeff Law  <law@redhat.com>
8391
8392         PR target/68273
8393         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8394         types for anonymous SSA names.
8395
8396 2016-02-08   Richard Biener  <rguenther@suse.de>
8397
8398         PR rtl-optimization/69274
8399         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8400
8401 2016-02-08  Jeff Law  <law@redhat.com>
8402
8403         PR tree-optimization/65917
8404         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8405         equivalences from if (x == y) style conditionals.
8406         (loop_depth_of_name): Remove.
8407         (record_equality): Remove loop depth check.
8408         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8409         (const_and_copies::record_const_or_copy_raw): New member function.
8410         * tree-ssa-scopedtables.c
8411         (const_and_copies::record_const_or_copy_raw): New, factored out of
8412         (const_and_copies::record_const_or_copy): Call new member function.
8413
8414 2016-02-05  Jeff Law  <law@redhat.com>
8415
8416         PR tree-optimization/68541
8417         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8418         (count_stmts_in_block): New function.
8419         (poor_ifcvt_candidate_code): Likewise.
8420         (is_feasible_trace): Add some heuristics to determine when path
8421         splitting is profitable.
8422         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8423         is a diamond with a single exit.
8424
8425 2016-02-05  Martin Sebor  <msebor@redhat.com>
8426
8427         PR c++/69662
8428         * doc/invoke.texi: Update -Wplacement-new to take an optional
8429         argument.
8430
8431 2016-02-06  Richard Henderson  <rth@redhat.com>
8432
8433         PR c/69643
8434         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8435         out of non-standard address spaces.
8436
8437 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8438
8439         PR rtl-optimization/69691
8440         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8441
8442 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8443
8444         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8445         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8446         (*ieee128_mfvsrd_64bit): Likewise.
8447         (*ieee128_mfvsrd_32bit): Likewise.
8448
8449 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8450
8451         PR target/69369
8452         Revert r232560:
8453         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8454
8455         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8456         instrumented_version.
8457
8458 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8459
8460         * doc/invoke.texi (Optimize Options): In table of --param options
8461         rename second occurrence of tracer-min-branch-ratio to
8462         tracer-min-branch-probability, rename
8463         tracer-min-branch-ratio-feedback to
8464         tracer-min-branch-probability-feedback and clarify description,
8465         rename sched-spec-state-edge-prob-cutoff to
8466         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8467         to selsched-insns-to-rename, rename lto-minpartition to
8468         lto-min-partition, delete reorder-blocks-duplicate and
8469         reorder-blocks-duplicate-feedback.
8470
8471 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8472
8473         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8474         superfluous loops.
8475
8476 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8477
8478         * doc/extend.texi: S/390: Correct some typos.
8479
8480 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8481
8482         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8483
8484 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8485
8486         PR target/69625
8487         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8488         (s390_register_info_gprtofpr): Use new macros above.
8489         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8490         its name.
8491         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8492         its name.  Adjust restore and save gpr ranges.
8493         (s390_register_info_set_ranges): New function.
8494         (s390_register_info): Use new macros above.  Call
8495         s390_register_info_set_ranges.
8496         (s390_optimize_register_info): Likewise.
8497         (s390_hard_regno_rename_ok): Use new macros.
8498         (s390_hard_regno_scratch_ok): Likewise.
8499         (s390_emit_epilogue): Likewise.
8500         (s390_can_use_return_insn): Likewise.
8501         (s390_optimize_prologue): Likewise.
8502         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8503
8504 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8505
8506         PR bootstrap/69677
8507         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8508         alignment fixes.
8509         (ix86_option_override_internal): Disable TARGET_STV even for
8510         -m{incoming,preferred}-stack-boundary=3.
8511
8512 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8513
8514         * config.gcc: Mark deprecated rtems targets as obsolete.
8515
8516 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8517
8518         PR rtl-optimization/64682
8519         PR rtl-optimization/69567
8520         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8521         before I2 only if the register is both used and set in I2.
8522
8523 2016-02-04  DJ Delorie  <dj@redhat.com>
8524
8525         * config/msp430/msp430.c (msp430_start_function): Add function type.
8526
8527 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8528
8529         PR fortran/69368
8530         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8531
8532 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8533
8534         PR rtl-optimization/69577
8535         Revert:
8536         2015-10-29  Richard Henderson  <rth@redhat.com>
8537
8538         PR target/68124
8539         PR rtl-opt/67609
8540         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8541         sse check to the exact conditions of PR 67609.
8542
8543 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8544
8545         PR target/69667
8546         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8547         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8548         not allowed into the traditional Altivec registers.
8549         (movtd_64bit_nodm): Likewise.
8550         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8551
8552 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8553
8554         * config/aarch64/cortex-a57-fma-steering.c
8555         (aarch64_register_fma_steering): Remove "static" from arguments
8556         to register_pass.
8557
8558 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8559
8560         PR target/69619
8561         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8562         twice when complex.
8563
8564 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8565
8566         * doc/invoke.texi: Delete -mno-fma4.
8567
8568 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8569
8570         PR rtl-optimization/69577
8571         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8572         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8573         definitions.
8574
8575 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8576
8577         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8578         * config/arm/arm.c (neon_reinterpret): Remove.
8579         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8580         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8581         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8582         vreinterpretti): Remove.
8583         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8584         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8585         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8586         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8587         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8588         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8589         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8590         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8591         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8592         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8593         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8594         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8595         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8596         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8597         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8598         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8599         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8600         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8601         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8602         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8603         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8604         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8605         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8606         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8607         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8608         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8609         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8610         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8611         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8612         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8613         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8614         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8615         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8616         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8617         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8618         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8619         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8620         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8621         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8622         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8623         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8624         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8625         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8626         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8627         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8628         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8629         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8630         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8631         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8632         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8633         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8634         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8635         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8636         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8637         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8638         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8639         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8640         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8641         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8642         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8643         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8644         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8645         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8646         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8647         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8648         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8649         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8650         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8651         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8652         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8653         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8654         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8655         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8656         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8657         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8658         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8659         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8660         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8661         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8662         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8663         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8664         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8665         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8666         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8667         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8668         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8669         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8670         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8671         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8672         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8673         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8674         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8675         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8676         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8677         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8678         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8679         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8680         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8681         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8682         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8683         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8684         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8685         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8686
8687 2016-02-04  Martin Liska  <mliska@suse.cz>
8688
8689         PR sanitizer/69276
8690         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8691         that are gimple_store_p.
8692         (maybe_instrument_call): Likewise.
8693
8694 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8695
8696         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8697         register scaling out of memory reference and comment why.
8698
8699 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8700
8701         PR target/65932
8702         PR target/67714
8703         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8704         folding the source of a SET.
8705
8706 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8707
8708         PR target/65932
8709         PR target/67714
8710         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8711         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8712
8713 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8714
8715         PR target/65932
8716         PR target/67714
8717         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8718         HImode.
8719
8720 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8721
8722         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8723         * config/arm/arm.c (arm_set_current_function): Likewise.
8724
8725 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8726             Ilya Enkovich  <enkovich.gnu@gmail.com>
8727             H.J. Lu  <hongjiu.lu@intel.com>
8728
8729         PR target/69454
8730         * config/i386/i386.c (convert_scalars_to_vector): Remove
8731         stack alignment fixes.
8732         (ix86_option_override_internal): Disable TARGET_STV if stack
8733         might not be aligned enough.
8734         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8735
8736 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8737
8738         * gcc/config/i386/x86-tune.def: Disable default prefetching
8739         for -march=znver1.
8740
8741 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8742             Vladimir Makarov  <vmakarov@redhat.com>
8743
8744         PR target/69461
8745         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8746         in validating fused toc addresses.
8747
8748 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8749
8750         PR c/69627
8751         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8752         range->m_caret fields if range->m_show_caret_p is false.
8753
8754         PR target/69644
8755         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8756         Force oldval into register if it does not satisfy reg_or_short_operand
8757         predicate.  Fix up formatting.
8758
8759 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8760             Alexandre Oliva  <aoliva@redhat.com>
8761
8762         PR target/69461
8763         * lra-constraints.c (simplify_operand_subreg): Check additionally
8764         address validity after potential reloading.
8765         (process_address_1): Check insns validity.  In case of failure do
8766         nothing.
8767
8768 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8769
8770         PR target/69118
8771         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8772         Fix target.
8773
8774 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8775
8776         * wide-int.cc (canonize_uhwi): New function.
8777         (wi::divmod_internal): Use it.
8778
8779 2016-02-02  James Norris  <jnorris@codesourcery.com
8780
8781         * gimplify.c (omp_notice_variable): Add usage check.
8782
8783 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8784
8785         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8786         like LE, GE, LT, GT when emitting relational operator.
8787
8788 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8789
8790         * ira-costs.c (find_costs_and_classes): Add extra argument.
8791         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8792         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8793         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8794         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8795         Add best_class parameter, and return it if not ALL_REGS.
8796         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8797         Add parameter.
8798         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8799         Update target hook.
8800
8801 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8802
8803         * config/aarch64/aarch64.c
8804         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8805         (aarch64_ira_change_pseudo_allocno_class): New function.
8806
8807 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8808
8809         PR target/67032
8810         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8811
8812 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8813
8814         * config/avr/avr.c (avr_option_override): Set
8815         PARAM_ALLOW_STORE_DATA_RACES to 1.
8816
8817 2016-02-02  Richard Biener  <rguenther@suse.de>
8818
8819         PR tree-optimization/69595
8820         * match.pd: Add range test simplifications to true/false.
8821
8822 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8823
8824         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8825         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8826         instead.
8827
8828 2016-02-02  Richard Biener  <rguenther@suse.de>
8829
8830         PR tree-optimization/69606
8831         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8832         info on the result before moving a stmt.
8833
8834 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8835
8836         PR middle-end/68542
8837         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8838         branch with vector comparison.
8839         * config/i386/sse.md (VI48_AVX): New mode iterator.
8840         (define_expand "cbranch<mode>4): Add support for conditional branch
8841         with vector comparison.
8842         * tree-vect-loop.c (optimize_mask_stores): New function.
8843         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
8844         has_mask_store field of vect_info.
8845         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
8846         vectorized loops having masked stores after vec_info destroy.
8847         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
8848         correspondent macros.
8849         (optimize_mask_stores): Add prototype.
8850
8851 2016-02-02  Alan Modra  <amodra@gmail.com>
8852
8853         PR target/69548
8854         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
8855         allow subregs.
8856
8857 2016-02-02  Alan Modra  <amodra@gmail.com>
8858
8859         PR target/68662
8860         * config/rs6000/rs6000.c (need_toc_init): New var, set it
8861         whenever toc_label_name used.
8862         (rs6000_file_start): Don't set up toc section here,
8863         (rs6000_output_function_epilogue): do so here instead,
8864         (rs6000_xcoff_file_start): and here.
8865         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
8866         (load_toc_aix_di): Likewise.
8867
8868 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8869
8870         PR rtl-optimization/69592
8871         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
8872         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
8873         (num_sign_bit_copies_binary_arith_p): New inline function.
8874         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
8875
8876 2016-02-01  Jeff Law  <law@redhat.com>
8877
8878         PR tree-optimization/69580
8879         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
8880         * tree-ssa-threadbackward.c
8881         (fsm_find_control_statement_thread_paths): Do not try to walk
8882         through large PHI nodes.
8883
8884 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8885
8886         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
8887         when count is incremented above limit, don't analyze further
8888         insns afterwards.
8889
8890         * omp-low.c (oacc_parse_default_dims): Avoid
8891         -Wsign-compare warning, make sure value fits into int
8892         rather than just unsigned int.
8893
8894 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
8895
8896         PR tree-optimization/67921
8897         * fold-const.c (split_tree): New parameters.  Convert pointer
8898         type variable part to proper type before negating.
8899         (fold_binary_loc): Pass new arguments to split_tree.
8900
8901 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
8902
8903         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
8904         (nvptx_goacc_validate_dims): Extend to handle global defaults.
8905         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
8906         * doc/tm.texti: Rebuilt.
8907         * doc/invoke.texi (fopenacc-dim): Document.
8908         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
8909         (append_compiler_options): Likewise.
8910         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
8911         (oacc_parse_default_dims): New.
8912         (oacc_validate_dims): Add USED arg.  Select non-unity default when
8913         possible.
8914         (oacc_loop_fixed_partitions): Return mask of used partitions.
8915         (oacc_loop_auto_partitions): Emit dump info.
8916         (oacc_loop_partition): Return mask of used partitions.
8917         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
8918         loop partitioning and validation calls.
8919
8920 2016-02-01  Richard Biener  <rguenther@suse.de>
8921
8922         PR middle-end/69556
8923         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
8924
8925 2016-02-01  Richard Biener  <rguenther@suse.de>
8926
8927         PR tree-optimization/69574
8928         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
8929         of asserting return chrec_dont_know.
8930
8931 2016-02-01  Martin Liska  <mliska@suse.cz>
8932
8933         * mem-stats-traits.h: Add copyright header.
8934         * mem-stats.h: Likewise.
8935
8936 2016-02-01  Richard Biener  <rguenther@suse.de>
8937
8938         PR tree-optimization/69579
8939         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
8940         Do not propagate through abnormal PHI results.
8941
8942 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
8943
8944         * postreload.c (reload_cse_simplify): Remove dead code.
8945
8946 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8947
8948         PR rtl-optimization/69570
8949         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
8950         if there is more than one set, not if there is a single set.
8951
8952 2016-02-01  Richard Henderson  <rth@redhat.com>
8953
8954         PR rtl-opt/69535
8955         * combine.c (make_compound_operation): When looking through a
8956         subreg, make sure to re-extend to the width of the outer mode.
8957
8958 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
8959
8960         PR tree-optimization/69546
8961         * wide-int.cc (wi::divmod_internal): For unsigned division
8962         where both operands fit into uhwi, if o1 is 1 and o0 has
8963         msb set, if divident_prec is larger than bits per hwi,
8964         clear another quotient word and return 2 instead of 1.
8965         Similarly for remainder with msb in HWI set, if dividend_prec
8966         is larger than bits per hwi.
8967
8968 2016-01-29  Martin Jambor  <mjambor@suse.cz>
8969
8970         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
8971         Use short lowercase names.
8972         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
8973         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
8974         acq_rel one.  Protect warning agains segfaults if
8975         get_memory_order_name returns NULL.
8976         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
8977         with release semantics.  Do not warn if get_memory_order already did.
8978         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
8979         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
8980         if get_memory_order already did.
8981
8982 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
8983
8984         * doc/install.texi: Document that isl-0.16 is supported.
8985
8986 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
8987
8988         PR target/69299
8989         * config/i386/constraints.md (Bm): Describe as special memory
8990         constraint.
8991         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
8992         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8993         * genpreds.c (struct constraint_data): Add is_special_memory.
8994         (have_special_memory_constraints, special_memory_start): New
8995         static vars.
8996         (special_memory_end): Ditto.
8997         (add_constraint): Add new arg is_special_memory.  Add code to
8998         process its true value.  Update have_special_memory_constraints.
8999         (process_define_constraint): Pass the new arg.
9000         (process_define_register_constraint): Ditto.
9001         (choose_enum_order): Process special memory.
9002         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9003         function insn_extra_special_memory_constraint.
9004         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9005         * gensupport.c (process_rtx): Process
9006         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9007         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9008         * ira-lives.c (single_reg_class): Use
9009         insn_extra_special_memory_constraint.
9010         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9011         * lra-constraints.c (process_alt_operands): Ditto.
9012         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9013         * recog.c (asm_operand_ok, preprocess_constraints): Process
9014         CT_SPECIAL_MEMORY.
9015         * reload.c (find_reloads): Ditto.
9016         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9017         * stmt.c (parse_input_constraint): Use
9018         insn_extra_special_memory_constraint.
9019
9020 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9021
9022         PR target/69530
9023         * lra-splill.c (lra_final_code_change): Revert r229087 by
9024         removing all sub-registers.
9025
9026 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9027
9028         PR target/65604
9029         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9030
9031 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9032
9033         PR target/69551
9034         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9035         SSE1, copy target into the temporary reg first before recursing
9036         on it.
9037
9038 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9039
9040         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9041         with vm.
9042
9043 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9044
9045         * ginclude/stdarg.h: Test __cplusplus instead of
9046         __GXX_EXPERIMENTAL_CXX0X__.
9047
9048 2016-01-29  Richard Biener  <rguenther@suse.de>
9049
9050         PR tree-optimization/69547
9051         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9052         Do not mark clobbers necessary.
9053         (mark_all_reaching_defs_necessary_1): Likewise.
9054
9055 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9056
9057         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9058         declaration name with %qs and print it in both error messages.
9059         Also fix indentation.
9060
9061 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9062
9063         PR other/69006
9064         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9065         trailing blank line from error message.
9066
9067 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9068
9069         PR c++/69462
9070         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9071         for C++-11.
9072
9073 2016-01-29  Richard Biener  <rguenther@suse.de>
9074
9075         PR middle-end/69537
9076         * match.pd: Allow all integral types when simplifying a
9077         widening or sign-changing conversion.
9078
9079 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9080
9081         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9082         back to setting codegen_error to fail codegen.
9083
9084 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9085
9086         PR target/69459
9087         * config/i386/constraints.md (C): Only accept constant zero operand.
9088         (BC): New constraint.
9089         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9090         instead of C constraint.
9091         * doc/md.texi (Machine Constraints): Update description
9092         of C constraint.
9093
9094 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9095
9096         PR target/68400
9097         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9098
9099 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9100
9101         PR middle-end/69542
9102         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9103         non-debug insns.
9104
9105 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9106
9107         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9108         branches if using guessed profile.
9109
9110 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9111
9112         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9113
9114 2016-01-28  Richard Henderson  <rth@redhat.com>
9115
9116         PR target/69305
9117         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9118         * config/aarch64/aarch64-protos.h: Update.
9119         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9120         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9121         (aarch64_get_condition_code_1): Handle CC_Cmode.
9122         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9123         (*add<mode>3_compareC_cconly_imm): New.
9124         (*add<mode>3_compareC_cconly): New.
9125         (*add<mode>3_compareC_imm): New.
9126         (add<mode>3_compareC): New.
9127         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9128         to be first.  Use aarch64_carry_operation.
9129         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9130         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9131         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9132         (subti3): Use subdi3_compare1.
9133         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9134         (sub<mode>3_compare1): New.
9135         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9136         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9137         (*subsi3_carryin_uxtw): Likewise.
9138         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9139         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9140         * config/aarch64/iterators.md (DWI): New.
9141         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9142         (aarch64_borrow_operation): New.
9143
9144 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9145
9146         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9147         message when isl does not return a valid schedule.
9148
9149 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9150
9151         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9152         Remove comments from class declarations: they are already in the code
9153         close by the defs.
9154
9155 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9156
9157         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9158         codegen_error_p.
9159         (ternary_op_to_tree): Same.
9160         (unary_op_to_tree): Same.
9161         (nary_op_to_tree): Same.
9162         (gcc_expression_from_isl_expr_op): Same.
9163         (gcc_expression_from_isl_expression): Same.
9164         (graphite_create_new_loop): Same.
9165         (graphite_create_new_loop_guard): Same.
9166         (build_iv_mapping): Same.
9167         (graphite_create_new_guard): Same.
9168         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9169         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9170
9171 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9172
9173         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9174         instead of setting codegen_error to fail codegen.
9175
9176 2016-01-28  Jason Merrill  <jason@redhat.com>
9177
9178         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9179
9180 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9181
9182         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9183         Remove CONST_INT_P check in CCMP cost calculation.
9184
9185 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9186
9187         * config/aarch64/aarch64.c (generic_vector_cost):
9188         Set vec_permute_cost.
9189         (cortexa57_vector_cost): Likewise.
9190         (exynosm1_vector_cost): Likewise.
9191         (xgene1_vector_cost): Likewise.
9192         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9193         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9194         Add vec_permute_cost entry.
9195
9196 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9197
9198         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9199         immediate as %1.
9200         (add<mode>3_compare0): Likewise.
9201         (addsi3_compare0_uxtw): Likewise.
9202         (add<mode>3nr_compare0): Likewise.
9203         (compare_neg<mode>): Likewise.
9204         (<optab><mode>3): Likewise.
9205
9206 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9207
9208         * tree-vect-stmts.c (vectorizable_comparison): Add
9209         NULL check for vectype.
9210
9211 2016-01-28  Richard Biener  <rguenther@suse.de>
9212
9213         PR tree-optimization/69466
9214         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9215         Account for PHIs we couldn't duplicate.
9216
9217 2016-01-28  Martin Liska  <mliska@suse.cz>
9218
9219         PR pch/68758
9220         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9221         instead of ENABLE_VALGRIND_CHECKING.
9222
9223 2016-01-27  Richard Henderson  <rth@redhat.com>
9224
9225         PR rtl-opt/69447
9226         * lra-remat.c (subreg_regs): New.
9227         (dump_candidates_and_remat_bb_data): Dump it.
9228         (operand_to_remat): Reject if operand in subreg_regs.
9229         (set_bb_regs): Collect subreg_regs.
9230         (lra_remat): Init and free subreg_regs.  Compute
9231         calculate_local_reg_remat_bb_data before create_cands.
9232
9233 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9234
9235         PR target/68986
9236         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9237         change stack_alignment_needed for __tls_get_addr call.
9238
9239 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9240
9241         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9242
9243 2016-01-27  Jeff Law  <law@redhat.com>
9244
9245         PR tree-optimization/68398
9246         PR tree-optimization/69196
9247         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9248         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9249         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9250         Only count PHIs in the last block in the path.  The others will
9251         const/copy propagate away.  Add heuristic to allow more irreducible
9252         subloops to be created when it is likely profitable to do so.
9253
9254         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9255         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9256         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9257
9258 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9259
9260         PR lto/69254
9261         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9262         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9263         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9264         * tree-streamer-in.c: Include asan.h.
9265         (streamer_get_builtin_tree): For builtins in sanitizer
9266         range call initialize_sanitizer_builtins and retry.
9267
9268 2016-01-27  Ian Lance Taylor  <iant@google.com>
9269
9270         * common.opt (fkeep-gc-roots-live): New undocumented option.
9271         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9272         -fkeep-gc-roots-live, skip pointers.
9273         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9274         NULL.
9275
9276 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9277
9278         PR target/69512
9279         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9280         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9281
9282 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9283
9284         PR target/68380
9285         * configure.ac: NetBSD provides SSP in its C library.
9286         * configure: Updated.
9287
9288 2016-01-27  Richard Biener  <rguenther@suse.de>
9289
9290         PR tree-optimization/69166
9291         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9292         reduction code for commutativity / associativity.
9293
9294 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9295
9296         PR tree-optimization/69355
9297         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9298         total_scalarization fails.
9299
9300 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9301
9302         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9303         power9.
9304
9305 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9306
9307         PR target/69245
9308         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9309         Move arm_reset_previous_fndecl and set_target_option_current_node in
9310         the conditional part.  Call save_restore_target_globals.
9311         * config/arm/arm.c (arm_set_current_function):
9312         Refactor to better support #pragma target and attribute mix.
9313         Call save_restore_target_globals.
9314         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9315
9316 2016-01-27  Martin Liska  <mliska@suse.cz>
9317
9318         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9319         reference for an HSA kernel and its host function.
9320
9321 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9322
9323         PR tree-optimization/69399
9324         * wide-int.h (wi::lrshift): For larger precisions, only
9325         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9326
9327 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9328
9329         * config/arc/predicates.md (proper_comparison_operator): Reject
9330         constant-constant comparison.
9331
9332 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9333
9334         PR tree-optimization/69110
9335         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9336         DR_NUM_DIMENSIONS == 0.
9337
9338 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9339             Sebastian Pop  <s.pop@samsung.com>
9340
9341         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9342         isl_ast_op_cond and isl_ast_op_select.
9343         (gcc_expression_from_isl_expr_op): Same.
9344
9345 2016-01-26  Jason Merrill  <jason@redhat.com>
9346
9347         PR c++/68782
9348         * tree.c (recompute_constructor_flags): Split out from
9349         build_constructor.
9350         (verify_constructor_flags): New.
9351         * tree.h: Declare them.
9352
9353 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9354
9355         PR rtl-optimization/69217
9356         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9357         are no TYPE_FIELDS set for the record type.
9358
9359 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9360
9361         PR target/68662
9362         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9363         toc_label_name unconditionally.
9364         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9365         SYMBOL_REF string.  Use toc_label_name instead of constructing
9366         LCTOC1.
9367         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9368         constructing LCTOC1.
9369
9370 2016-01-26  Martin Sebor  <msebor@redhat.com>
9371
9372         PR other/69477
9373         * doc/extend.texi (Common Type Attributes): Move text that talks about
9374         attribute packed from attribute aligned to the section discussing
9375         the former attribute for clarity.
9376
9377 2016-01-26  Richard Henderson  <rth@redhat.com>
9378
9379         PR middle-end/60908
9380         * trans-mem.c (tm_region_init): Mark entry block as visited.
9381
9382 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9383
9384         PR other/69006
9385         * diagnostic-show-locus.c (layout::print_source_line): Replace
9386         call to pp_newline with call to layout::print_newline.
9387         (layout::print_annotation_line): Likewise.
9388         (layout::move_to_column): Likewise.
9389         (layout::print_any_fixits): After printing any fixits, print a
9390         trailing newline, if necessary.
9391         (layout::print_newline): New method, resetting any colorization
9392         before a newline.
9393         (diagnostic_show_locus): Move the pp_newline to before the
9394         early bailout.  Remove dummy block enclosing the layout instance.
9395         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9396         of pp_newline_and_flush with pp_flush.
9397         (diagnostic_append_note): Delete use of pp_newline.
9398         (diagnostic_append_note_at_rich_loc): Delete.
9399         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9400         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9401         when newline characters are added to the buffer.
9402
9403 2016-01-26  Michael Matz  <matz@suse.de>
9404
9405         * configure.ac (ac_cv_std_swap_in_utility): New test.
9406         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9407         * configure: Regenerate.
9408         * config.in: Regenerate.
9409
9410 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9411
9412         * config/arc/arc.md (cstoresi4): Force operand into register.
9413         (arcset<code>): Fix predicate.
9414         (arcsetltu): Likewise.
9415         (arcsetgeu): Likewise.
9416         (arcsethi): Likewise.
9417         (arcsetls): Likewise.
9418
9419 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9420
9421         PR tree-optimization/69483
9422         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9423         if base has error_mark_node type.
9424
9425 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9426
9427         PR target/68620
9428         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9429         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9430         New helper macros.
9431         (vget_lane_f16): Handle big-endian.
9432         (vgetq_lane_f16): Likewise.
9433         (vset_lane_f16): Likewise.
9434         (vsetq_lane_f16): Likewise.
9435         * config/arm/iterators.md (VQXMOV): Add V8HF.
9436         (VDQ): Add V4HF and V8HF.
9437         (V_reg): Handle V4HF and V8HF.
9438         (Is_float_mode): Likewise.
9439         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9440         neon_vdup_nv8hf): New patterns.
9441         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9442         Use VD_LANE iterator.
9443         (neon_vld1_dup<mode>): Use VQ2 iterator.
9444
9445 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9446
9447         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9448         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9449         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9450         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9451         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9452         (oacc_validate_dims): Add LEVEL arg, don't return level.
9453         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9454         oacc_validate_dims.
9455         (execute_oacc_device_lower): Adjust, add more dump output.
9456         * tree-ssa-loop.c (gate_oacc_kernels): Use
9457         oacc_fn_attrib_kernels_p.
9458         * tree-parloops.c (create_parallel_loop): Adjust
9459         set_oacc_fn_attrib call.
9460
9461 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9462
9463         PR lto/69254
9464         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9465         (append_compiler_options): Handle -fcilkplus.
9466         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9467
9468 2016-01-26  Nick Clifton  <nickc@redhat.com>
9469
9470         PR target/66655
9471         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9472         been marked as DECL_ONE_ONLY but we do not the means to make it
9473         so, then do not allow it to bind locally.
9474
9475 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9476
9477         PR lto/69254
9478         * opts.h (parse_sanitizer_options): New prototype.
9479         * opts.c (sanitizer_opts): New array.
9480         (parse_sanitizer_options): New function.
9481         (common_handle_option): Use parse_sanitizer_options.
9482
9483 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9484
9485         PR target/68986
9486         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9487         alignment adjustment to ...
9488         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9489         __tls_get_addr.
9490         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9491         if __tls_get_addr is called.
9492
9493 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9494
9495         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9496
9497 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9498
9499         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9500
9501 2016-01-26  Richard Biener  <rguenther@suse.de>
9502
9503         PR middle-end/69467
9504         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9505
9506 2016-01-26  Richard Biener  <rguenther@suse.de>
9507
9508         PR tree-optimization/69452
9509         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9510         (move_computations_dom_walker::before_dom_children): Rename
9511         to ...
9512         (move_computations_worker): This.
9513         (move_computations): Perform an RPO rather than a DOM walk.
9514
9515 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9516
9517         PR target/69442
9518         * combine.c (combine_instructions): For REG_EQUAL note with
9519         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9520         to the underlying register.
9521         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9522         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9523
9524 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9525
9526         PR target/67896
9527         * config/aarch64/aarch64-builtins.c
9528         (aarch64_init_simd_builtin_types): Do not set structural
9529         equality to __Poly{8,16,64,128}_t types.
9530
9531 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9532
9533         PR tree-optimization/69400
9534         * wide-int.cc (wi_pack): Take the precision as argument and
9535         perform canonicalization here rather than in the callers.
9536         Use the main loop to handle all full-width HWIs.  Add a
9537         zero HWI if in_len isn't a full result.
9538         (wi::divmod_internal): Update accordingly.
9539         (wi::mul_internal): Likewise.  Simplify.
9540
9541 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9542             Sebastian Pop  <s.pop@samsung.com>
9543
9544         * graphite-poly.c (apply_poly_transforms): Simplify.
9545         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9546         (print_isl_map): Same.
9547         (print_isl_union_map): Same.
9548         (print_isl_schedule): New.
9549         (debug_isl_schedule): New.
9550         * graphite-dependences.c (scop_get_reads): Do not call
9551         isl_union_map_add_map that is undocumented isl functionality.
9552         (scop_get_must_writes): Same.
9553         (scop_get_may_writes): Same.
9554         (scop_get_original_schedule): Remove.
9555         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9556         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9557         (compute_deps): Remove.
9558         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9559         (debug_schedule_ast): New.
9560         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9561         set_separate_option.
9562         (graphite_regenerate_ast_isl): Add dump.
9563         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9564         from scop->transformed_schedule.
9565         (graphite_regenerate_ast_isl): Add more dump.
9566         * graphite-optimize-isl.c (optimize_isl): Set
9567         scop->transformed_schedule.  Check whether schedules are equal.
9568         (apply_poly_transforms): Move here.
9569         * graphite-poly.c (apply_poly_transforms): ... from here.
9570         (free_poly_bb): Static.
9571         (free_scop): Static.
9572         (pbb_number_of_iterations_at_time): Remove.
9573         (print_isl_ast): New.
9574         (debug_isl_ast): New.
9575         (debug_scop_pbb): New.
9576         * graphite-scop-detection.c (print_edge): Move.
9577         (print_sese): Move.
9578         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9579         (build_scop_scattering): Remove.
9580         (create_pw_aff_from_tree): Assert instead of bailing out.
9581         (add_condition_to_pbb): Remove unused code, do not fail.
9582         (add_conditions_to_domain): Same.
9583         (add_conditions_to_constraints): Remove.
9584         (build_scop_context): New.
9585         (add_iter_domain_dimension): New.
9586         (build_iteration_domains): Initialize pbb->iterators.
9587         Call add_conditions_to_domain.
9588         (nested_in): New.
9589         (loop_at): New.
9590         (index_outermost_in_loop): New.
9591         (index_pbb_in_loop): New.
9592         (outermost_pbb_in): New.
9593         (add_in_sequence): New.
9594         (add_outer_projection): New.
9595         (outer_projection_mupa): New.
9596         (add_loop_schedule): New.
9597         (build_schedule_pbb): New.
9598         (build_schedule_loop): New.
9599         (embed_in_surrounding_loops): New.
9600         (build_schedule_loop_nest): New.
9601         (build_original_schedule): New.
9602         (build_poly_scop): Call build_original_schedule.
9603         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9604         (free_poly_dr): Remove.
9605         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9606         (free_poly_bb): Remove.
9607         (debug_loop_vec): Remove.
9608         (print_isl_ast): Declare.
9609         (debug_isl_ast): Declare.
9610         (scop_do_interchange): Remove.
9611         (scop_do_strip_mine): Remove.
9612         (scop_do_block): Remove.
9613         (flatten_all_loops): Remove.
9614         (optimize_isl): Remove.
9615         (pbb_number_of_iterations_at_time): Remove.
9616         (debug_scop_pbb): Declare.
9617         (print_schedule_ast): Declare.
9618         (debug_schedule_ast): Declare.
9619         (struct scop): Remove schedule.  Add original_schedule,
9620         transformed_schedule.
9621         (free_gimple_poly_bb): Remove.
9622         (print_generated_program): Remove.
9623         (debug_generated_program): Remove.
9624         (unify_scattering_dimensions): Remove.
9625         * sese.c (print_edge): ... here.
9626         (print_sese): ... here.
9627         (debug_edge): ... here.
9628         (debug_sese): ... here.
9629         * sese.h (print_edge): Declare.
9630         (print_sese): Declare.
9631         (dump_edge): Declare.
9632         (dump_sese): Declare.
9633
9634 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9635             Sebastian Pop  <s.pop@samsung.com>
9636
9637         * Makefile.in: Set ISLVER in site.exp.
9638
9639 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9640
9641         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9642         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9643         through DECL_VALUE_EXPR for expansion.
9644
9645 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9646
9647         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9648         the frame info after reload completed.
9649
9650 2016-01-25  Jeff Law  <law@redhat.com>
9651
9652         PR tree-optimization/69196
9653         PR tree-optimization/68398
9654         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9655         tree-ssa-threadupdate.c.
9656         (determine_bb_domination_status): Prototype
9657         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9658         (determine_bb_domination_status): No longer static.
9659         (valid_jump_thread_path): Remove code to detect characteristics
9660         of the jump thread path not associated with correctness.
9661         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9662         Correct test for thread path length.  Count PHIs for real operands as
9663         statements that need to be copied.  Do not count ASSERT_EXPRs.
9664         Look at all the blocks in the thread path.  Compute and selectively
9665         filter thread paths based on threading through the latch, threading
9666         a multiway branch or crossing a multiway branch.
9667
9668 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9669
9670         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9671         decl with __attribute__ ((unused)) annotation.
9672
9673 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9674
9675         PR target/69421
9676         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9677         of operands is compatible with a statement vectype.
9678
9679 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9680
9681         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9682         improve wording for mixed storage order support.
9683
9684 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9685
9686         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9687         (vcvt_u64_f64): Likewise.
9688         (vcvta_s64_f64): Likewise.
9689         (vcvta_u64_f64): Likewise.
9690         (vcvtm_s64_f64): Likewise.
9691         (vcvtm_u64_f64): Likewise.
9692         (vcvtn_s64_f64): Likewise.
9693         (vcvtn_u64_f64): Likewise.
9694         (vcvtp_s64_f64): Likewise.
9695         (vcvtp_u64_f64): Likewise.
9696
9697 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9698
9699         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9700         (arc_init): Check validity mll64 option.
9701         (arc_save_restore): Use double load/store instruction.
9702         (arc_expand_movmem): Likewise.
9703         (arc_split_move): Don't split if we have double load/store
9704         instructions. Returns a boolean.
9705         (arc_process_double_reg_moves): Change function to return boolean
9706         instead of a sequence of instructions.
9707         (arc_dwarf_register_span): New function.
9708         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9709         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9710         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9711         (*movdf_insn): Likewise.
9712         * config/arc/arc.opt (mll64): New option.
9713         * config/arc/predicates.md (even_register_operand): New predicate.
9714         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9715
9716 2016-01-25  Richard Biener  <rguenther@suse.de>
9717
9718         PR lto/69393
9719         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9720         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9721         DECL_NAMELESS.
9722         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9723
9724 2016-01-25  Richard Biener  <rguenther@suse.de>
9725
9726         PR tree-optimization/69376
9727         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9728         flag.
9729         (VN_INFO_ANTI_RANGE_P): New inline.
9730         (VN_INFO_RANGE_TYPE): Likewise.
9731         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9732         SSA_NAME_ANTI_RANGE_P.
9733         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9734         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9735         Properly query VN_INFO_RANGE_TYPE.
9736
9737 2016-01-25  Nick Clifton  <nickc@redhat.com>
9738
9739         PR target/66655
9740         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9741
9742 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9743
9744         PR tree-optimization/69426
9745         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9746         removed clobber.
9747
9748 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9749
9750         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9751         "the the" with "the" in the comments.
9752         * ipa-devirt.c (build_type_inheritance_graph,
9753         update_type_inheritance_graph): Likewise.
9754         * tree.c (build_function_type_list_1): Likewise.
9755         * cfgloopmanip.c (scale_loop_profile): Likewise.
9756         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9757         * gimple-ssa-split-paths.c
9758         (find_block_to_duplicate_for_splitting_paths): Likewise.
9759         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9760         * expr.c (convert_move): Likewise.
9761         * var-tracking.c (vt_stack_adjustments): Likewise.
9762         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9763         * tree-vrp.c (test_for_singularity): Likewise.
9764
9765         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9766         directly instead of building a temporary tree.
9767
9768         PR bootstrap/69434
9769         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9770         remove <algorithm> include.
9771
9772 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9773
9774         PR target/69432
9775         * config/i386/i386.c: Include dojump.h.
9776         (expand_small_movmem_or_setmem,
9777         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9778         fixes.
9779         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9780         if dynamic_check != -1.
9781
9782 2016-01-21  Jeff Law  <law@redhat.com>
9783
9784         PR middle-end/69347
9785         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9786         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9787         into dominated_by_p.
9788         (cprop_into_successor_phis): Avoid unnecessary tests.
9789
9790 2016-01-22  Richard Henderson  <rth@redhat.com>
9791
9792         PR target/69416
9793         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9794         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9795
9796 2016-01-22  Michael Matz  <matz@suse.de>
9797
9798         * system.h (string, algorithm): Include only conditionally.
9799         (new): Include always under C++.
9800         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9801         * final.c (toplevel): Ditto.
9802         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9803         * genconditions.c (write_header): Make gencondmd.c define
9804         INCLUDE_STRING.
9805         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9806
9807         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9808         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9809
9810 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9811
9812         PR target/68674
9813         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9814
9815 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9816
9817         PR target/69403
9818         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9819         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9820         get assigned the same register.
9821
9822 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9823
9824         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9825
9826 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9827
9828         * config/arm/arm-c.c (arm_pragma_target_parse):
9829         Remove warn_builtin_macro_redefined overwrite.
9830
9831 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9832
9833         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9834         flag_non_call_exceptions compatibility.
9835
9836 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9837
9838         PR debug/66668
9839         * dwarf2out.c (add_child_die_after): New function.
9840         (dwarf_qual_info_t): New type.
9841         (dwarf_qual_info): New variable.
9842         (qualified_die_p): New function.
9843         (modified_type_die): For -fdebug-types-section, ensure
9844         canonical order of qualifiers.  Put qualified DIEs adjacent
9845         to the corresponding non-qualified type DIE and search there
9846         for existing qualified DIEs.
9847
9848 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9849
9850         * doc/extend.texi (scalar_storage_order type attribute): Document
9851         restriction on type punning and aliasing, and remove future tense.
9852
9853 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
9854
9855         PR target/69252
9856         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
9857         first stage.
9858
9859 2016-01-21  Jeff Law  <law@redhat.com>
9860
9861         PR middle-end/69347
9862         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
9863         useless call to record_temporary_equivalences.
9864         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
9865         allocate 10 slots in the bb_path vector and let it grow as needed.
9866         (fsm_find_control_statement_thread_paths): Similarly for the next_path
9867         vector.
9868
9869 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9870
9871         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
9872         Detangle.
9873         * configure: Regenerate.
9874
9875 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
9876
9877         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
9878         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
9879
9880 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9881
9882         PR middle-end/66178
9883         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
9884         drop EXPAND_INITIALIZER.
9885         * rtl.h (contains_symbolic_reference_p): Declare.
9886         * rtlanal.c (contains_symbolic_reference_p): New function.
9887         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
9888         a subtraction into a NOT if symbolic constants are involved.
9889
9890 2016-01-21  Anton Blanchard  <anton@samba.org>
9891             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9892
9893         PR target/63354
9894         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
9895         #define.
9896         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
9897         function.
9898
9899 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9900
9901         * config/microblaze/microblaze.c
9902         (get_branch_target): New.
9903         (insert_wic_for_ilb_runout): New.
9904         (insert_wic): New.
9905         (microblaze_machine_dependent_reorg): New.
9906         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
9907         * config/microblaze/microblaze.md
9908         (UNSPEC_IPREFETCH): Define.
9909         (iprefetch): New pattern
9910         * config/microblaze/microblaze.opt
9911         (mxl-prefetch): New flag.
9912
9913 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9914
9915         * config/microblaze/microblaze.h
9916         (FIXED_REGISTERS): Update in macro.
9917         (CALL_USED_REGISTERS): Update in macro.
9918
9919 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
9920
9921         PR rtl-optimization/68920
9922         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
9923         moves.
9924
9925 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9926
9927         PR rtl-optimization/68990
9928         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
9929         pseudo instead of inheritance ones.
9930
9931 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9932             Nick Clifton  <nickc@redhat.com>
9933
9934         PR target/69129
9935         PR target/69012
9936         * config/mips/mips.c (mips_compute_frame_info): Initialise
9937         args_size and hard_frame_pointer_offset fields of the frame
9938         structure before calling mips_global_pointer.
9939
9940 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9941
9942         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
9943         label reference.
9944         * configure: Regenerate.
9945
9946 2016-01-21  Richard Biener  <rguenther@suse.de>
9947
9948         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
9949
9950 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9951
9952         * config/s390/s390.c (s390_asm_declare_function_size): Add code
9953         to actually emit the .size directive.
9954
9955 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
9956              Jakub Jelinek  <jakub@redhat.com>
9957
9958         PR target/69187
9959         PR target/65624
9960         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
9961         args array size by one to avoid buffer overflow.
9962
9963 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9964
9965         * config/s390/s390.md (pool_section_start): Use switch_to_section
9966         to select proper read-only data section instead of hardcoding
9967         .rodata.
9968         (pool_section_end): Use switch_to_section to match the above.
9969
9970 2016-01-21  Richard Biener  <rguenther@suse.de>
9971
9972         PR tree-optimization/69378
9973         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
9974         (set_ssa_val_to): Use it for dominance checks taking into
9975         account not executable edges.
9976
9977 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
9978
9979         PR c++/69355
9980         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
9981         for bitsize instead of GET_MODE_PRECISION (mode).
9982
9983 2016-01-20  Martin Sebor  <msebor@redhat.com>
9984
9985         PR c/52291
9986         * extend.texi (__sync Builtins): Clarify the semantics of
9987         __sync_fetch_and_OP built-ins on pointers.
9988         (__atomic Builtins): Same.
9989
9990 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9991             Sebastian Pop  <s.pop@samsung.com>
9992
9993         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
9994         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
9995         (is_valid_rename): Same.
9996         (translate_isl_ast_to_gimple::get_rename): Same.
9997         (translate_isl_ast_to_gimple::rename_all_uses): Same.
9998         (translate_isl_ast_to_gimple::rename_uses): Same.
9999         (get_new_name): Check for close_phi nodes.
10000         (copy_loop_phi_args): Use phi_node_kind.
10001         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10002         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10003
10004 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10005             Sebastian Pop  <s.pop@samsung.com>
10006
10007         Revert commit r229783.
10008         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10009         Remove use of parameter_rename_map.
10010         (copy_def): Remove.
10011         (copy_internal_parameters): Remove.
10012         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10013         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10014         (free_sese_info): Do not free parameter_rename_map.
10015         (set_rename): Do not use parameter_rename_map.
10016         (rename_uses): Update call to set_rename.
10017         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10018         * sese.h (parameter_rename_map_t): Remove.
10019         (struct sese_info_t): Remove field parameter_rename_map.
10020
10021 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10022             Sebastian Pop  <s.pop@samsung.com>
10023
10024         * graphite-isl-ast-to-gimple.c: Fix comment.
10025         * graphite-scop-detection.c (defined_in_loop_p): New.
10026         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10027         names defined in loop.
10028
10029 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10030             Sebastian Pop  <s.pop@samsung.com>
10031
10032         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10033         Discard unstructured if-then-else regions.
10034
10035 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10036             Sebastian Pop  <s.pop@samsung.com>
10037
10038         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10039         (cleanup_loop_iter_dom): Remove.
10040         (build_loop_iteration_domains): Remove.
10041         (build_scop_context): Remove.
10042         (build_scop_iteration_domain): Remove.
10043         (add_loop_constraints): New.
10044         (build_iteration_domains): New.
10045         (build_poly_scop): Call build_iteration_domains.
10046
10047 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10048             Sebastian Pop  <s.pop@samsung.com>
10049
10050         * graphite-scop-detection.c
10051         (scop_detection::harmful_loop_in_region): Free dom and loops.
10052         (scop_detection::loop_body_is_valid_scop): Free bbs.
10053
10054 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10055             Sebastian Pop  <s.pop@samsung.com>
10056
10057         * graphite-scop-detection.c (record_loop_in_sese): New.
10058         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10059         (build_scops): Remove call to build_sese_loop_nests.
10060         * sese.c (sese_record_loop): Remove.
10061         (build_sese_loop_nests): Remove.
10062         (new_sese_info): Remove region->loops.
10063         (free_sese_info): Same.
10064         * sese.h (sese_contains_loop): Same.
10065         (build_sese_loop_nests): Remove.
10066         (sese_contains_loop): Remove.
10067
10068 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10069             Sebastian Pop  <s.pop@samsung.com>
10070
10071         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10072         loop_is_valid_in_scop.
10073         (scop_detection::harmful_stmt_in_region): Renamed
10074         harmful_loop_in_region.
10075         Call loop_is_valid_in_scop.
10076
10077 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10078             Sebastian Pop  <s.pop@samsung.com>
10079
10080         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10081         isl_ast_node_mark.
10082
10083 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10084             Sebastian Pop  <s.pop@samsung.com>
10085
10086         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10087         * graphite.h (struct poly_bb): Remove field is_reduction.
10088         (PBB_IS_REDUCTION): Remove.
10089
10090 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10091             Sebastian Pop  <s.pop@samsung.com>
10092
10093         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10094         (add_pdr_constraints): Same.
10095         (scop_get_reads): Same.
10096         (scop_get_must_writes): Same.
10097         (scop_get_may_writes): Same.
10098         (scop_get_original_schedule): Same.
10099         (extend_schedule): Same.
10100         (apply_schedule_on_deps): Same.
10101         (carries_deps): Same.
10102         (compute_deps): Same.
10103         (scop_get_dependences): Same.
10104         * graphite-isl-ast-to-gimple.c
10105         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10106         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10107         (get_schedule_for_band_list): Same.
10108         (get_schedule_map): Same.
10109         (apply_schedule_map_to_scop): Same.
10110         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10111         (build_loop_iteration_domains): Same.
10112         (add_condition_to_pbb): Same.
10113         (add_param_constraints): Same.
10114         (pdr_add_memory_accesses): Same.
10115         (pdr_add_data_dimensions): Same.
10116
10117 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10118
10119         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10120         requirements.
10121
10122 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10123
10124         * common.opt (feliminate-dwarf2-dups): Replace references to
10125         "DWARF 2" with just "DWARF".
10126         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10127         * doc/extend.texi: Likewise.
10128         * doc/cpp.texi: Likewise.
10129         * doc/invoke.texi: Likewise.
10130         (Option Summary): Add -gdwarf to list of Debugging Options.
10131         (Debugging Options): Document -gdwarf.
10132         * doc/contrib.texi: Spell "DWARF" like that.
10133
10134 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10135
10136         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10137         warning.  Fix up formatting.
10138
10139         PR middle-end/67653
10140         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10141         attempt to mark memory input operand addressable and
10142         call prepare_gimple_addressable in that case.  Don't adjust
10143         input_location for diagnostics, use error_at instead.
10144
10145 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10146
10147         * config/rs6000/ppc-auxv.h: New file.
10148         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10149         (cpu_is): Likewise.
10150         (cpu_supports): Likewise.
10151         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10152         (cpu_is_info): New variable.
10153         (cpu_supports_info): Likewise.
10154         (tcb_verification_symbol): Likewise.
10155         (cpu_builtin_p): Likewise.
10156         (cpu_expand_builtin): New function.
10157         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10158         (rs6000_init_builtins): Likewise.
10159         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10160         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10161         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10162         * configure: Regenerate.
10163         * config.in: Likewise.
10164         * doc/extend.texi (PowerPC Built-in Functions): Document
10165         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10166
10167 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10168
10169         PR target/68609
10170         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10171         domain check.
10172         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10173         for V4SFmode.
10174
10175 2016-01-20  Richard Henderson  <rth@redhat.com>
10176
10177         PR bootstrap/69343
10178         PR bootstrap/69339
10179         PR tree-opt/68964
10180         Revert:
10181         * tree.c (tm_define_builtin): New.
10182         (find_tm_vector_type): New.
10183         (build_tm_vector_builtins): New.
10184         (build_common_builtin_nodes): Call it.
10185
10186 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10187
10188         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10189         (arm_fp_ok): Likewise.
10190         (arm_fp): Likewise.
10191         (arm_crypto): Likewise.
10192
10193 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10194             Richard Biener  <rguenther@suse.de>
10195
10196         PR tree-optimization/69328
10197         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10198         vectors have same number of elements.
10199         (vectorizable_condition): Fix masked version recognition.
10200
10201 2016-01-20  Richard Biener  <rguenther@suse.de>
10202
10203         PR tree-optimization/69345
10204         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10205         (VN_INFO_PTR_INFO): Likewise.
10206         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10207         info when it is equal between non-dominating SSA names.
10208         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10209         Make sure to look at original SSA infos.
10210
10211 2016-01-20  Jeff Law  <law@redhat.com>
10212
10213         PR target/25114
10214         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10215         extracted from ...
10216         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10217         (pc_or_label_operand): New predicate.
10218         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10219         tests for small integers that are 2^n - 1.
10220
10221 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10222
10223         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10224
10225 2016-01-19  Jeff Law  <law@redhat.com>
10226
10227         PR middle-end/69347
10228         * tree-ssa-threadbackwards.c
10229         (fsm_find_control_statement_thread_paths): Do not try to lookup
10230         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10231
10232 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10233
10234         * doc/lto.texi: Remove text that says only Gold has linker plugin
10235         support.
10236
10237 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10238
10239         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10240         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10241         the DIE accordingly.
10242         (modified_type_die): Add REVERSE parameter and pass it recursively,
10243         as well as to base_type_die.  Adjust presence check accordingly.
10244         (base_type_for_mode): Adjust call to modified_type_die.
10245         (add_type_attribute): Add REVERSE parameter and pass it to
10246         modified_type_die.
10247         (generic_parameter_die): Adjust call to add_type_attribute.
10248         (add_scalar_info): Likewise.
10249         (add_subscript_info): Likewise.
10250         (gen_array_type_die): Likewise.
10251         (gen_descr_array_type_die): Likewise.
10252         (gen_entry_point_die): Likewise.
10253         (gen_enumeration_type_die): Likewise.
10254         (gen_formal_parameter_die): Likewise.
10255         (gen_subprogram_die): Likewise.
10256         (gen_variable_die ): Likewise.
10257         (gen_const_die): Likewise.
10258         (gen_field_die): Likewise.
10259         (gen_pointer_type_die): Likewise.
10260         (gen_reference_type_die): Likewise.
10261         (gen_ptr_to_mbr_type_die): Likewise.
10262         (gen_inheritance_die): Likewise.
10263         (gen_subroutine_type_die): Likewise.
10264         (gen_typedef_die): Likewise.
10265         (force_type_die): Adjust call to modified_type_die.
10266
10267 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10268
10269         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10270         flow throughout the file.  Fix broken link to Objective-C 2.0
10271         documentation.
10272         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10273         errors.
10274
10275 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10276
10277         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10278
10279 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10280
10281         PR ipa/66223
10282         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10283         (maybe_record_node): Record cxa_pure_virtual as the only possible
10284         target if there are not ohter candidates.
10285         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10286
10287 2016-01-19  Richard Biener  <rguenther@suse.de>
10288
10289         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10290         (get_memory_order): Likewise.
10291
10292 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10293
10294         * tree-vect-stmts.c (vectorizable_store): Check
10295         rhs vectype.
10296
10297 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10298
10299         PR jit/68446
10300         * gcc.c (driver::decode_argv): Add call to
10301         init_opts_obstack before init_options_struct.
10302         * opts.c (init_opts_obstack): Remove idempotency.
10303         (init_options_struct): Replace call to init_opts_obstack
10304         with a gcc_assert to verify that it has already been called.
10305         * toplev.c (toplev::main): Add call to init_opts_obstack before
10306         calls to init_options_struct.
10307         (toplev::finalize): Move cleanup of opts_obstack next to
10308         cleanup of save_decoded_options, clearing the latter, and
10309         save_decoded_options_count.
10310
10311 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10312
10313         PR target/69135
10314         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10315         attribute to unconditional.  Remove %? from output template.
10316
10317 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10318             Jiong Wang  <jiong.wang@arm.com>
10319
10320         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10321         generated from different expand order.
10322
10323 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10324
10325         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10326         Add support for CCMP costing.
10327
10328 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10329
10330         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10331         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10332         (fccmpe<mode>): Likewise.
10333         (fcmp): Rename to fcmp and globalize pattern.
10334         (fcmpe): Likewise.
10335         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10336         (aarch64_gen_ccmp_next): Add FP support.
10337
10338 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10339
10340         * target.def (gen_ccmp_first): Update documentation.
10341         (gen_ccmp_next): Likewise.
10342         * doc/tm.texi (gen_ccmp_first): Update documentation.
10343         (gen_ccmp_next): Likewise.
10344         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10345         expand_ccmp_expr_1.  Improve comments.
10346         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10347         (ccmp_ior<mode>): Remove pattern.
10348         (cmp<mode>): Remove expand.
10349         (cmp): Globalize pattern.
10350         (cstorecc4): Use cc_register.
10351         (mov<mode>cc): Remove ccmp_cc_register check.
10352         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10353         Simplify after removal of CC_DNE/* modes.
10354         (aarch64_ccmp_mode_to_code): Remove.
10355         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10356         In 'k' case use integer as condition.
10357         (aarch64_nzcv_codes): Remove inverted cases.
10358         (aarch64_code_to_ccmode): Remove.
10359         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10360         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10361         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10362         pattern.  Return the comparison with CC register.  Invert conditions
10363         when bitcode is OR.
10364         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10365         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10366
10367 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10368
10369         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10370         instrumented_version.
10371
10372 2016-01-19  Richard Biener  <rguenther@suse.de>
10373
10374         PR tree-optimization/69336
10375         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10376         handled components with get_ref_base_and_extent.
10377         (equal_mem_array_ref_p): Adjust.
10378
10379 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10380
10381         PR debug/65779
10382         * shrink-wrap.c: Include valtrack.h.
10383         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10384         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10385         in between insn and where it will be moved to.  Call
10386         dead_debug_insert_temp.
10387         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10388         first and dead_debug_local_finish at the end.
10389         For uses and defs bitmap, handle all regs in between REGNO and
10390         END_REGNO, not just the first one.
10391
10392 2016-01-19  Richard Biener  <rguenther@suse.de>
10393
10394         PR tree-optimization/69352
10395         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10396         (equal_mem_array_ref_p): Constrain size and max size properly.
10397         Compare the reverse flag.
10398
10399 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10400
10401         * ira.c (ira): Update regstat data if we deleted insns.
10402
10403 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10404
10405         PR rtl-optimization/68955
10406         PR rtl-optimization/64557
10407         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10408         here.  Fix up formatting.
10409         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10410
10411 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10412
10413         PR lto/69133
10414         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10415         assume that the node has body.
10416         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10417         check.
10418
10419 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10420
10421         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10422         thunks.
10423
10424 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10425
10426         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10427         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10428
10429 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10430             Martin Liska  <mliska@suse.cz>
10431             Michael Matz  <matz@suse.de>
10432
10433         * Makefile.in (OBJS): Add new source files.
10434         (GTFILES): Add hsa.c.
10435         * common.opt (disable_hsa): New variable.
10436         (-Whsa): New warning.
10437         * config.in (ENABLE_HSA): New.
10438         * configure.ac: Treat hsa differently from other accelerators.
10439         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10440         $enable_offloading.
10441         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10442         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10443         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10444         --with-hsa-kmt-lib.
10445         * doc/invoke.texi (-Whsa): Document.
10446         (hsa-gen-debug-stores): Likewise.
10447         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10448         to invoke offload compiler for hsa acclerator.
10449         * opts.c (common_handle_option): Determine whether HSA offloading
10450         should be performed.
10451         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10452         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10453         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10454         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10455         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10456         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10457         GF_OMP_FOR_KIND_GRID_LOOP.
10458         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10459         (pp_gimple_stmt_1): Likewise.
10460         * gimple-walk.c (walk_gimple_stmt): Likewise.
10461         * gimple.c (gimple_build_omp_grid_body): New function.
10462         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10463         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10464         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10465         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10466         GF_OMP_TEAMS_GRID_PHONY.
10467         (gimple_statement_omp_single_layout): Updated comments.
10468         (gimple_build_omp_grid_body): New function.
10469         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10470         (gimple_omp_for_grid_phony): New function.
10471         (gimple_omp_for_set_grid_phony): Likewise.
10472         (gimple_omp_parallel_grid_phony): Likewise.
10473         (gimple_omp_parallel_set_grid_phony): Likewise.
10474         (gimple_omp_teams_grid_phony): Likewise.
10475         (gimple_omp_teams_set_grid_phony): Likewise.
10476         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10477         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10478         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10479         (BUILT_IN_GOMP_TARGET): Updated type.
10480         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10481         (adjust_for_condition): New function.
10482         (get_omp_for_step_from_incr): Likewise.
10483         (extract_omp_for_data): Moved parts to adjust_for_condition and
10484         get_omp_for_step_from_incr.
10485         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10486         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10487         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10488         (scan_omp_parallel): Do not create child functions for phony
10489         constructs.
10490         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10491         (scan_omp_1_op): Checking assert we are not remapping to
10492         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10493         (parallel_needs_hsa_kernel_p): New function.
10494         (expand_parallel_call): Register apprpriate parallel child
10495         functions as HSA kernels.
10496         (grid_launch_attributes_trees): New type.
10497         (grid_attr_trees): New variable.
10498         (grid_create_kernel_launch_attr_types): New function.
10499         (grid_insert_store_range_dim): Likewise.
10500         (grid_get_kernel_launch_attributes): Likewise.
10501         (get_target_argument_identifier_1): Likewise.
10502         (get_target_argument_identifier): Likewise.
10503         (get_target_argument_value): Likewise.
10504         (push_target_argument_according_to_value): Likewise.
10505         (get_target_arguments): Likewise.
10506         (expand_omp_target): Call get_target_arguments instead of looking
10507         up for teams and thread limit.
10508         (grid_expand_omp_for_loop): New function.
10509         (grid_arg_decl_map): New type.
10510         (grid_remap_kernel_arg_accesses): New function.
10511         (grid_expand_target_kernel_body): New function.
10512         (expand_omp): Call it.
10513         (lower_omp_for): Do not emit phony constructs.
10514         (lower_omp_taskreg): Do not emit phony constructs but create for them
10515         a temporary variable receiver_decl.
10516         (lower_omp_taskreg): Do not emit phony constructs.
10517         (lower_omp_teams): Likewise.
10518         (lower_omp_grid_body): New function.
10519         (lower_omp_1): Call it.
10520         (grid_reg_assignment_to_local_var_p): New function.
10521         (grid_seq_only_contains_local_assignments): Likewise.
10522         (grid_find_single_omp_among_assignments_1): Likewise.
10523         (grid_find_single_omp_among_assignments): Likewise.
10524         (grid_find_ungridifiable_statement): Likewise.
10525         (grid_target_follows_gridifiable_pattern): Likewise.
10526         (grid_remap_prebody_decls): Likewise.
10527         (grid_copy_leading_local_assignments): Likewise.
10528         (grid_process_kernel_body_copy): Likewise.
10529         (grid_attempt_target_gridification): Likewise.
10530         (grid_gridify_all_targets_stmt): Likewise.
10531         (grid_gridify_all_targets): Likewise.
10532         (execute_lower_omp): Call grid_gridify_all_targets.
10533         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10534         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10535         (tree_omp_clause): Added union field dimension.
10536         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10537         * tree.c (omp_clause_num_ops): Added number of arguments of
10538         OMP_CLAUSE__GRIDDIM_.
10539         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10540         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10541         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10542         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10543         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10544         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10545         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10546         * tree-pass.h (make_pass_gen_hsail): Declare.
10547         (make_pass_ipa_hsa): Likewise.
10548         * ipa-hsa.c: New file.
10549         * lto-section-in.c (lto_section_name): Add hsa section name.
10550         * lto-streamer.h (lto_section_type): Add hsa section.
10551         * timevar.def (TV_IPA_HSA): New.
10552         * hsa-brig-format.h: New file.
10553         * hsa-brig.c: New file.
10554         * hsa-dump.c: Likewise.
10555         * hsa-gen.c: Likewise.
10556         * hsa.c: Likewise.
10557         * hsa.h: Likewise.
10558         * toplev.c (compile_file): Call hsa_output_brig.
10559         * hsa-regalloc.c: New file.
10560
10561 2016-01-18  Jeff Law  <law@redhat.com>
10562
10563         PR tree-optimization/69320
10564         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10565         ranged object, do nothing if the RHS constant is not [0..1].
10566         (optimize_stmt): Comparing a boolean ranged object against a
10567         constant outside [0..1] results in a compile-time constant.
10568
10569         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10570         test.
10571
10572 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10573
10574         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10575         (Option Summary): Update to reflect new section and moved options.
10576         (C++ Dialect Options): Move -fstats to new section.
10577         (Debugging Options): Move all dump, statistics, and other GCC
10578         developer options to new section.  Rewrite section introduction
10579         and re-order remaining options to put the more basic ones first.
10580         (Optimization Options): Move -fira-verbose and -flto-report* to
10581         new section.
10582         (Developer Options): New section incorporating moved options.
10583         * doc/cppopts.texi (-dM): Update cross-reference.
10584
10585 2016-01-18  Richard Henderson  <rth@redhat.com>
10586
10587         PR target/69176
10588         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10589         operands to pseudo only if CSE is expected.  Split long immediate
10590         operands only after reload, and for the stack pointer.
10591         (*add<GPI>3_pluslong): Remove.
10592         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10593         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10594         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10595         (*add<GPI>3 peepholes): New.
10596         (*add<GPI>3 splitters): New.
10597         * config/aarch64/constraints.md (Upl): New.
10598         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10599
10600 2016-01-18  Richard Biener  <rguenther@suse.de>
10601
10602         PR tree-optimization/69297
10603         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10604         stmt at most once.
10605         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10606
10607 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10608
10609         PR middle-end/68542
10610         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10611         of mixind vector and scalar types.
10612         (fold_relational_const): Add handling of vector
10613         comparison with boolean result.
10614         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10615         comparison of vector operands with boolean result for EQ/NE only.
10616         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10617         (verify_gimple_cond): Likewise.
10618         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10619         valid type of VAL.
10620
10621 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10622
10623         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10624         !TARGET_OCTEON.
10625
10626 2016-01-18  Richard Biener  <rguenther@suse.de>
10627
10628         PR middle-end/69308
10629         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10630
10631 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10632
10633         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10634
10635 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10636
10637         * omp-low.c (set_oacc_fn_attrib): Make extern.
10638         * omp-low.h (set_oacc_fn_attrib): Declare.
10639         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10640         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10641         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10642         Add and handle function parameter oacc_kernels_p.
10643         (find_reduc_addr, get_omp_data_i_param): New function.
10644         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10645         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10646         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10647         Calculate dominance info.  Skip loops that are not in a kernels region
10648         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10649         (pass_parallelize_loops::execute): Call parallelize_loops with
10650         oacc_kernels_p argument.
10651         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10652         New member function.
10653         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10654         * passes.def: Add argument to pass_parallelize_loops instantation.
10655
10656 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10657
10658         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10659         pass_parallelize_loops to be run outside the loop pipeline.
10660
10661 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10662
10663         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10664         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10665
10666 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10667
10668         PR target/63679
10669         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10670         using get_ref_base_and_extent.
10671         (equal_mem_array_ref_p): New.
10672         (hashable_expr_equal_p): Add call to previous.
10673
10674 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10675
10676         PR target/63679
10677         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10678         (sra_initialize): Allocate disqualified_constants.
10679         (sra_deinitialize): Free disqualified_constants.
10680         (disqualify_candidate): Update disqualified_constants when appropriate.
10681         (create_access): Scan for constant-pool entries as we go along.
10682         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10683         (maybe_add_sra_candidate): Allow constant-pool entries.
10684         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10685         (initialize_constant_pool_replacements): New.
10686         (sra_modify_assign): Avoid mangling assignments created by previous,
10687         and don't generate writes into constant pool.
10688         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10689
10690 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10691
10692         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10693         andnot instruction.
10694         (scalar_chain::convert_op): Likewise.
10695         * config/i386/i386.md (*andndi3_doubleword): New.
10696
10697 2016-01-18  Richard Biener  <rguenther@suse.de>
10698
10699         PR tree-optimization/69170
10700         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10701         building a vector from scalar results of a pattern stmt.
10702
10703 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10704
10705         * haifa-sched.c (autopref_multipass_init): Work around
10706         -Wmaybe-uninitialized warning.
10707
10708 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10709
10710         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10711         against the constant 0.
10712
10713 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10714
10715         PR tree-optimization/68799
10716         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10717         look up phi candidates in the statement-candidate map.
10718         (phi_add_costs): Likewise.
10719         (record_phi_increments): Likewise.
10720         (phi_incr_cost): Likewise.
10721         (ncd_with_phi): Likewise.
10722         (all_phi_incrs_profitable): Likewise.
10723
10724 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10725
10726         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10727         -Wmaybe-uninitialized warning.
10728
10729 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10730
10731         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10732         (Option Summary): Update to reflect new section and moved options.
10733         (C++ Dialect Options): Move -fvtable-verify and related options.
10734         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10735         and profiling-related options.
10736         (Optimization Options): Move profile generation options and
10737         -fstack-protector and related options.
10738         (Instrumentation Options): New section incorporating moved options.
10739         (Code Generation Options): Move -finstrument-functions and
10740         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10741
10742 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10743
10744         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10745
10746 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10747
10748         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10749
10750 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10751
10752         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10753         that checks whether the table is already empty.  Rename the
10754         original implementation to...
10755         (hash_table::empty_slot): ...this new private function.
10756
10757 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10758
10759         PR diagnostic/68899
10760         * diagnostic-show-locus.c (layout::print_source_line): Move x
10761         offset of line until after call to
10762         get_line_width_without_trailing_whitespace.
10763
10764 2016-01-15  Jeff Law  <law@redhat.com>
10765
10766         PR tree-optimization/69270
10767         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10768         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10769         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10770         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10771         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10772         ssa_name_has_boolean_range and constant_boolean_node.
10773
10774 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10775
10776         PR rtl-optimization/69030
10777         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10778         returning bool.
10779         (spill_pseudos): Delete debug insn for dead pseudo.
10780         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10781
10782 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10783
10784         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10785         New.
10786         (TYPES_UNOPUS): Likewise.
10787         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10788         builtin type, from UNOP to UNOPUS.
10789         (lbtruncuv4sf): Likewise.
10790         (lbtruncuv2df): Likewise.
10791         (lrounduv2sf): Likewise.
10792         (lrounduv4sf): Likewise.
10793         (lrounduv2df): Likewise.
10794         (lroundusf): Likewise.
10795         (lroundusf): Likewise.
10796         (lceiluv2sf): Likewise.
10797         (lceiluv4sf): Likewise.
10798         (lceiluv2df): Likewise.
10799         (lceilusf): Likewise.
10800         (lceiludf): Likewise.
10801         (lflooruv2sf): Likewise.
10802         (lflooruv4sf): Likewise.
10803         (lflooruv2df): Likewise.
10804         (lfloorusf): Likewise.
10805         (lfloorudf): Likewise.
10806         (lfrintnuv2sf): Likewise.
10807         (lfrintnuv4sf): Likewise.
10808         (lfrintnuv2df): Likewise.
10809         (lfrintnusf): Likewise.
10810         (lfrintnudf): Likewise.
10811         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10812         conversion.
10813         (vcvtq_u32_f32): Likewise.
10814         (vcvtq_u64_f64): Likewise.
10815         (vcvta_u32_f32): Likewise.
10816         (vcvtaq_u32_f32): Likewise.
10817         (vcvtaq_u64_f64): Likewise.
10818         (vcvtm_u32_f32): Likewise.
10819         (vcvtmq_u32_f32): Likewise.
10820         (vcvtmq_u64_f64): Likewise.
10821         (vcvtn_u32_f32): Likwise.
10822         (vcvtnq_u32_f32): Likewise.
10823         (vcvtnq_u64_f64): Likewise.
10824         (vcvtp_u32_f32): Likewise.
10825         (vcvtpq_u32_f32): Likewise.
10826         (vcvtpq_u64_f64): Likewise.
10827         (vcvtmd_u64_f64): Likewise.
10828         (vcvtms_u32_f32): Likewise.
10829         (vcvtad_u64_f64): Likewise.
10830         (vcvtas_u32_f32): Likewise.
10831         (vcvtnd_u64_f64): Likewise.
10832         (vcvtns_u32_f32): Likewise.
10833         (vcvtpd_u64_f64): Likewise.
10834         (vcvtps_u32_f32): Likewise.
10835
10836 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10837
10838         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10839         CSEL of zero_extended registers.
10840
10841 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10842
10843         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10844         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
10845
10846 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10847
10848         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
10849         false when argument string is not found in the attributes table
10850         at all.
10851
10852 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
10853
10854         PR target/68609
10855         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
10856         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
10857         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
10858         precision estimate.
10859
10860 2016-01-15  Richard Biener  <rguenther@suse.de>
10861
10862         PR tree-optimization/66856
10863         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
10864         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
10865         (vect_create_new_slp_node): Increment stmt reference count.
10866         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
10867         an SLP tree before swapping operands.
10868         (vect_build_slp_tree): Likewise.
10869         (destroy_bb_vec_info): Free stmt info after SLP instances.
10870         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
10871         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
10872         (STMT_VINFO_NUM_SLP_USES): New macro.
10873
10874 2016-01-15  Richard Biener  <rguenther@suse.de>
10875
10876         PR debug/69137
10877         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
10878         (add_linkage_name): ... here.
10879         (gen_typedef_die): Use add_linkage_name_raw instead of
10880         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
10881         if necessary.
10882
10883 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
10884
10885         * gimplify.c (oacc_default_clause): Decode reference and pointer
10886         types for both kernels and parallel regions.
10887
10888 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
10889
10890         PR middle-end/69246
10891         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
10892
10893 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10894
10895         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
10896         (convert_scalars_to_vector): Likewise.
10897
10898 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
10899
10900         * doc/extend.texi (Type Traits): Fix grammar.
10901
10902 2016-01-15  Martin Jambor  <mjambor@suse.cz>
10903
10904         * tree-inline.c (remap_decl): Use existing dclarations if
10905         remapping a type and prevent_decl_creation_for_types.
10906         (replace_locals_stmt): Do an initial remapping of non-VLA typed
10907         decls first.  Do real remapping with
10908         prevent_decl_creation_for_types set.
10909         * tree-inline.h (copy_body_data): New field
10910         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
10911         padding.
10912
10913 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10914
10915         * config/s390/s390.opt (mmvcle): More verbose help text.
10916
10917 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10918
10919         * config/s390/s390.opt: Add period to -mzvector option text.
10920
10921 2016-01-15  Richard Biener  <rguenther@suse.de>
10922
10923         PR tree-optimization/68961
10924         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
10925         of invariants in stores again.
10926
10927 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10928
10929         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
10930
10931 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10932
10933         * config/i386/i386.c (ix86_expand_branch): Don't split
10934         DI mode xor instruction to SI mode.
10935
10936 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10937
10938         PR ipa/68148
10939         * ipa-icf.c (sem_function::merge): Virtual functions may become
10940         reachable even if they address is not taken and there are no
10941         idrect calls.
10942
10943 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10944
10945         * lto-streamer-out.c (subtract_estimated_size): New function.
10946         (get_symbol_initial_value): Use it.
10947
10948 2016-01-15  Christian Bruel  <christian.bruel@st.com>
10949
10950         PR target/65837
10951         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
10952         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
10953         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
10954         use add_builtin_function_ext_scope instead of add_builtin_function.
10955         (neon_set_p, neon_crypto_set_p): Remove.
10956         (arm_init_builtins): Always call arm_init_neon_builtins and
10957         arm_init_crypto_builtins.
10958         (arm_expand_builtin): Check that builtins are allowed for the arch.
10959         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
10960         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
10961         arm_init_neon_builtins call.
10962
10963 2016-01-15  Richard Biener  <rguenther@suse.de>
10964
10965         PR tree-optimization/69117
10966         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
10967         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
10968         of the leader conservatively.
10969         (free_scc_vn): Restore original SSA name infos.
10970
10971 2016-01-14  Jeff Law  <law@redhat.com>
10972
10973         PR tree-optimization/69270
10974         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
10975         single bit of precision, verify it's also unsigned.
10976         (record_edge_info): Use constant_boolean_node rather than fold_convert
10977         to convert boolean_true/boolean_false to the right type.
10978
10979 2016-01-14  Richard Henderson  <rth@redhat.com>
10980
10981         PR rtl-opt/69014
10982         * loop-doloop.c (record_reg_sets): New.
10983         (doloop_optimize): Reject the transform if the sequence
10984         clobbers registers live at the end of the loop block.
10985         (doloop_optimize_loops): Enable df_live if needed.
10986
10987 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10988
10989         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
10990         * gcc/config/rs6000/rs6000.c: Likewise.
10991         * gcc/config/rs6000/rs6000.h: Likewise.
10992         * gcc/config/rs6000/rs6000.md: Likewise.
10993         * gcc/doc/extend.texi: Likewsie.
10994
10995 2016-01-14  Jeff Law  <law@redhat.com>
10996
10997         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
10998         typo.
10999
11000 2016-01-14  Richard Henderson  <rth@redhat.com>
11001
11002         PR c/69272
11003         PR tree-opt/68964
11004         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11005         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11006         instead of builtin_decl_declared_p to test for declaration.
11007
11008 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11009
11010         * doc/loop.texi (Loop Analysis and Representation): Document
11011         loop_depth function.
11012
11013 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11014
11015         PR tree-optimization/68773
11016         * omp-low.c (expand_omp_target): Don't set force_output.
11017         * varpool.c (varpool_node::get_create): Same.
11018         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11019         offload_funcs with force_output.
11020
11021 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11022
11023         PR debug/69244
11024         * lra-eliminations.c (move_plus_up): Don't change anything if either
11025         the outer or inner subreg mode is not MODE_INT.
11026         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11027         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11028
11029 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11030
11031         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11032         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11033         reduc_uplus_@var{m}): Remove.
11034         * expr.c (expand_expr_real_2): Remove expansion path for
11035         reduc_[us](min|max|plus) optabs.
11036         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11037         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11038         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11039         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11040         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11041         reduc_[us](min|max|plus) optabs.
11042
11043 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11044
11045         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11046         (reduc_plus_scal_v2sf): New.
11047         (reduc_smax_v2sf): Rename to...
11048         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11049         (reduc_smin_v2sf): Rename to...
11050         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11051
11052 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11053
11054         * alias.c (compare_base_symbol_refs): New function.
11055         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11056         it.
11057
11058 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11059
11060         PR middle-end/68146
11061         PR tree-optimization/69155
11062         * tree-complex.c: Include cfganal.h.
11063         (phis_to_revisit): New variable.
11064         (extract_component): Add phiarg_p argument.  Assert that returned
11065         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11066         (update_phi_components): Partly rewrite to use loop over real/imag
11067         components instead of code duplication.  If extract_component returns
11068         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11069         create_tmp_reg into the PHI node instead, and mention the phi triplet
11070         in phis_to_revisit.
11071         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11072         in phis_to_revisit at the end.
11073
11074 2016-01-14  Richard Biener  <rguenther@suse.de>
11075
11076         PR tree-optimization/68060
11077         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11078         outer loop reduction is only used in the inner loop before
11079         detecting a double reduction.
11080
11081 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11082
11083         PR target/68269
11084         * combine.c (expand_field_assignment): Punt if compute_mode is
11085         unsupported scalar mode.
11086
11087 2016-01-14  Richard Biener  <rguenther@suse.de>
11088
11089         PR tree-optimization/66856
11090         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11091         SLP node only if it built successfully.
11092         (vect_analyze_slp_instance): Adjust.
11093
11094 2016-01-14  Jeff Law  <law@redhat.com>
11095
11096         PR tree-optimization/69270
11097         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11098         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11099         to the type of op0.
11100
11101 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11102
11103         PR ipa/66487
11104         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11105         use block_ultimate_origin
11106         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11107
11108 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11109
11110         * doc/invoke.texi (Submodel Options): Rename section to
11111         "Machine-Dependent Options" to better reflect its content.
11112         Rewrite introductory text to remove archaic CPU names.
11113         Update references.
11114
11115 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11116
11117         * doc/invoke.texi (Code Gen Options): Move section up in file,
11118         before target-specific options.  Update menu and option summary
11119         to reflect the new section ordering.
11120
11121 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11122
11123         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11124         (C++ Dialect Options): Add cross-reference to -std option.
11125         * doc/standards.texi (C++ Language): Document C++14 support.
11126
11127 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11128
11129         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11130         for pack/unpack functions for __ibm128.
11131         (PACK_IF): Likewise.
11132         (UNPACK_IF): Likewise.
11133
11134         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11135         support for __ibm128 pack/unpack functions.
11136         (rs6000_invalid_builtin): Likewise.
11137         (rs6000_init_builtins): Likewise.
11138         (rs6000_opt_masks): Likewise.
11139
11140         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11141         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11142         functions
11143         (RS6000_BTM_COMMON): Likewise.
11144
11145         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11146         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11147         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11148         128-bit floating point.  Add support for the double values to be
11149         in Altivec registers for TF/IF packing and unpacking, but restrict
11150         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11151         register support for packing.  Allow pack inputs to be memory
11152         locations.  Don't build generator functions for unpack<mode>_dm
11153         and unpack<mode>_nodm.
11154         (unpack<mode>_dm): Likewise.
11155         (unpack<mode>_nodm): Likewise.
11156         (pack<mode>): Likewise.
11157
11158         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11159         built-in functions to pack/unpack explicit __ibm128 values.
11160         (__builtin_unpack_ibm128): Likewise.
11161
11162         * doc/extend.texi (PowerPC Built-in Functions): Document
11163         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11164
11165 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11166
11167         PR c/66208
11168         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11169         Add new arg loc and pass it down as context.
11170         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11171         to the location to use for the warning.
11172         (check_function_arguments): New arg loc.  All callers changed.  Pass
11173         it to check_function_nonnull.
11174         * c-common.h (check_function_arguments): Adjust declaration.
11175
11176 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11177
11178         PR tree-optimization/69156
11179         * gimple.c (validate_type): Removed.
11180         (gimple_builtin_call_types_compatible_p): Use
11181         useless_type_conversion_p instead of validate_type.
11182         * value-prof.c (gimple_stringop_fixed_value): Fold
11183         icall_size to correct type.
11184
11185 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11186
11187         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11188         effects.
11189
11190 2016-01-13  Richard Henderson  <rth@redhat.com>
11191
11192         PR tree-opt/68964
11193         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11194         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11195         (ix86_builtin_tm_store): Remove.
11196         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11197         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11198         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11199         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11200         * doc/tm.texi: Rebuild.
11201
11202         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11203         (BUILT_IN_TM_MEMCPY_RTWN): New.
11204         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11205         fallback from vector to integer helpers.
11206         (build_tm_load): Handle vector types directly, instead of
11207         via target hook.
11208         (build_tm_store): Likewise.
11209         (expand_assign_tm): Prepare for register types not handled by
11210         the above.  Copy them to memory and use memcpy.
11211         * tree.c (tm_define_builtin): New.
11212         (find_tm_vector_type): New.
11213         (build_tm_vector_builtins): New.
11214         (build_common_builtin_nodes): Call it.
11215
11216 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11217
11218         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11219         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11220
11221 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11222
11223         PR tree-optimization/69169
11224         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11225         handled_struct_type param.
11226         (create_variable_info_for, intra_create_variable_infos): Call
11227         create_variable_info_for_1 with extra arg.
11228
11229 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11230
11231         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11232         and "armv8.1-a+crc" entries.
11233
11234 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11235
11236         PR target/69228
11237         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11238         Change first operand predicate from register_or_constm1_operand
11239         to register_operand.
11240         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11241         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11242         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11243         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11244         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11245         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11246         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11247         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11248         comparison with constm1_rtx from vec_prefetch_gen part.
11249
11250 2016-01-13  Richard Biener  <rguenther@suse.de>
11251
11252         PR tree-optimization/69013
11253         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11254         Exchange assert for a test.
11255
11256 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11257
11258         PR target/69247
11259         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11260
11261 2016-01-13  Richard Biener  <rguenther@suse.de>
11262
11263         PR tree-optimization/69242
11264         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11265         assert with a check.
11266
11267 2016-01-13  Richard Biener  <rguenther@suse.de>
11268
11269         PR tree-optimization/69186
11270         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11271         Properly guard vect_update_misalignment_for_peel call.
11272
11273 2016-01-12  Jeff Law  <law@redhat.com>
11274
11275         PR tree-optimization/pr67755
11276         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11277         "need_profile_correction".
11278         (thread_block_1): Initialize new field to false by default.  If we
11279         have multiple thread paths through a common joiner to different
11280         final targets, then set new field to true.
11281         (compute_path_counts): Only do count adjustment when it's really
11282         needed.
11283
11284 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11285
11286         * doc/invoke.texi (Spec Files): Move section down in file, past
11287         all command-line option descriptions.
11288
11289 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11290
11291         PR middle-end/54809
11292         * doc/gty.texi: Remove documentation of mark_hook.
11293         * gengtype.c (struct write_types_data): Remove code to support
11294         mark_hook attribute.
11295         (walk_type): Likewise.
11296         (write_func_for_structure): Likewise.
11297
11298 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11299
11300         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11301         Directory Options, and -specs= to Overall Options.
11302         (Overall Options): Adjust similarly.  Reorder to group related
11303         options together.  Make -specs= cross-reference the spec file details.
11304         (Directory Options): Adjust similarly.
11305
11306 2016-01-12  Jeff Law  <law@redhat.com>
11307
11308         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11309
11310 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11311
11312         * gcc.c (spec_undefvar_allowed): New global.
11313         (process_command): Set to true when running for --version or --help,
11314         alone or together.
11315         (getenv_spec_function): When the variable is not defined, use the
11316         variable name as the variable value if we're allowed not to issue
11317         a fatal error.
11318
11319 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11320
11321         PR tree-optimization/68911
11322         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11323         information computed for expression "init + nit * step".
11324
11325 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11326
11327         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11328         about name of GCC executable.  Remove deleted node from menu.
11329         (Directory Options) <-B>: Remove cross-reference to deleted node.
11330         (Target Options): Delete section.
11331
11332 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11333
11334         PR target/69180
11335         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11336         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11337
11338 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11339
11340         PR target/69198
11341         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11342         aligned_mem is properly set for AVX512-VL floating point masked
11343         stores.
11344
11345         PR target/69175
11346         * ifcvt.c (cond_exec_process_if_block): When removing the last
11347         insn from then_bb, remove also any possible barriers that follow it.
11348
11349 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11350
11351         PR target/68456
11352         PR target/69226
11353         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11354         (PTRDIFF_TYPE): Likewise.
11355         (WCHAR_TYPE): Likewise.
11356         (WCHAR_TYPE_SIZE): Likewise.
11357         (STDINT_LONG32): Likewise.
11358
11359 2016-01-12  Richard Biener  <rguenther@suse.de>
11360
11361         PR tree-optimization/69053
11362         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11363         convert initial value for cond reductions.
11364
11365 2016-01-12  Richard Biener  <rguenther@suse.de>
11366
11367         PR tree-optimization/69007
11368         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11369         widen_sum after dot_prod and sad.
11370
11371 2016-01-12  Richard Biener  <rguenther@suse.de>
11372
11373         PR tree-optimization/69168
11374         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11375         pattern stmt SLP type.
11376         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11377         end up unused so cope with that case.
11378
11379 2016-01-12  Richard Biener  <rguenther@suse.de>
11380
11381         PR tree-optimization/69157
11382         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11383         stmts def type only during analyze phase.
11384         (vectorizable_call): Likewise.
11385         (vectorizable_simd_clone_call): Likewise.
11386         (vectorizable_conversion): Likewise.
11387         (vectorizable_assignment): Likewise.
11388         (vectorizable_shift): Likewise.
11389         (vectorizable_operation): Likewise.
11390         (vectorizable_store): Likewise.
11391         (vectorizable_load): Likewise.
11392
11393 2016-01-12  Richard Biener  <rguenther@suse.de>
11394
11395         PR tree-optimization/69174
11396         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11397         space.
11398         (vectorizable_load): Properly compute the number of loads needed
11399         for permuted strided SLP loads and do not spuriously assign
11400         to SLP_TREE_VEC_STMTS.
11401
11402 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11403
11404         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11405         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11406         (MD_EXEC_PREFIX): Remove.
11407         (MD_STARTFILE_PREFIX) Removee.
11408         (FILE_NAME_ABSOLUTE_P): Remove.
11409         (CPP_SPEC): Do not read macros from sys/version.h.
11410         (LINK_COMMAND_SPEC): Remove.
11411         (LOCAL_INCLUDE_DIR): Remove.
11412         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11413         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11414         (POST_LINK_SPEC): Define to invoke stubify after linker
11415         (LIBSTDCXX): Remove define
11416         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11417         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11418         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11419         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11420         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11421         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11422         (i386_djgpp_asm_named_section): Add propotype of new procedure
11423
11424         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11425         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11426         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11427         in config/i386/djgpp.h).
11428         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11429         STANDARD_STARTFILE_PREFIX_1.
11430         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11431         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11432         installation errors.
11433         (MAX_OFILE_ALIGNMENT): Define to 128.
11434         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11435
11436         * config/i386/djgpp.c: New file. Add implementation of
11437         i386_djgpp_asm_named_section.
11438
11439         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11440
11441         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11442         Add rule for building djgpp.o.
11443
11444 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11445
11446         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11447         (rtx_is_swappable_p): Reductions are swappable.
11448         (insn_is_swappable_p): V2DF reductions are swappable.
11449
11450 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11451
11452         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11453         reloads for other unsupported memory operands.
11454
11455 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11456             Jim Wilson  <jim.wilson@linaro.org>
11457
11458         PR target/69194
11459         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11460         copy_to_mode_reg instead of force_reg.
11461
11462 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11463
11464         PR target/69225
11465         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11466         TARGET_80387 is true.
11467
11468 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11469
11470         PR target/69071
11471         * lra-eliminations.c (move_plus_up): Only move plus up
11472         if subreg of the constant can be simplified into constant
11473         and use the simplified subreg of the constant instead of
11474         the original constant.
11475
11476         * fold-const.c (fold_convertible_p): Don't return true
11477         for conversion of VECTOR_TYPE to same sized integral type.
11478         (fold_convert_loc): Fix up formatting.  Fold conversion of
11479         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11480         instead of NOP_EXPR.
11481
11482         PR tree-optimization/69214
11483         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11484         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11485         Formatting fix.
11486
11487         PR tree-optimization/69207
11488         * tree-vect-slp.c (vect_get_constant_vectors): For
11489         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11490         fold_convertible_p to vector_type's element type, and always
11491         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11492
11493 2016-01-11  Richard Biener  <rguenther@suse.de>
11494
11495         PR tree-optimization/69173
11496         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11497         fixup the cycle if all stmts are in a pattern.
11498
11499 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11500
11501         PR middle-end/68999
11502         * alias.c (base_alias_check): Move check for addresses with
11503         alignment ANDs before the call for compare_base_decls.
11504         (memrefs_conflict_p): Return -1 for different decls
11505         that went through alignment adjustments.
11506
11507 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11508
11509         PR rtl-optimization/68796
11510         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11511         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11512         and QImode comparisons against zero with CC_NZmode.
11513         * config/aarch64/iterators.md (short_mask): New mode_attr.
11514
11515 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11516
11517         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11518         (<avx512>_store<mode>_mask): Likewise.
11519
11520 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11521             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11522
11523         PR rtl-optimization/68841
11524         * ifcvt.c (struct noce_if_info): Add orig_x field.
11525         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11526         Don't record conflicts on to_rename if it's present.
11527         Allow memory destinations in sets.
11528         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11529         blocks, passing orig_x to the checks.
11530         (noce_process_if_block): Set if_info->orig_x appropriately.
11531
11532 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11533
11534         PR tree-optimization/69069
11535         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11536
11537 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11538
11539         PR rtl-optimization/68920
11540         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11541         of conditional moves for  RTL if-conversion to 1 for
11542         TARGET_ONE_IF_CONV_INSN.
11543         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11544         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11545         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11546         parameter to restirct number of conditional moves for
11547         RTL if-conversion.
11548         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11549         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11550         conditionl moves.
11551
11552 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11553
11554         PR bootstrap/69123
11555         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11556         onepart vars.  Fix typo in comment.  Fix reversed condition in
11557         unshare test.
11558         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11559
11560         PR bootstrap/69123
11561         * var-tracking.c (dump_onepart_variable_differences): New.
11562         (dataflow_set_different): If a detailed dump is requested,
11563         delay early returns and dump differences between onepart
11564         variables present before and after, and added variables.
11565
11566 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11567
11568         PR target/69010
11569         * expr.c (expand_expr_real_1): For boolean vector constants
11570         with a scalar mode use const_scalar_mask_from_tree.
11571         (const_scalar_mask_from_tree): New.
11572         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11573         assigned to a mask type to handle constants.
11574
11575 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11576
11577         PR ipa/69044
11578         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11579         useless parameters if we cannot change function signature.
11580
11581 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11582
11583         PR ipa/66616
11584         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11585         flag.
11586
11587 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11588
11589         PR tree-optimization/69109
11590         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11591         latch with phi.
11592
11593 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11594
11595         PR tree-optimization/69108
11596         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11597         res is not used in a phi.
11598
11599 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11600
11601         PR 67425
11602         * common.opt (frandom-seed): Fix parameter name.
11603         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11604
11605 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11606
11607         PR tree-optimization/69058
11608         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11609         not supported.
11610
11611 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11612
11613         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11614         (mcode-density): Likewise.
11615
11616 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11617
11618         PR tree-optimization/69062
11619         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11620         (parallelize_loops): Don't paralelize loop that has phi with address
11621         arg.
11622
11623 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11624
11625         PR tree-optimization/69039
11626         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11627         phi for reduction.
11628
11629 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11630
11631         PR middle-end/68743
11632         * match.pd: Require target has function_c99_misc before doing
11633         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11634
11635 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11636
11637         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11638         use GMPINC.
11639         * configure: Regenerate.
11640
11641 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11642
11643         PR middle-end/50865
11644         PR tree-optimization/69097
11645         * fold-const.h (expr_not_equal_to): New prototype.
11646         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11647         (expr_not_equal_to): New function.
11648         * match.pd (X % -Y is the same as X % Y): Don't optimize
11649         unless X is known not to be equal to minimum or Y is known
11650         not to be equal to -1.
11651         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11652         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11653         (simplify_stmt_using_ranges): Adjust caller.
11654         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11655         substitute_and_fold.
11656
11657 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11658
11659         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11660         w/o DECL_NAME.
11661
11662 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11663
11664         PR tree-optimization/69167
11665         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11666         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11667         ops[0] comparison.
11668         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11669
11670 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11671             Richard Biener  <rguenther@suse.de>
11672
11673         PR tree-optimization/68707
11674         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11675         instances that can be handled via vect_load_lanes.
11676
11677 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11678
11679         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11680         if we can't determine address equivalence.
11681         * alias.c (compare_base_decl): Update for changed return value of
11682         symtab_node::equal_address_to.
11683
11684 2016-01-08  Jason Merrill  <jason@redhat.com>
11685
11686         PR c++/68983
11687         PR c++/67557
11688         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11689         * expr.c (store_field): Not here.
11690         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11691         call with TREE_ADDRESSABLE type.
11692         * tree-cfg.c (verify_gimple_call): Adjust.
11693
11694 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11695
11696         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11697         libc_internal.
11698
11699 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11700
11701         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11702         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11703         (reduc_smin_v2sf): Rename to...
11704         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11705         (reduc_splus_v2sf): Rename to...
11706         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11707
11708 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11709
11710         PR tree-optimization/69162
11711         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11712         valist argument in another argument.
11713         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11714         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11715         to determine the va_list type, build a MEM_REF instead of
11716         build_fold_indirect_ref.
11717
11718         PR tree-optimization/69172
11719         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11720         gimple_build.
11721
11722 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11723
11724         PR tree-optimization/67781
11725         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11726         and cmpnop in two steps: first the ones not accessed in original
11727         gimple expression in a endian independent way and then the ones not
11728         accessed in the final result in an endian-specific way.
11729
11730 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11731
11732         PR tree-optimization/69083
11733         * tree-vect-slp.c (vect_get_constant_vectors): For
11734         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11735         element type.  If op is fold_convertible_p to vector_type's element
11736         type, use NOP_EXPR instead of VCE.
11737
11738 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11739
11740         PR rtl-optimization/67778
11741         PR rtl-optimization/68634
11742         PR rtl-optimization/68909
11743         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11744         block from the stack until done with it.  Remove a superfluous
11745         bitmap set.  Remove a superfluous bitmap test.
11746
11747 2016-01-07  Martin Sebor  <msebor@redhat.com>
11748
11749         PR c/68966
11750         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11751         constraint on the type of arguments.
11752
11753 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11754
11755         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11756         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11757         unaligned_access on the gcc_options set.
11758         * config/arm/arm.c (arm_option_override_internal): Use
11759         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11760
11761 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11762
11763         PR target/69140
11764         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11765         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11766
11767 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11768
11769         Revert
11770         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11771
11772         PR target/69140
11773         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11774         depending on frame_pointer_needed before remaining integer and SSE
11775         registers are saved.
11776
11777 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11778
11779         PR 1078
11780         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11781
11782 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11783
11784         PR target/69171
11785         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11786         Use the "xBm" constraint.
11787         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11788         Likewise.
11789         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11790         (sse_cvtsi2ssq<round_name>): Likewise.
11791         (sse_cvtss2si<round_name>): Likewise.
11792         (sse_cvtss2siq<round_name>): Likewise.
11793         (sse2_cvtsi2sdq<round_name>): Likewise.
11794         (sse2_cvtsd2si<round_name>): Likewise.
11795         (sse2_cvtsd2siq<round_name>): Likewise.
11796         * config/i386/subst.md (round_nimm_scalar_predicate): New
11797         predicate.
11798
11799 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11800
11801         PR middle-end/67639
11802         * varasm.c (make_decl_rtl): Mark invalid register vars as
11803         DECL_EXTERNAL.
11804
11805         PR rtl-optimization/66206
11806         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11807         All callers changed.
11808
11809 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11810
11811         PR tree-optimization/69141
11812         * tree-ssa-pre.c: Include langhooks.h.
11813         (eliminate_dom_walker::before_dom_children): Use
11814         lang_hooks.decl_printable_name instead of
11815         cgraph_node::get ()->name ().
11816
11817         PR middle-end/68960
11818         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11819         it and DECL_ALIGN too.
11820
11821 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11822
11823         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11824
11825 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11826
11827         PR target/69140
11828         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11829         depending on frame_pointer_needed before remaining integer and SSE
11830         registers are saved.
11831
11832 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11833
11834         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11835         mode iterator with VSX_M2.
11836         (*p9_vecstore_<mode>): Likewise.
11837         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11838         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11839         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
11840         (define_split for VSX_LE128 stores): Likewise.
11841         (define_peephole2 for TImode LE swaps): Likewise.
11842         (define_split for VSX_LE128 post-reload stores): Likewise.
11843
11844 2016-01-06  Marek Polacek  <polacek@redhat.com>
11845
11846         PR sanitizer/69099
11847         * convert.c (convert_to_integer_1): Adjust call to
11848         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
11849         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
11850         EXPR instead of ARG.
11851         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
11852
11853 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11854
11855         PR 1078
11856         * doc/extend.texi (RL78 Variable Attributes): New section.
11857
11858 2016-01-05  Marek Polacek  <polacek@redhat.com>
11859
11860         PR c/69104
11861         * builtins.c (get_memmodel): Use expansion point location rather than
11862         the input location.  Call warning_at rather than warning.
11863         (expand_builtin_atomic_compare_exchange): Likewise.
11864         (expand_builtin_atomic_load): Likewise.
11865         (expand_builtin_atomic_store): Likewise.
11866         (expand_builtin_atomic_clear): Likewise.
11867
11868 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11869
11870         PR target/68991
11871         * config/i386/i386.c (ix86_expand_vector_logical_operator):
11872         Replace nonimmediate_operand with vector_operand.
11873         * config/i386/predicates.md (vector_operand): New predicate.
11874         (general_vector_operand): Replace nonimmediate_operand with
11875         vector_operand.
11876         * config/i386/sse.md: Replace nonimmediate_operand with
11877         vector_operand and m constraint with Bm constraint on SSE
11878         patterns with 16-byte memory operand.
11879         * config/i386/subst.md (round_nimm_predicate): Replace
11880         nonimmediate_operand with vector_operand.
11881         (round_saeonly_nimm_predicate): Likewise.
11882         (round_saeonly_nimm_scalar_predicate): New.
11883
11884 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11885
11886         PR target/68991
11887         * config/i386/constraints.md (Bm): New constraint.
11888         * config/i386/predicates.md (vector_memory_operand): New
11889         predicate.
11890         * config/i386/sse.md: Replace xm with xBm in plusminus and
11891         any_logic patterns.
11892
11893 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11894
11895         PR 1078
11896         * doc/extend.texi (V850 Function Attributes): New section.
11897         (V850 Variable Attributes): New section.
11898
11899 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11900
11901         PR 1078
11902         * doc/extend.texi (MicroBlaze Function Attributes): Document
11903         interrupt_handler and fast_interrupt attributes.
11904
11905 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
11906
11907         PR other/60465
11908         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
11909         for local symbolic operands.
11910         * config/ia64/predicates.md (local_symbolic_operand64): New
11911         predicate.
11912
11913 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11914
11915         PR rtl-optimization/68651
11916         * combine.c (combine_simplify_rtx): Canonicalize x + x into
11917         x << 1.
11918
11919 2016-01-05  Nathan Sidwell  <nathan@acm.org>
11920
11921         * alias.c (compare_base_decls): Use symtab_node::get.
11922
11923 2016-01-05  Nick Clifton  <nickc@redhat.com>
11924
11925         PR target/68770
11926         * ira-costs.c (copy_cost): Initialise the t_icode field of the
11927         secondary_reload_info structure.
11928
11929         PR target/66655
11930         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
11931         decls if weak support is available.
11932
11933 2016-01-04  Martin Sebor  <msebor@redhat.com>
11934
11935         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
11936
11937 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
11938
11939         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
11940         OPTION_MASK_P9_DFORM.
11941
11942         * config/rs6000/constraints.md (wo constraint): New constraint for
11943         ISA 3.0 (power9).
11944
11945         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
11946         for wo constraint.
11947         (rs6000_init_hard_regno_mode_ok): Likewise.
11948
11949         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
11950         wo constraint.
11951
11952         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
11953         expanders not to have constraints.  Add support for ISA 3.0 xxperm
11954         instruction.  Add support for fusing xxlor with xxperm.
11955         (altivec_vperm_<mode>_internal): Likewise.
11956         (altivec_vperm_v8hiv16qi): Likewise.
11957         (altivec_vperm_<mode>v16q): Likewise.
11958         (altivec_vperm_<mode>_uns): Likewise.
11959         (vperm_v8hiv4si): Likewise.
11960         (vperm_v16qiv8hi): Likewise.
11961
11962         * doc/md.texi (RS/6000 constraints): Document wo constraint.
11963
11964 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
11965
11966         Update copyright years.
11967
11968         * gcc.c (process_command): Update copyright notice dates.
11969         * gcov-dump.c (print_version): Ditto.
11970         * gcov.c (print_version): Ditto.
11971         * gcov-tool.c (print_version): Ditto.
11972         * gengtype.c (create_file): Ditto.
11973         * doc/cpp.texi: Bump @copying's copyright year.
11974         * doc/cppinternals.texi: Ditto.
11975         * doc/gcc.texi: Ditto.
11976         * doc/gccint.texi: Ditto.
11977         * doc/gcov.texi: Ditto.
11978         * doc/install.texi: Ditto.
11979         * doc/invoke.texi: Ditto.
11980
11981 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11982
11983         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
11984         modes larger than TImode as TImode if NEON is not enabled.
11985
11986 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11987
11988         PR target/69100
11989         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
11990         mode for %f0-%f31 only if TARGET_FPU.
11991
11992 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11993
11994         PR target/69072
11995         * config/sparc/sparc.c (scan_record_type): Take into account subfields
11996         to compute the PACKED_P predicate.
11997         (function_arg_record_value): Minor tweaks.
11998
11999 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12000
12001         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12002         option for arm*-*-* targets.
12003
12004 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12005
12006         * doc/extend.texi (Common Function Attributes): Move docs for
12007         MSP430-specific attributes to....
12008         (MSP430 Function Attributes): ...here.  Delete the redundant
12009         entries and copy-edit the remaining text.
12010         (MSP430 Variable Attributes): Use uniform format for index
12011         entries and add a cross-reference to the corresponding function
12012         attribute docs.
12013
12014 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12015
12016         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12017         -finite-math typo.
12018         (x86 Options): Likewise.
12019
12020 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12021
12022         PR 1078
12023
12024         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12025         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12026         to corresponding attribute.
12027
12028 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12029
12030         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12031         to correct alphabetization of table.  Copy-edit and correct
12032         markup.
12033         <stack_protect>: Likewise.
12034         <target_clones>: Likewise.
12035         <simd>: Likewise.
12036         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12037         Correct punctuation.
12038         (Code Gen Options) <-fno-plt>: Copy-edit.
12039
12040 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12041
12042         PR target/68917
12043         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12044         SI values.  Explicitly convert SI to DI and vice-versa.
12045
12046 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12047
12048         PR tree-optimization/69070
12049         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12050         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12051
12052         PR sanitizer/69055
12053         * ubsan.c (ubsan_instrument_float_cast): Call
12054         initialize_sanitizer_builtins.
12055
12056         PR target/69015
12057         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12058 \f
12059 Copyright (C) 2016 Free Software Foundation, Inc.
12060
12061 Copying and distribution of this file, with or without modification,
12062 are permitted in any medium without royalty provided the copyright
12063 notice and this notice are preserved.