combine: Don't call extract_left_shift with count < 0 (PR67483)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
2
3         PR rtl-optimization/67483
4         * combine.c (make_compound_operation): Don't call extract_left_shift
5         with negative shift amounts.
6
7 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
8
9         PR bootstrap/71071
10         * fold-const.c (fold_checksum_tree): Allow modification
11         of TYPE_ALIAS_SET during folding.
12
13         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
14         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
15         (ix86_split_to_parts): Likewise.  Fix up formatting.
16
17 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
18
19         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
20         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
21         printf format.
22
23 2016-05-13  Nathan Sidwell  <nathan@acm.org>
24
25         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
26         (nvptx_name_replacement): Delete.
27         (write_fn_proto, write_fn_proto_from_insn,
28         nvptx_output_call_insn): Remove nvptx_name_replacement call.
29         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
30         * langhooks.c (add_builtin_funcction_common): Call
31         targetm.mangle_decl_assembler_name.
32
33         * config/nvptx/nvptx.c (write_fn_proto): Handle
34         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
35
36 2016-05-13  Martin Liska  <mliska@suse.cz>
37
38         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
39         and PRIu64 in printf format.
40
41 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
42
43         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
44         comment.
45
46 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
47
48         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
49         Change --param max-completely-peeled-times to
50         --param max-completely-peel-times in dump file printing.
51
52 2016-05-13  Richard Biener  <rguenther@suse.de>
53
54         PR tree-optimization/42587
55         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
56         (find_bswap_or_nop_1): Likewise.
57         (bswap_replace): Likewise.
58
59 2016-05-13  Martin Liska  <mliska@suse.cz>
60
61         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
62         Initialize a variable with default value.
63
64 2016-05-13  Martin Liska  <mliska@suse.cz>
65
66         * doc/invoke.texi: Enhance explanation of error recovery
67         of sanitizers.
68
69 2016-05-13  Martin Liska  <mliska@suse.cz>
70
71         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
72         (struct cost_pair): Change inv_expr_id (int) to inv_expr
73         (iv_inv_expr_ent *).
74         (struct iv_inv_expr_ent): Comment struct fields.
75         (sort_iv_inv_expr_ent): New function.
76         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
77         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
78         a hash_map between iv_inv_expr_ent and number of usages.
79         (niter_for_exit): Fix coding style.
80         (tree_ssa_iv_optimize_init): Use renamed variable.
81         (determine_base_object): Fix coding style.
82         (alloc_iv): Likewise.
83         (find_interesting_uses_outside): Likewise.
84         (add_candidate_1): Likewise.
85         (add_standard_iv_candidates): Likewise.
86         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
87         (prepare_decl_rtl): Fix coding style.
88         (get_address_cost): Likewise.
89         (get_shiftadd_cost): Likewise.
90         (force_expr_to_var_cost): Likewise.
91         (compare_aff_trees): Likewise.
92         (get_expr_id): Restructure the function.
93         (get_loop_invariant_expr_id): Renamed to
94         get_loop_invariant_expr.
95         (get_computation_cost_at): Replace usage of inv_expr_id with
96         inv_expr.
97         (get_computation_cost): Likewise.
98         (determine_group_iv_cost_generic): Likewise.
99         (determine_group_iv_cost_address): Likewise.
100         (iv_period): Fix coding style.
101         (iv_elimination_compare_lt): Likewise.
102         (may_eliminate_iv): Likewise.
103         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
104         inv_expr.
105         (determine_group_iv_costs): Dump invariant expressions.
106         (iv_ca_recount_cost): Use the newly added hash_map.
107         (iv_ca_set_remove_invariants): Fix coding style.
108         (iv_ca_set_add_invariants): Fix coding style.
109         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
110         invariants.
111         (iv_ca_set_cp): Likewise.
112         (iv_ca_new): Initialize the newly added hash_map and remove
113         initialization of fields.
114         (iv_ca_free): Delete the hash_map.
115         (iv_ca_dump): Dump invariant expressions.
116         (iv_ca_extend): Fix coding style.
117         (try_add_cand_for): Likewise.
118         (create_new_ivs): Dump information about # of avg iterations and
119         # of used invariant expressions.
120         (rewrite_use_compare): Fix coding style.
121         (free_loop_data): Set default value for max_inv_expr_id.
122
123 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
124
125         * cse.c (rest_of_handle_cse): Use cleanup_cfg
126         returned value cse_cfg_altered computation.
127         (rest_of_handle_cse2): Likewise.
128         (rest_of_handle_cse_after_global_opts): Likewise.
129
130 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
131
132         PR target/53440
133         * config/arm/arm.c (arm32_output_mi_thunk): New.
134         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
135         to split Thumb1 vs TARGET_32BIT functionality.
136         (arm_thumb1_mi_thunk): New.
137
138 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
139
140         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
141         to true.
142
143 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
144
145         PR target/71080
146         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
147
148 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
149
150         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
151         (expand_builtin_trap): Emit a regular call.
152         (set_builtin_user_assembler_name): Remove obsolete cases.
153         * dse.c (scan_insn): Adjust.
154         * except.c: Include calls.h.
155         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
156         emit a regular call to setjmp.
157         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
158         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
159         (emit_block_move_via_libcall): Delete.
160         (block_move_fn): Delete.
161         (init_block_move_fn): Likewise.
162         (emit_block_move_libcall_fn): Likewise.
163         (emit_block_op_via_libcall): New function.
164         (set_storage_via_libcall): Tidy up and use memset builtin.
165         (block_clear_fn): Delete.
166         (init_block_clear_fn): Likewise.
167         (clear_storage_libcall_fn): Likewise.
168         (expand_assignment): Call emit_block_move_via_libcall.
169         Do not include gt-expr.h.
170         * expr.h (emit_block_op_via_libcall): Declare.
171         (emit_block_copy_via_libcall): New inline function.
172         (emit_block_move_via_libcall): Likewise.
173         (emit_block_comp_via_libcall): Likewise.
174         (block_clear_fn): Delete.
175         (init_block_move_fn): Likewise.
176         (init_block_clear_fn): Likewise.
177         (emit_block_move_via_libcall): Likewise.
178         (set_storage_via_libcall): Add default parameter value.
179         * libfuncs.h (enum libfunc_index): Remove obsolete values.
180         (abort_libfunc): Delete.
181         (memcpy_libfunc): Likewise.
182         (memmove_libfunc): Likewise.
183         (memcmp_libfunc): Likewise.
184         (memset_libfunc): Likewise.
185         (setbits_libfunc): Likewise.
186         (setjmp_libfunc): Likewise.
187         (longjmp_libfunc): Likewise.
188         (profile_function_entry_libfunc): Likewise.
189         (profile_function_exit_libfunc): Likewise.
190         (gcov_flush_libfunc): Likewise.
191         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
192         and DECL_VISIBILITY on the declaration.
193         (init_optabs): Do not initialize obsolete libfuncs.
194         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
195         * tree-core.h (ECF_RET1): Define.
196         (ECF_TM_PURE): Adjust.
197         (ECF_TM_BUILTIN): Likewise.
198         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
199         (build_common_builtin_nodes): Initialize abort builtin.
200         Add ECF_RET1 on memcpy, memmove and memset builtins.
201         Pass final flags for alloca and alloca_with_align builtins.
202         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
203         obsolete builtins.
204         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
205         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
206         set_storage_via_libcall and call emit_block_copy_via_libcall.
207
208 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
209
210         * config/i386/i386.md (*call_got_x32): Change operand 0 to
211         DImode before it is passed to ix86_output_call_operand.
212         (*call_value_got_x32): Ditto for operand 1.
213
214 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
215
216         PR rtl-optimization/70904
217         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
218         reload for wide mode.
219
220 2016-05-12  Marek Polacek  <polacek@redhat.com>
221
222         PR c/70756
223         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
224         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
225         * langhooks.h (incomplete_type_error): Likewise.
226         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
227         parameter, pass it down to incomplete_type_error.
228         * tree.h (size_in_bytes): New inline overload.
229         (size_in_bytes_loc): Renamed from size_in_bytes.
230
231 2016-05-12  Richard Biener  <rguenther@suse.de>
232
233         PR tree-optimization/71059
234         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
235         nary before looking up or entering the expression into the VN
236         hashes.
237         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
238         Make sure to re-use NARYs without result as inserted by
239         phi-translation.
240
241 2016-05-12  Richard Biener  <rguenther@suse.de>
242
243         PR tree-optimization/71062
244         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
245         field.
246         * tree-ssa-structalias.c (set_uids_in_ptset): Set
247         vars_contains_restrict if the var is a restrict tag.
248         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
249         do not disambiguate pointers against it.
250         (dump_points_to_solution): Re-structure and adjust for new
251         vars_contains_restrict flag.
252         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
253
254 2016-05-12  Martin Liska  <mliska@suse.cz>
255
256         * doc/invoke.texi: Explain connection between
257         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
258
259 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
260
261         PR tree-optimization/71006
262         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
263         consider COND_EXPR as a mask producer.
264
265 2016-05-12  Marek Polacek  <polacek@redhat.com>
266
267         PR driver/71063
268         * opts.c (common_handle_option): Detect missing argument for --help^.
269
270 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
271
272         PR target/70830
273         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
274         when popping the PC and within an interrupt handler routine.
275         Add missing tab to output of "ldmfd".
276         (output_return_instruction): Output LDMFD with SP update rather
277         than POP when returning from interrupt handler.
278
279 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
280
281         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
282         TARGET_64BIT && TARGET_AVX512DQ.
283         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
284         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
285         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
286         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
287         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
288         (*vec_extractv4si_zext): Add avx512dq alternative.
289         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
290         use v instead of x constraint in other alternatives where possible.
291
292         * config/i386/sse.md (sse2_loadld): Use v instead of x
293         constraint in alternatives 0,1,4.
294
295         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
296         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
297         v constraints instead of x and <pinsr_evex_isa> isa attribute.
298
299         PR target/71019
300         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
301         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
302         is not emitted unless TARGET_AVX512BW.
303         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
304         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
305         for the result operand.
306
307         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
308         constraint instead of x in avx alternatives.  Use maybe_evex instead
309         of vex prefix.
310
311         * config/i386/constraints.md (Yv): New constraint.
312         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
313         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
314         * config/i386/i386.md (avx512fvecmode): New mode attr.
315         (*pushtf): Use v constraint instead of x.
316         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
317         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
318         (*absneg<mode>2): Use Yv constraint instead of x constraint.
319         (*absnegtf2_sse): Likewise.
320         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
321         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
322         avx512f alternatives.
323         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
324
325 2016-05-12  Richard Biener  <rguenther@suse.de>
326
327         PR tree-optimization/71060
328         * tree-data-ref.c (initialize_data_dependence_relation): Do not
329         require exact match of DR_BASE_OBJECT but only matching address and
330         type.
331
332 2016-05-12  Richard Biener  <rguenther@suse.de>
333
334         PR tree-optimization/70986
335         * cfganal.c: Include cfgloop.h.
336         (dfs_find_deadend): Prefer to take edges exiting loops.
337
338 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
339
340         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
341         compile and run time.
342
343 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
344
345         PR c/43651
346         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
347
348 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
349
350         * config/i386/i386.c (legitimize_pic_address): Use
351         copy_to_suggested_reg instead of gen_movsi.
352
353 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
354
355         * config/rs6000/predicates.md (quad_memory_operand): Move most of
356         the code into quad_address_p and call it to share code with
357         vsx_quad_dform_memory_operand.
358         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
359         d-form support.
360         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
361         bit instead of being a separate word.  Split -mpower9-dform into
362         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
363         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
364         for the register class supporting 128-bit quad word memory offsets.
365         (mode_supports_vsx_dform_quad): Helper function to return if the
366         register class uses quad word memory offsets.
367         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
368         (rs6000_debug_reg_global): Always print if we are using LRA or not.
369         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
370         instructions are enabled, set up the appropriate addr_masks for
371         128-bit types.
372         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
373         -mpower9-dform-scalar, instead of -mpower9-dform.
374         (rs6000_option_override_internal): Split -mpower9-dform into two
375         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
376         -mpower9-dform switch sets or clears both.  If we are not using
377         the LRA register allocator, do not enable -mpower9-dform-vector by
378         default.  If we are using LRA, enable -mpower9-dform-vector and
379         -mvsx-timode if it is appropriate.  Issue a warning if either
380         -mpower9-dform-vector or -mvsx-timode are explicitly used without
381         enabling LRA.
382         (quad_address_offset_p): New helper function to return if the
383         offset is legal for quad word memory instructions.
384         (quad_address_p): New function to determin if GPR or vector
385         register quad word memory addresses are legal.
386         (mem_operand_gpr): Validate quad word address offsets.
387         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
388         d-form (register + offset) instructions.
389         (offsettable_ok_by_alignment): Likewise.
390         (rs6000_legitimate_offset_address_p): Likewise.
391         (legitimate_lo_sum_address_p): Likewise.
392         (rs6000_legitimize_address): Likewise.
393         (rs6000_legitimize_reload_address): Add more debug statements for
394         -mdebug=addr.
395         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
396         d-form instructions.
397         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
398         d-form instructions.  Distinguish different cases in debug
399         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
400         d-form instructions.
401         (rs6000_preferred_reload_class): Likewise.
402         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
403         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
404         of the ISA 2.06 indexed memory instructions.
405         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
406         use them to save/restore the saved vector registers instead of
407         using Altivec instructions.
408         (rs6000_emit_epilogue): Likewise.
409         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
410         (rs6000_opt_masks): Split -mpower9-dform into
411         -mpower9-dform-scalar and -mpower9-dform-vector.
412         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
413         was not selected.
414         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
415         ISA 3.0 vector indexed memory instructions, and fold the code into
416         the normal mov<mode> patterns.
417         (p9_vecstore_<mode>): Likewise.
418         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
419         instructions.
420         (vsx_movti_64bit): Likewise.
421         (vsx_movti_32bit): Likewise.
422         * config/rs6000/constraints.md (wO constraint): New constraint for
423         ISA 3.0 vector d-form support.
424         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
425         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
426         include -mpower9-dform-vector until we switch over to LRA.
427         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
428         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
429         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
430         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
431         for -mpower9-dform and -mlra.
432         * doc/md.texi (wO constraint): Document wO constraint.
433
434 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
435
436         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
437         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
438         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
439         Move handling of non-insn arguments inline into the sole user:
440         (output_trans_func): ...here.
441         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
442         in emitted function prototype.
443         (output_internal_insn_latency_func): Ditto.  Simplify.
444         (output_internal_maximal_insn_latency_func): Ditto.  Delete
445         always-unused argument.
446         (output_insn_latency_func): Ditto.
447         (output_maximal_insn_latency_func): Ditto.
448
449 2016-05-11  Richard Biener  <rguenther@suse.de>
450
451         PR tree-optimization/71055
452         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
453         sth with precision not equal to access size verify we don't chop
454         off bits.
455
456 2016-05-11  Richard Biener  <rguenther@suse.de>
457
458         PR debug/71057
459         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
460         (dwarf2out_finish): Move retry_incomplete_types call ...
461         (dwarf2out_early_finish): ... here.
462
463 2016-05-11  Richard Biener  <rguenther@suse.de>
464
465         PR middle-end/71002
466         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
467         if the langhook insists on it.
468         * fold-const.c (make_bit_field_ref): Add arg for the original
469         reference and preserve its alias-set.
470         (decode_field_reference): Take exp by reference and adjust it
471         to the original memory reference.
472         (optimize_bit_field_compare): Adjust callers.
473         (fold_truth_andor_1): Likewise.
474         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
475
476 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
477
478         PR middle-end/70807
479         * cfgrtl.h (delete_insn_and_edges): Now return bool.
480         * cfgrtl.c (delete_insn_and_edges): Likewise.
481         * config/i386/i386.c (convert_scalars_to_vector): Remove
482         redundant code.
483         * cse.c (cse_insn): Compute cse_cfg_altered.
484         (delete_trivially_dead_insns): Likewise.
485         (cse_cc_succs): Likewise.
486         (rest_of_handle_cse): Free dominance info if required.
487         (rest_of_handle_cse2): Likewise.
488         (rest_of_handle_cse_after_global_opts): Likewise.
489
490 2016-05-11  Alan Modra  <amodra@gmail.com>
491
492         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
493         abi_v4_pass_in_fpr): New functions.
494         (rs6000_function_arg_boundary): Exclude complex IBM long double
495         from 64-bit alignment when ABI_V4.
496         (rs6000_function_arg, rs6000_function_arg_advance_1,
497         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
498
499 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
500
501         PR rtl-optimization/71028
502         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
503         jump with just a return in the fallthrough block if the branch
504         block contains just a return as well.
505
506 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
507
508         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
509         * match.pd ((X & Y) ^ Y): ... this.
510         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
511         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
512
513 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
514
515         * read-md.c (require_char_ws): New function.
516         (read_string): Simplify using require_char_ws.
517         (handle_constants): Likewise.
518         (handle_enum): Likewise.
519         (handle_file): Likewise.
520         * read-md.h (require_char_ws): New declaration.
521         * read-rtl.c (read_conditions): Simplify using require_char_ws.
522         (read_mapping): Likewise.
523         (read_rtx_code): Likewise.
524         (read_nested_rtx): Likewise.
525
526 2016-05-10  James Norris  <jnorris@codesourcery.com>
527
528         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
529         if offloading is enabled and -fopenacc or -fopenmp is specified.
530         (CRTOFFLOADEND): Likewise.
531         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
532         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
533
534 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
535
536         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
537         gotoff_operand code paths.  Use copy_to_suggested_regs and
538         expand_simple_binop where appropriate.  Cleanup.
539
540 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
541
542         PR target/70799
543         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
544         integer constants.
545         (dimode_scalar_chain::vector_const_cost): New.
546         (dimode_scalar_chain::compute_convert_gain): Handle constants.
547         (dimode_scalar_chain::convert_op): Likewise.
548         (dimode_scalar_chain::convert_insn): Likewise.
549
550 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
551
552         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
553         unary operation, not a binary one.
554
555 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
556
557         PR middle-end/70877
558         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
559         calls with type casted fndecl.
560
561 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
562
563         PR tree-optimization/70786
564         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
565         * gcc/calls.c (initialize_argument_information): Bind bounds
566         with corresponding args passed by reference.
567
568 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
569
570         PR target/70927
571         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
572         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
573         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
574         accordingly.
575
576 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
577
578         PR target/70963
579         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
580         code for a zero scale factor.
581         (vsx_xvcvdpuxds_scale): Likewise.
582
583 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
584
585         * diagnostic-show-locus.c (layout::layout): Call show_ruler
586         if show_ruler_p was set on the context.
587         (layout::show_ruler): New method.
588         * diagnostic.h (struct diagnostic_context): Add field
589         "show_ruler_p".
590
591 2016-05-10  Richard Biener  <rguenther@suse.de>
592
593         PR tree-optimization/71039
594         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
595         (chk_uses): New function.
596         (propagate_with_phi): Verify we can safely replicate the lhs of an
597         aggregate assignment on all incoming edges.
598
599 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
600
601         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
602         Forward declare.
603         (rx_atomic_sequence): New class.
604         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
605         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
606         non-inline.
607         (rx_atomic_sequence::rx_atomic_sequence,
608         rx_atomic_sequence::~rx_atomic_sequence): New functions.
609         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
610         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
611         CTRLREG_INTB): New constants.
612         (FETCHOP): New code iterator.
613         (fethcop_name, fetchop_name2): New iterator code attributes.
614         (QIHI): New mode iterator.
615         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
616         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
617         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
618
619 2016-05-10  Martin Liska  <mliska@suse.cz>
620
621         * tree-inline.c (remap_dependence_clique): Do not remap
622         debugging statements.
623
624 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
625
626         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
627         ("*fixuns_truncdfdi2_z13")
628         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
629         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
630         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
631
632 2016-05-10  Richard Biener  <rguenther@suse.de>
633
634         PR tree-optimization/70497
635         PR tree-optimization/28367
636         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
637         split out from ...
638         (visit_reference_op_load): ... here.
639         (vn_reference_lookup_3): Use it to handle subreg-like accesses
640         with simplified BIT_FIELD_REFs.
641         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
642         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
643         correctly.
644
645 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
646
647         * dwarf2out.c (add_abstract_origin_attribute): Adjust
648         documentation comment.  For BLOCK nodes, add a
649         DW_AT_abstract_origin attribute that points to the DIE generated
650         for the origin BLOCK.
651         (gen_lexical_block_die): Call add_abstract_origin_attribute for
652         blocks from inlined functions.
653
654 2016-05-10  Alan Modra  <amodra@gmail.com>
655
656         PR target/70947
657         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
658         regrename modifying insns saving lr before __morestack call.
659         * config/rs6000/rs6000.md (split_stack_return): Similarly for
660         insns restoring lr after __morestack call.
661
662 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
663
664         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
665         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
666         expanders.
667         * config/i386/sse.md (vec_interleave_high<mode>,
668         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
669         <avx512>_vpermt2var<mode>3_maskz): Likewise.
670
671 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
672
673         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
674         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
675         parallel reassociation for power8 and forward.
676
677 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
678
679         * config/i386/i386.md (absneg splitters with general regs): Use
680         general_reg_operand predicate.
681         (btsq peephole2): Use x86_64_immediate_operand to check if new
682         value is suitable for immediate operand.  Generate emitted insn
683         using RTL expressions.
684         (btcq peephole2): Ditto.
685         (btrq peephole2): Ditto.  Generate correct immediate operand
686         for AND masking.
687
688 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
689
690         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
691         bitpos.
692
693 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
694
695         * tree-affine.c (wide_int_constant_multiple_p): Add missing
696         pointer dereference.
697
698 2016-05-09  Richard Biener  <rguenther@suse.de>
699
700         PR tree-optimization/70985
701         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
702         op0 isn't a gimple register.
703
704 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
705
706         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
707         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
708         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
709         (i6400_fpu_mult): New cpu units.
710         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
711         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
712         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
713         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
714         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
715         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
716         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
717         (i6400_msa_long_float4, i6400_msa_long_float5)
718         (i6400_msa_long_float8, i6400_msa_fdiv_df)
719         (i6400_msa_fdiv_sf): New reservations.
720         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
721         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
722         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
723         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
724         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
725         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
726         (msa_short_cmp, msa_short_float2, msa_short_logic3)
727         (msa_short_store4, msa_long_load, msa_short_store)
728         (msa_long_logic, msa_long_float2, msa_long_float4)
729         (msa_long_float5, msa_long_float8, msa_long_mult)
730         (msa_long_fdiv, msa_long_div): New reservations.
731
732 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
733             Sameera Deshpande  <sameera.deshpande@imgtec.com>
734             Matthew Fortune  <matthew.fortune@imgtec.com>
735             Graham Stott  <graham.stott@imgtec.com>
736             Chao-ying Fu  <chao-ying.fu@imgtec.com>
737
738         * config.gcc: Add MSA header file for mips*-*-* target.
739         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
740         (Ubv8i, Urv8):  New constraints.
741         * config/mips/mips-ftypes.def: Add function types for MSA
742         builtins.
743         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
744         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
745         * config/mips/mips-msa.md: New file.
746         * config/mips/mips-protos.h
747         (mips_split_128bit_const_insns): New prototype.
748         (mips_msa_idiv_insns): Likewise.
749         (mips_split_128bit_move): Likewise.
750         (mips_split_128bit_move_p): Likewise.
751         (mips_split_msa_copy_d): Likewise.
752         (mips_split_msa_insert_d): Likewise.
753         (mips_split_msa_fill_d): Likewise.
754         (mips_expand_msa_branch): Likewise.
755         (mips_const_vector_same_val_p): Likewise.
756         (mips_const_vector_same_bytes_p): Likewise.
757         (mips_const_vector_same_int_p): Likewise.
758         (mips_const_vector_shuffle_set_p): Likewise.
759         (mips_const_vector_bitimm_set_p): Likewise.
760         (mips_const_vector_bitimm_clr_p): Likewise.
761         (mips_msa_vec_parallel_const_half): Likewise.
762         (mips_msa_output_division): Likewise.
763         (mips_ldst_scaled_shift): Likewise.
764         (mips_expand_vec_cond_expr): Likewise.
765         * config/mips/mips.c (enum mips_builtin_type): Add
766         MIPS_BUILTIN_MSA_TEST_BRANCH.
767         (mips_gen_const_int_vector_shuffle): New prototype.
768         (mips_const_vector_bitimm_set_p): New function.
769         (mips_const_vector_bitimm_clr_p): Likewise.
770         (mips_const_vector_same_val_p): Likewise.
771         (mips_const_vector_same_bytes_p): Likewise.
772         (mips_const_vector_same_int_p): Likewise.
773         (mips_const_vector_shuffle_set_p): Likewise.
774         (mips_symbol_insns): Forbid loading symbols via immediate for
775         MSA.
776         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
777         stores.
778         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
779         MSA.
780         (mips_lx_address_p): Add support load indexed address for MSA.
781         (mips_address_insns): Add calculation of instructions needed for
782         stores and loads for MSA.
783         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
784         CONST_VECTOR for MSA and let it fall through.
785         (mips_ldst_scaled_shift): New function.
786         (mips_subword_at_byte): Likewise.
787         (mips_msa_idiv_insns): Likewise.
788         (mips_legitimize_move): Validate MSA moves.
789         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
790         calculation of costs for MSA division.
791         (mips_split_move_p): Check if MSA moves need splitting.
792         (mips_split_move): Split MSA moves if necessary.
793         (mips_split_128bit_move_p): New function.
794         (mips_split_128bit_move): Likewise.
795         (mips_split_msa_copy_d): Likewise.
796         (mips_split_msa_insert_d): Likewise.
797         (mips_split_msa_fill_d): Likewise.
798         (mips_output_move): Handle MSA moves.
799         (mips_expand_msa_branch): New function.
800         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
801         Reinstate 'y' modifier.
802         (mips_file_start): Add MSA .gnu_attribute.
803         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
804         FPRs.
805         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
806         (mips_class_max_nregs): Add register size for MSA supported mode.
807         (mips_cannot_change_mode_class): Allow conversion between MSA
808         vector modes and TImode.
809         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
810         instruction.
811         (mips_secondary_reload_class): Force MSA loads/stores via memory.
812         (mips_preferred_simd_mode): Add preffered modes for MSA.
813         (mips_vector_mode_supported_p): Add MSA supported modes.
814         (mips_autovectorize_vector_sizes): New function.
815         (mips_msa_output_division): Likewise.
816         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
817         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
818         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
819         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
820         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
821         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
822         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
823         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
824         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
825         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
826         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
827         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
828         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
829         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
830         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
831         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
832         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
833         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
834         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
835         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
836         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
837         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
838         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
839         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
840         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
841         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
842         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
843         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
844         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
845         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
846         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
847         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
848         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
849         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
850         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
851         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
852         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
853         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
854         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
855         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
856         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
857         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
858         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
859         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
860         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
861         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
862         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
863         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
864         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
865         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
866         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
867         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
868         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
869         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
870         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
871         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
872         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
873         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
874         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
875         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
876         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
877         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
878         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
879         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
880         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
881         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
882         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
883         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
884         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
885         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
886         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
887         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
888         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
889         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
890         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
891         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
892         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
893         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
894         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
895         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
896         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
897         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
898         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
899         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
900         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
901         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
902         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
903         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
904         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
905         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
906         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
907         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
908         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
909         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
910         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
911         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
912         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
913         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
914         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
915         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
916         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
917         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
918         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
919         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
920         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
921         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
922         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
923         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
924         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
925         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
926         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
927         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
928         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
929         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
930         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
931         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
932         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
933         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
934         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
935         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
936         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
937         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
938         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
939         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
940         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
941         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
942         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
943         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
944         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
945         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
946         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
947         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
948         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
949         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
950         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
951         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
952         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
953         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
954         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
955         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
956         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
957         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
958         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
959         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
960         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
961         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
962         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
963         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
964         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
965         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
966         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
967         move_v builtins.
968         (mips_get_builtin_decl_index): New array.
969         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
970         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
971         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
972         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
973         (mips_init_builtins): Initialize mips_get_builtin_decl_index
974         array.
975         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
976         hook.
977         (mips_expand_builtin_insn): Prepare operands for
978         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
979         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
980         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
981         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
982         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
983         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
984         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
985         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
986         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
987         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
988         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
989         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
990         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
991         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
992         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
993         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
994         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
995         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
996         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
997         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
998         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
999         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1000         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1001         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1002         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1003         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1004         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1005         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1006         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1007         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1008         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1009         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1010         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1011         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1012         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1013         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1014         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1015         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1016         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1017         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1018         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1019         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1020         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1021         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1022         These are set implicitly and an error is reported if overridden.
1023         (mips_expand_builtin_msa_test_branch): New function.
1024         (mips_expand_msa_shuffle): Likewise.
1025         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1026         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1027         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1028         (mips_expand_vec_unpack): Add support for MSA.
1029         (mips_expand_vector_init): Likewise.
1030         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1031         instead of const0_rtx.
1032         (mips_msa_vec_parallel_const_half): New function.
1033         (mips_gen_const_int_vector): Likewise.
1034         (mips_gen_const_int_vector_shuffle): Likewise.
1035         (mips_expand_msa_cmp): Likewise.
1036         (mips_expand_vec_cond_expr): Likewise.
1037         * config/mips/mips.h
1038         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1039         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1040         specified.
1041         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1042         (ISA_HAS_MSA): New macro.
1043         (UNITS_PER_MSA_REG): Likewise.
1044         (BITS_PER_MSA_REG): Likewise.
1045         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1046         (MSA_REG_FIRST): New macro.
1047         (MSA_REG_LAST): Likewise.
1048         (MSA_REG_NUM): Likewise.
1049         (MSA_REG_P): Likewise.
1050         (MSA_REG_RTX_P): Likewise.
1051         (MSA_SUPPORTED_MODE_P): Likewise.
1052         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1053         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1054         * config/mips/mips.md: Include mips-msa.md.
1055         (alu_type): Add simd_add.
1056         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1057         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1058         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1059         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1060         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1061         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1062         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1063         simd_move, simd_load, simd_store.  Choose "multi" for moves
1064         for "qword_mode".
1065         (qword_mode): New attribute.
1066         (insn_count): Add instruction count for quad moves.
1067         Increase the count for MIPS SIMD division.
1068         (UNITMODE): Add UNITMODEs for vector types.
1069         (addsub): New code iterator.
1070         * config/mips/mips.opt (mmsa): New option.
1071         * config/mips/msa.h: New file.
1072         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1073         specified.
1074         * config/mips/mti-linux.h: Likewise.
1075         * config/mips/predicates.md
1076         (const_msa_branch_operand): New constraint.
1077         (const_uimm3_operand): Likewise.
1078         (const_uimm4_operand): Likewise.
1079         (const_uimm5_operand): Likewise.
1080         (const_uimm8_operand): Likewise.
1081         (const_imm5_operand): Likewise.
1082         (aq10b_operand): Likewise.
1083         (aq10h_operand): Likewise.
1084         (aq10w_operand): Likewise.
1085         (aq10d_operand): Likewise.
1086         (const_m1_operand): Likewise.
1087         (reg_or_m1_operand): Likewise.
1088         (const_exp_2_operand): Likewise.
1089         (const_exp_4_operand): Likewise.
1090         (const_exp_8_operand): Likewise.
1091         (const_exp_16_operand): Likewise.
1092         (const_vector_same_val_operand): Likewise.
1093         (const_vector_same_simm5_operand): Likewise.
1094         (const_vector_same_uimm5_operand): Likewise.
1095         (const_vector_same_uimm6_operand): Likewise.
1096         (const_vector_same_uimm8_operand): Likewise.
1097         (par_const_vector_shf_set_operand): Likewise.
1098         (reg_or_vector_same_val_operand): Likewise.
1099         (reg_or_vector_same_simm5_operand): Likewise.
1100         (reg_or_vector_same_uimm6_operand): Likewise.
1101         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1102         section.
1103         * doc/invoke.texi (-mmsa): Document new option.
1104
1105 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1106
1107         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1108         * configure: Regenerate.
1109         * config.in: Regenerate.
1110         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1111         on -fvtable-verify.
1112         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1113         (ENDFILE_VTV_SPEC): Define.
1114
1115 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1116
1117         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1118         registers in all interrupt handlers if necessary.
1119         (rl78_option_override): Add warning.
1120         (MUST_SAVE_MDUC_REGISTERS): New macro.
1121         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1122         * config/rl78/rl78.c (check_mduc_usage): New function.
1123         (mduc_regs): New structure to hold MDUC register data.
1124         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1125         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1126         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1127         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1128         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1129         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1130
1131 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1132
1133         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1134         (tree-ssa-loop-niter.h): Ditto.
1135         (idx_within_array_bound, ref_within_array_bound): New functions.
1136         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1137         Factor out check on writable base object to ...
1138         (base_object_writable): ... here.
1139
1140 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1141
1142         * config/arm/arm.md (probe_stack): Add modes to set source
1143         and destination.
1144
1145 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1146
1147         * regrename.c (base_reg_class_for_rename): New static function.
1148         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1149
1150 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1151
1152         * cgraph.c (thunk_adjust): Export.
1153         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1154         * cgraphunit.c (thunk_adjust): Export.
1155         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1156         thunks.
1157         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1158         inlinable.
1159         * tree-inline.c (expand_call_inline): Expand thunks inline.
1160
1161 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1162
1163         PR target/70998
1164         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1165         (*sse2_vd_cvtss2sd): Ditto.
1166         * config/i386/i386.md
1167         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1168         Generate *sse2_vd_cvtsd2ss pattern.
1169         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1170         Generate *sse2_vd_cvtss2sd pattern.
1171
1172 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1173
1174         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1175         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1176         users.
1177
1178 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1179
1180         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1181         * config/sh/sh.c: Define and declare variables on first use throughout
1182         the file.
1183         (current_function_interrupt): Change to bool type.
1184         (frame_insn): Rename to emit_frame_insn and update users.
1185         (push_regs): Use bool for 'interrupt_handler' argument.
1186         (save_schedule_s): Remove.
1187         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1188         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1189         targetm.asm_out.unaligned_op.di.
1190         (gen_far_branch): Remove redundant forward declaration.
1191         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1192         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1193         (sh_set_return_address, sh_function_ok_for_sibcall,
1194         scavenge_reg): Update comments.
1195         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1196         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1197         (sh_attr_renesas_p): Remove unnecessary parentheses.
1198         (branch_dest): Simplify.
1199         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1200         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1201         (CUMULATIVE_ARGS): Change macro to typedef.
1202         (current_function_interrupt): Change to bool type.
1203         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1204         Surround with __cplusplus ifdef.
1205         (sh_compare_op0, sh_compare_op1): Remove.
1206         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1207
1208 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1209
1210         * config/arm/arm.md: (arch): Add neon.
1211         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1212         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1213         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1214         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1215         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1216         (thumb2_movdf_vfp): Likewise.
1217
1218 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1219
1220         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1221         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1222         (*andqi_1): Add preferred_for_speed attribute to disparage
1223         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1224         (*<code>qi_1): Ditto.
1225         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1226         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1227         (*ashlqi3_1): Ditto.
1228         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1229         Add preferred_for_size attribute to disparage alternative 0 and
1230         preferred_for_speed attribute to disparage alternative 1 for
1231         TARGET_PARTIAL_REG_STALL targets.
1232
1233 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1234
1235         PR tree-optimization/70956
1236         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1237         def.
1238
1239 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1240
1241         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1242         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1243         * config/sh/sh.md (branch_zero): Remove define_attr.
1244         (define_delay): Disable delay slot if branch distance is one insn.
1245
1246 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1247
1248         * config/i386/i386.md (LEAMODE): New mode attribute.
1249         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1250         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1251         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1252         operand 2 predicate.
1253         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1254         (*lea<mode>_general_3): Ditto.
1255         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1256
1257 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1258
1259         * genmddump.c (main): Convert argv from char ** to const char **.
1260
1261 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1262
1263         * coretypes.h (OVERRIDE): New macro.
1264         (FINAL): New macro.
1265
1266 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1267
1268         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1269         allow coalescing if the types are compatible.
1270
1271 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1272
1273         * pass_manager.h (pass_manager::register_pass_name): New method.
1274         (pass_manager::get_pass_by_name): New method.
1275         (pass_manager::create_pass_tab): New method.
1276         (pass_manager::m_name_to_pass_map): New field.
1277         * passes.c (name_to_pass_map): Delete global in favor of field
1278         "m_name_to_pass_map" of pass_manager.
1279         (register_pass_name): Rename from a function to...
1280         (pass_manager::register_pass_name): ...this method, updating
1281         for renaming of global "name_to_pass_map" to field
1282         "m_name_to_pass_map".
1283         (create_pass_tab): Rename from a function to...
1284         (pass_manager::create_pass_tab): ...this method, updating
1285         for renaming of global "name_to_pass_map" to field.
1286         (get_pass_by_name): Rename from a function to...
1287         (pass_manager::get_pass_by_name): ...this method.
1288         (enable_disable_pass): Convert use of get_pass_by_name to
1289         a method call, locating the pass_manager singleton.
1290
1291 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1292
1293         * genattr-common.c (main): Convert argv from char ** to const char **.
1294         * genattr.c (main): Likewise.
1295         * genattrtab.c (main): Likewise.
1296         * genautomata.c (initiate_automaton_gen): Likewise.
1297         (main): Likewise.
1298         * gencodes.c (main): Likewise.
1299         * genconditions.c (main): Likewise.
1300         * genconfig.c (main): Likewise.
1301         * genconstants.c (main): Likewise.
1302         * genemit.c (main): Likewise.
1303         * genenums.c (main): Likewise.
1304         * genextract.c (main): Likewise.
1305         * genflags.c (main): Likewise.
1306         * genmddeps.c (main): Likewise.
1307         * genopinit.c (main): Likewise.
1308         * genoutput.c (main): Likewise.
1309         * genpeep.c (main): Likewise.
1310         * genpreds.c (main): Likewise.
1311         * genrecog.c (main): Likewise.
1312         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1313         (init_rtx_reader_args): Likewise.
1314         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1315         (init_rtx_reader_args): Likewise.
1316         * gentarget-def.c (main): Likewise.
1317         * read-md.c (read_md_files): Likewise.
1318         * read-md.h (read_md_files): Likewise.
1319
1320 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1321
1322         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1323         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1324         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1325         Remove unused predicate.
1326         (register_and_not_fp_reg_operand): Ditto.
1327
1328 2016-05-06  Martin Liska  <mliska@suse.cz>
1329
1330         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1331         instead of vec as the vector is local to the function.
1332
1333 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1334
1335         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1336         avx512bw alternative.
1337
1338         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1339         before the ashr<mode>3 pattern.
1340
1341         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1342         v instead of x in vex or maybe_vex alternatives, use
1343         maybe_evex instead of vex in prefix.
1344
1345         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1346         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1347         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1348         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1349         in prefix.
1350
1351         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1352         v instead of x in vex or maybe_vex alternatives, use
1353         maybe_evex instead of vex in prefix.
1354
1355         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1356         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1357         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1358         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1359         alternatives, use maybe_evex instead of vex in prefix.
1360
1361         * config/i386/sse.md (vec_interleave_lowv4sf,
1362         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1363         v instead of x in vex or maybe_vex alternatives, use
1364         maybe_evex instead of vex in prefix.
1365
1366         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1367         v instead of x in vex or maybe_vex alternatives, use
1368         maybe_evex instead of vex in prefix.
1369
1370         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1371         v constraint instead of x.
1372
1373 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1374
1375         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1376         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1377         equality first.
1378
1379 2016-05-06  Richard Biener  <rguenther@suse.de>
1380
1381         PR tree-optimization/70948
1382         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1383         Properly clobber all fields of va_list for __builtin_va_start.
1384
1385 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1386
1387         PR debug/70935
1388         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1389         loop latch destination.
1390
1391 2016-05-06  Martin Liska  <mliska@suse.cz>
1392
1393         * tree-ssa-uninit.c: Apply manual changes
1394         to the GNU coding style.
1395         (prune_uninit_phi_opnds): Rename from
1396         prune_uninit_phi_opnds_in_unrealizable_paths.
1397
1398 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1399
1400         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1401         mspace): Remove deprecated options.
1402         * doc/invoke.texi (SH options): Remove -mspace.
1403
1404 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1405
1406         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1407
1408 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1409
1410         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1411         corresponding combine split pattern.
1412
1413 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1414
1415         PR target/58219
1416         * config/sh/predicates.md (long_displacement_mem_operand): New.
1417         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1418         Add movi20, movi20s alternatives.  Adjust length attribute for
1419         alternatives.
1420         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1421         alternatives.
1422         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1423         attribute for alternatives.
1424         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1425         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1426         length attribute for alternatives.
1427
1428 2016-05-06  Richard Biener  <rguenther@suse.de>
1429
1430         PR tree-optimization/70960
1431         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1432
1433 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1434
1435         PR target/52933
1436         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1437         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1438
1439 2016-05-06  Marek Polacek  <polacek@redhat.com>
1440
1441         PR sanitizer/70875
1442         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1443
1444 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1445
1446         PR target/54089
1447         * config/sh/sh.md (*rotcr): Add another variant.
1448
1449 2016-05-06  Richard Biener  <rguenther@suse.de>
1450
1451         PR middle-end/70931
1452         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1453
1454 2016-05-06  Richard Biener  <rguenther@suse.de>
1455
1456         PR middle-end/70941
1457         * fold-const.c (split_tree): Always convert to the original type
1458         before negating.
1459
1460 2016-05-06  Richard Biener  <rguenther@suse.de>
1461
1462         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1463         (fwprop_addr): Likewise.
1464
1465 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1466
1467         PR target/70873
1468         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1469         New prototype.
1470         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1471         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1472         the splitter condition.
1473         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1474         the splitter condition.
1475         (FP float_extend load splitter): Ditto.
1476
1477 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1478
1479         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1480         to REGNO in all peephole2 patterns.
1481         (post-reload splitters): Change true_regnum to REGNO in
1482         post-reload splitters.
1483         (zero_extend splitters): Use general_reg_operand and
1484         nonimmediate_gr_operand predicates.
1485
1486 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1487
1488         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1489         v constraint instead of x.
1490
1491 2016-05-05  Alan Modra  <amodra@gmail.com>
1492
1493         PR target/68662
1494         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1495         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1496         TARGET_NO_FP_IN_TOC for -mrelocatable.
1497         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1498         TARGET_RELOCATABLE test.
1499         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1500         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1501         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1502         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1503         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1504         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1505         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1506         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1507         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1508         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1509         Likewise.
1510         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1511         (rs6000_stack_info): Likewise.
1512         (rs6000_elf_asm_out_constructor): Likewise.
1513         (rs6000_elf_asm_out_destructor): Likewise.
1514         (rs6000_elf_declare_function_name): Likewise.
1515         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1516         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1517         Don't define.
1518
1519 2016-05-05  Alan Modra  <amodra@gmail.com>
1520
1521         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1522
1523 2016-05-05  Alan Modra  <amodra@gmail.com>
1524
1525         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1526         out-of-line gpr restore for one or two regs if that would add
1527         a save of lr.
1528
1529 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1530
1531         PR target/70873
1532         * config/i386/i386.md
1533         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1534         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1535         as operand 0 predicate.
1536         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1537         Ditto.
1538         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1539         Ditto.  Emit the pattern using RTX.
1540
1541         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1542         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1543         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1544         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1545         Ditto.
1546         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1547         sse_reg_operand as operand 0 predicate.
1548
1549         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1550         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
1551         instead of gen_rtx_REG.
1552         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
1553         Ditto.
1554
1555 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1556
1557         * function.c (emit_use_return_register_into_block): Delete.
1558         (gen_return_pattern): Delete.
1559         (emit_return_into_block): Delete.
1560         (active_insn_between): Delete.
1561         (convert_jumps_to_returns): Delete.
1562         (emit_return_for_exit): Delete.
1563         (thread_prologue_and_epilogue_insns): Delete all code dealing with
1564         simple_return for shrink-wrapped blocks.
1565         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
1566         end of blocks that need one.
1567         (get_unconverted_simple_return): Delete.
1568         (convert_to_simple_return): Delete.
1569         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
1570         (convert_to_simple_return): Ditto.
1571
1572 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1573
1574         * cfgcleanup.c (bb_is_just_return): New function.
1575         (try_optimize_cfg): Simplify jumps to return, branches to return,
1576         and branches around return.
1577
1578 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1579
1580         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
1581         branch to a return.
1582
1583 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1584
1585         PR c++/70906
1586         PR c++/70933
1587         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
1588         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
1589         assert flags & OEP_HASH_CHECK, instead of asserting it
1590         never happens.  Handle TARGET_EXPR.
1591         * fold-const.c (operand_equal_p): For hash verification,
1592         or in OEP_HASH_CHECK into flags.
1593
1594 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1595
1596         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
1597         comment.
1598         (compute_samebase_partition_bases): Fix typo.
1599
1600 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1601
1602         * config/i386/sse.md (vec_interleave_highv8sf,
1603         vec_interleave_lowv8sf, vec_interleave_highv4df,
1604         vec_interleave_lowv4df): Remove constraints from expanders.
1605
1606         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
1607
1608 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1609
1610         * tree-inline.c (expand_call_inline): Fix path dealing with
1611         making lhs of call statement undefined.
1612
1613 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1614
1615         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
1616         Check availability on NODE, too.
1617         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
1618         (cgraph_node::call_for_symbol_and_aliases): Likewise.
1619         (varpool_node::call_for_symbol_and_aliase): Likewise.
1620         * ipa-pure-const.c (add_new_function): Analyze all bodies.
1621         (propagate_pure_const): Propagate across interposable functions, too.
1622         (skip_function_for_local_pure_const): Do not skip interposable bodies
1623         with aliases.
1624         (pass_local_pure_const::execute): Update.
1625
1626 2016-05-04  Marek Polacek  <polacek@redhat.com>
1627
1628         * doc/invoke.texi: Document -Wdangling-else.
1629
1630 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
1631
1632         * config.gcc: Error out when conflicting multilib is detected.  Do not
1633         loop over multilibs since no combination is legal.
1634
1635 2016-05-04  Alan Modra  <amodra@gmail.com>
1636
1637         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
1638         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
1639         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1640         Align .toc.
1641
1642 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
1643
1644         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
1645         Clean up p5600 comments.
1646
1647 2016-05-04  Richard Biener  <rguenther@suse.de>
1648
1649         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
1650         constructor simplifications.
1651         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
1652
1653 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
1654
1655         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
1656         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
1657         result.set_rtx is null instead of aborting.
1658         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
1659         Always enable.
1660         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
1661         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
1662         *mov<mode>_store_postinc): New patterns.
1663
1664 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
1665
1666         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
1667         as commutative.  Check both conversions are NOP.
1668         ((A & B) OP (C & B)): Remove.
1669
1670 2016-05-04  Alan Modra  <amodra@gmail.com>
1671
1672         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
1673
1674 2016-05-04  Alan Modra  <amodra@gmail.com>
1675
1676         PR target/70866
1677         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
1678         when cr2,3,4 are all fixed regs.
1679
1680 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
1681
1682         PR rtl-optimization/57193
1683         * opts.c (default_options_table): Revert OPT_frename_registers change.
1684         * doc/invoke.texi (-frename-registers, -O2): Likewise.
1685
1686 2016-05-03  Martin Sebor  <msebor@redhat.com>
1687
1688         PR c++/66561
1689         * builtins.c (fold_builtin_FILE): New function.
1690         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
1691         (fold_builtin_0): Call them.
1692         * gimplify.c (gimplify_call_expr): Remove the handling of
1693         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
1694
1695         PR c++/66561
1696         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
1697         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
1698         constants.
1699
1700         PR c++/66639
1701         * doc/extend.texi (Function Names as Strings): Update __func__,
1702         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
1703         constants.
1704
1705 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
1706             Richard Biener  <rguenther@suse.de>
1707
1708         PR tree-optimization/70916
1709         * tree-if-conv.c: Include cfganal.h.
1710         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
1711         and remove_fake_exit_edges around the optimization pass.
1712
1713 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
1714
1715         * cgraph.c (symbol_table::create_edge): Set inline_failed.
1716         (cgraph_edge::make_direct): Likewise.
1717         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
1718         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
1719         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
1720         (CIF_THUNK): New code.
1721         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
1722         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
1723         (compute_inline_parameters): Set inline_failed for thunks.
1724         (inline_analyze_function): Cleanup.
1725         * ipa-inline.c (can_inline_edge_p): Do not deal with
1726         call_stmt_cannot_inline_p.
1727         (can_early_inline_edge_p): Likewise.
1728         (early_inliner): Initialize inline_failed.
1729         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
1730
1731 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
1734         from nonimm_ssenomem_operand.
1735         (nonimm_ssenomem_operand): New predicate.
1736         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
1737         as operand 0 predicate.
1738         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
1739         Disable unsupported alternatives using "enabled" attribute.
1740         Use register_ssemem_operand as operand 0 predicate.
1741         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
1742
1743 2016-05-03  Marek Polacek  <polacek@redhat.com>
1744
1745         PR c/70859
1746         * input.c (expansion_point_location): New function.
1747         * input.h (expansion_point_location): Declare.
1748
1749 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
1750
1751         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
1752         occurence with frame_offset_ ones.
1753
1754 2016-05-03  Alan Modra  <amodra@gmail.com>
1755
1756         PR rtl-optimization/70890
1757         * ira.c (combine_and_move_insns): When moving def_insn, remove
1758         equivs on use_insn.
1759
1760 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1761
1762         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
1763         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
1764         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
1765         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
1766
1767 2016-05-03  Alan Modra  <amodra@gmail.com>
1768
1769         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
1770         for SAVE_MULTIPLE/STORE_MULTIPLE.
1771
1772 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
1773
1774         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
1775         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
1776
1777 2016-05-03  Richard Biener  <rguenther@suse.de>
1778
1779         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
1780         default true.
1781         (gimplify_arg): Likewise.
1782         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
1783         re-writing the result to a decl if required.
1784         (internal_get_tmp_var): Add allow_ssa parameter
1785         and override into_ssa with it.
1786         (get_formal_tmp_var): Adjust.
1787         (get_initialized_tmp_var): Add allow_ssa parameter.
1788         (gimplify_arg): Add allow_ssa parameter and avoid generating
1789         SSA names for the result false.
1790         (gimplify_call_expr): If the call may return twice do not
1791         gimplify parameters into SSA.
1792         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
1793         (gimplify_modify_expr): Adjust assert.  For noreturn calls
1794         with a SSA name LHS adjust its def.
1795         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
1796         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
1797         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
1798         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
1799         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
1800         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
1801         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
1802         (optimize_target_teams): Do not allow SSA names for clause operands.
1803         (gimplify_expr): Likewise for where we mark the result addressable.
1804         * passes.def (pass_init_datastructures): Remove.
1805         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
1806         (rewrite_stmt): Likewise.
1807         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
1808         (replace_locals_op): Replace SSA names.
1809         (copy_gimple_seq_and_replace_locals): Init src_cfun.
1810         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
1811         * cgraph.c (release_function_body): Free CFG annotations only
1812         when we have a CFG.  Simplify.
1813         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
1814         force_gimple_operand instead of get_initialized_tmp_var.
1815         * tree-pass.h (make_pass_init_datastructures): Remove.
1816         * tree-ssa.c (execute_init_datastructures): Remove.
1817         (pass_data_init_datastructures): Likewise.
1818         (class pass_init_datastructures): Likewise.
1819         (make_pass_init_datastructures): Likewise.
1820         * omp-low.c (create_omp_child_function): Init SSA data structures.
1821         (grid_expand_target_grid_body): Likewise.
1822         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
1823         name before adding it to names_to_release.
1824         (remove_bb): Always release SSA defs.
1825         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
1826         before dereferencing it.
1827         * cgraphunit.c (init_lowered_empty_function): Always
1828         int SSA data structures.
1829         * tree-ssanames.c (release_defs): Remove assert that we are in
1830         SSA form.
1831         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
1832
1833 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
1834             Uros Bizjak  <ubizjak@gmail.com>
1835
1836         PR rtl-optimization/70467
1837         * config/i386/predicates.md (x86_64_hilo_int_operand,
1838         x86_64_hilo_general_operand): New predicates.
1839         * config/i386/constraints.md (Wd): New constraint.
1840         * config/i386/i386.md (mode attr di): Use Wd instead of e.
1841         (general_hilo_operand): New mode attr.
1842         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
1843         instead of <general_operand>.
1844         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
1845         x86_64_hilo_general_operand instead of <general_operand>.
1846
1847 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
1848
1849         PR tree-optimization/70916
1850         * tree-if-conv.c (constant_or_ssa_name): Removed.
1851         (fold_build_cond_expr): Use is_gimple_val instead of
1852         constant_or_ssa_name.
1853
1854         PR tree-optimization/70916
1855         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
1856         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
1857
1858         PR target/49244
1859         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
1860         (optimize_atomic_bit_test_and): New function.
1861         (pass_fold_builtins::execute): Use it.
1862         * optabs.def (atomic_bit_test_and_set_optab,
1863         atomic_bit_test_and_complement_optab,
1864         atomic_bit_test_and_reset_optab): New optabs.
1865         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
1866         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
1867         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
1868         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
1869         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
1870         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
1871         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
1872         * doc/md.texi (atomic_bit_test_and_set@var{mode},
1873         atomic_bit_test_and_complement@var{mode},
1874         atomic_bit_test_and_reset@var{mode}): Document.
1875         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
1876         atomic_bit_test_and_complement<mode>,
1877         atomic_bit_test_and_reset<mode>): New expanders.
1878         (atomic_bit_test_and_set<mode>_1,
1879         atomic_bit_test_and_complement<mode>_1,
1880         atomic_bit_test_and_reset<mode>_1): New insns.
1881
1882 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
1883
1884         PR rtl-optimization/70687
1885         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
1886         instead of unsigned HOST_WIDE_INT.
1887
1888 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
1889
1890         PR rtl-optimization/44281
1891         * hard-reg-set.h (struct target_hard_regs): New field
1892         x_fixed_nonglobal_reg_set.
1893         (fixed_nonglobal_reg_set): New macro.
1894         * reginfo.c (init_reg_sets_1): Initialize it.
1895         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
1896         of fixed_reg_set.
1897         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
1898
1899 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
1900
1901         PR tree-optimization/56541
1902         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
1903         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
1904         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
1905         (any_complicated_phi): new static variable.
1906         (aggressive_if_conv): delete.
1907         (if_convertible_phi_p): support phis with more than two arguments.
1908         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
1909         critical pred edges.
1910         (ifcvt_split_critical_edges): support phis with more than two
1911         arguments by checking new parameter.  only split critical edges
1912         if needed.
1913         (tree_if_conversion): handle simd pragma marked loop using new
1914         local variable aggressive_if_conv.  check any_complicated_phi.
1915
1916 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
1917
1918         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
1919         before using it.
1920
1921 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
1922
1923         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
1924         cbase.
1925
1926 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
1927
1928         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
1929         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
1930         define_insn_and_split.
1931         (mulsi3_i): New define_insn_and_split.
1932         (mulsi3_call): Convert to define_insn.
1933         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
1934         Remove constraints.
1935
1936 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
1937
1938         * machmode.h (mode_complex): Add support to give the complex mode
1939         for a given mode.
1940         (GET_MODE_COMPLEX_MODE): Likewise.
1941         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
1942         stored by build_complex_type and gfc_build_complex_type instead of
1943         trying to figure out the appropriate mode based on the size. Raise
1944         an assertion error, if the type was not set.
1945         * genmodes.c (struct mode_data): Add field for the complex type of
1946         the given type.
1947         (blank_mode): Likewise.
1948         (make_complex_modes): Remember the complex mode created in the
1949         base type.
1950         (emit_mode_complex): Write out the mode_complex array to map a
1951         type mode to the complex version.
1952         (emit_insn_modes_c): Likewise.
1953         * tree.c (build_complex_type): Set the complex type to use before
1954         calling layout_type.
1955         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
1956         support for __float128 complex datatypes.
1957         (rs6000_hard_regno_mode_ok): Likewise.
1958         (rs6000_setup_reg_addr_masks): Likewise.
1959         (rs6000_complex_function_value): Likewise.
1960         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
1961         __float128 and __ibm128 complex.
1962         (FLOAT128_IBM_P): Likewise.
1963         (ALTIVEC_ARG_MAX_RETURN): Likewise.
1964         * doc/extend.texi (Additional Floating Types): Document that
1965         -mfloat128 must be used to enable __float128.  Document complex
1966         __float128 and __ibm128 support.
1967
1968 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
1969
1970         PR target/49244
1971         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
1972         char/short arguments promoted to int because of promote_prototypes.
1973
1974 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
1975
1976         * config/i386/predicates.md (register_ssemem_operand): New predicate.
1977         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
1978         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
1979         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
1980         alternatives using "enabled" attribute.  Use register_ssemem_operand
1981         as operand 1 predicate.
1982         (*cmpi<unord>xf_i387): Split XFmode pattern from
1983         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
1984         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
1985         *absneg<mode>2_i387.  Disable unsupported alternatives using
1986         "enabled" attribute.
1987         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
1988
1989 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
1990
1991         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
1992         marker.
1993         (oacc_loop_process): Check mask for loop termination.
1994
1995 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
1996
1997         * cif-code.def (CIF_THUNK): Add.
1998         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
1999         accidental change.
2000
2001 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2002
2003         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2004         (dump_inline_summary): Dump it.
2005         (fp_expression_p): New predicate.
2006         (estimate_function_body_sizes): Use it.
2007         (inline_merge_summary): Merge fp_expressions.
2008         (inline_read_section): Read fp_expressions.
2009         (inline_write_summary): Write fp_expressions.
2010         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2011         codegen boundary if either caller or callee is !fp_expressions.
2012         * ipa-inline.h (inline_summary): Add fp_expressions.
2013         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2014         to fp_expressions be sure the fp generation flags are updated.
2015
2016 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2017
2018         PR rtl-optimization/70467
2019         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2020
2021         PR rtl-optimization/70467
2022         * ipa-pure-const.c (check_call): Handle internal calls even in
2023         ipa mode like in local mode.
2024
2025 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2026
2027         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2028
2029 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2030
2031         * match.pd (X u< X, X u> X): New transformations.
2032
2033 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2034
2035         * flag-types.h (enum warn_strict_overflow_code): Move ...
2036         * coretypes.h: ... here.
2037         * fold-const.h (fold_overflow_warning): Declare.
2038         * fold-const.c (fold_overflow_warning): Make non-static.
2039         (fold_comparison): Move the transformation of X +- C1 CMP C2
2040         into X CMP C2 -+ C1 ...
2041         * match.pd: ... here.
2042         * gimple-fold.c (fold_stmt_1): Protect with
2043         fold_defer_overflow_warnings.
2044
2045 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2046
2047         * omp-low.c (struct oacc_loop): Add 'inner' field.
2048         (new_oacc_loop_raw): Initialize it to zero.
2049         (oacc_loop_fixed_partitions): Initialize it.
2050         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2051         available partitioning.
2052
2053 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2054
2055         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2056         register_operand.
2057         (umulsidi3): Likewise.
2058         (indirect_jump): Fix jump instruction assembly patterns.
2059
2060 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2061
2062         PR target/70860
2063         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2064         (nvptx_function_value): Assert non-NULL cfun.
2065
2066 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2067
2068         PR rtl-optimization/70886
2069         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2070
2071         * cselib.h (rtx_equal_for_cselib_1): Declare.
2072         (rtx_equal_for_cselib_p: New inline function.
2073         * cselib.c (rtx_equal_for_cselib_p): Delete.
2074         (rtx_equal_for_cselib_1): Make public.
2075
2076 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2077
2078         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2079         (register_mixssei387nonimm_operand): Remove predicate.
2080         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2081         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2082         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2083         for TARGET_MIX_SSE_I387 alternatives.
2084         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2085         Disable unsupported alternatives using "enabled" attribute.  Use
2086         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2087         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2088
2089 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2090
2091         * tree.c (cst_and_fits_in_hwi): Simplify.
2092
2093 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2094
2095         * tree.h (wi::to_wide): New function.
2096         * expr.c (expand_expr_real_1): Use wi::to_wide.
2097         * fold-const.c (int_const_binop_1): Likewise.
2098         (extract_muldiv_1): Likewise.
2099
2100 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2101
2102         * wide-int.h: Update offset_int and widest_int documentation.
2103         (WI_SIGNED_SHIFT_RESULT): New macro.
2104         (wi::binary_shift): Define signed_shift_result_type for
2105         shifts on offset_int- and widest_int-like types.
2106         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2107         * tree.h (int_bit_position): Use shift operators instead of wi::
2108          shifts.
2109         * alias.c (adjust_offset_for_component_ref): Likewise.
2110         * expr.c (get_inner_reference): Likewise.
2111         * fold-const.c (fold_comparison): Likewise.
2112         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2113         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2114         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2115         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2116         (stmt_kills_ref_p): Likewise.
2117         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2118         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2119         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2120         (ao_ref_init_from_vn_reference): Likewise.
2121
2122 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2123
2124         * wide-int.h: Update offset_int and widest_int documentation.
2125         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2126         (wi::binary_traits): Allow ordered comparisons between offset_int and
2127         offset_int, between widest_int and widest_int, and between either
2128         of these types and basic C types.
2129         (operator <, <=, >, >=): Define for the same combinations.
2130         * tree.h (tree_int_cst_lt): Use comparison operators instead
2131         of wi:: comparisons.
2132         (tree_int_cst_le): Likewise.
2133         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2134         (fold_nonarray_ctor_reference): Likewise.
2135         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2136         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2137         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2138         * tree-sra.c (completely_scalarize): Likewise.
2139         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2140         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2141         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2142         (check_for_binary_op_overflow): Likewise.
2143         (search_for_addr_array): Likewise.
2144         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2145
2146 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2147
2148         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2149         (arc_save_restore): Likewise.
2150         (arc_dwarf_register_span): Likewise.
2151         (arc_output_pic_addr_const): Initialize suffix variable.
2152
2153 2016-05-02  Martin Liska  <mliska@suse.cz>
2154
2155         * symbol-summary.h (function_summary::function_summary):
2156         Remove checking assert for all cgraph nodes.
2157         (function_summary::get): Check summary_uid.
2158         (symtab_insertion): Check summary_uid.
2159
2160 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2161
2162         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2163         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2164         bmaskn instruction.
2165         (arc_dwarf_register_span): Remove enum keyword.
2166         (compact_memory_operand_p): New function.
2167         * config/arc/arc.h (reg_class): Add code density register classes.
2168         (REG_CLASS_NAMES): Likewise.
2169         (REG_CLASS_CONTENTS): Likewise.
2170         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2171         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2172         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2173         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2174         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2175         constraints.
2176         (h, Rcd, Rsd, Rzd): New register constraints.
2177         (T): Use compact_memory_operand_p function.
2178         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2179
2180 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2181
2182         * config/sh/sh.md (*negnegt, *movtt): Remove.
2183
2184 2016-05-02  Marek Polacek  <polacek@redhat.com>
2185             Tom de Vries  <tom@codesourcery.com>
2186
2187         PR tree-optimization/70700
2188         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2189         bigger than FIRST_REF_NODE.
2190
2191 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2192
2193         PR target/52898
2194         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2195         TARGET_CMPEQDI_T.
2196         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2197         function is used when pseudos can be created.
2198         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2199         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2200         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2201         define_expand.  Allow it only when pseudos can be created.
2202         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2203
2204 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2205
2206         * config/i386/constraints.md (BC): Only allow -1 operands.
2207         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2208         Add "enabled" attribute.  Update XI mode attribute calculation.
2209         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2210         (*movoi_internal_avx): Update XI mode attribute calculation.
2211         (*movti_internal): Ditto.
2212
2213 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2214
2215         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2216         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2217
2218 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2219
2220         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2221         statement on instruction code.  Remove trailing spaces.
2222         (altivec_expand_stv_builtin): Likewise.
2223
2224 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2225
2226         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2227         (TARGET_FPU_DOUBLE): Simplify.
2228         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2229         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2230         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2231         with 'TARGET_FPU_DOUBLE'.
2232         * config/sh/sh.md: Likewise.
2233
2234 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2235
2236         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2237         SH_DIV_STR_FOR_SIZE): Remove.
2238         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2239         SH_DIV_STR_FOR_SIZE): Remove.
2240
2241 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2242
2243         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2244         logical_reg_operand): Delete.
2245         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2246         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2247         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2248         match_operand and match_test.
2249         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2250         variables on their first use.  Return bool values.
2251         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2252         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2253         arith_reg_operand for input operand.  Remove empty constraints.
2254         (xorsi3): Delete.
2255         (*xorsi3_compact): Rename to xorsi3.
2256         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2257         (*zero_extend<mode>si2_disp_mem): Update comment.
2258         (mov_nop): Delete.
2259
2260 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2261
2262         * config/sh/t-sh: Remove SH5 support.
2263         * config.gcc: Likewise.
2264         * configure: Likewise.
2265
2266 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2267
2268         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2269
2270 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2271
2272         * config/sh/sh.c (register_sh_passes, sh_option_override,
2273         sh_print_operand, prepare_move_operands,
2274         sh_can_follow_jump): Remove TARGET_SH1 checks.
2275         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2276         PROMOTE_MODE): Likewise.
2277         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2278         movdi): Likewise.
2279
2280 2016-04-30  Alan Modra  <amodra@gmail.com>
2281
2282         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2283         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2284         Check for user regs later to avoid unnecessary looping over regs.
2285         Merge user reg check with non-saved reg check.  Don't force
2286         inline VR restore when static chain used.
2287         (rs6000_frame_related): Omit eh_frame info for user regs when
2288         saving.
2289         (fixed_regs_p): Delete.
2290
2291 2016-04-30  Alan Modra  <amodra@gmail.com>
2292
2293         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2294         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2295         Update all uses.
2296
2297 2016-04-30  Alan Modra  <amodra@gmail.com>
2298
2299         PR target/69645
2300         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2301         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2302         Update all uses.
2303
2304 2016-04-30  Alan Modra  <amodra@gmail.com>
2305
2306         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2307         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2308         flag_pic test for Darwin.
2309
2310 2016-04-30  Alan Modra  <amodra@gmail.com>
2311
2312         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2313         throw_calls_crossed.
2314         (REG_FREQ_CALLS_CROSSED): Delete.
2315         (REG_N_THROWING_CALLS_CROSSED): Delete.
2316         * regstat.c (regstat_bb_compute_ri): Don't calculate
2317         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2318         (dump_reg_info): Don't print call cross frequency.
2319         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2320         and REG_N_THROWING_CALLS_CROSSED.
2321
2322 2016-04-30  Alan Modra  <amodra@gmail.com>
2323
2324         * regs.h (struct reg_info_t): Delete live_length.
2325         (REG_LIVE_LENGTH): Delete macro.
2326         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2327         local_live, local_processed and local_live_last_luid params.
2328         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2329         Formatting fixes.
2330         (regstat_compute_ri): Adjust for above.  Don't set
2331         REG_LIVE_LENGTH.
2332         (dump_reg_info): Don't print live length.
2333         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2334         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2335         Localize loop_depth var.
2336
2337 2016-04-30  Alan Modra  <amodra@gmail.com>
2338
2339         * ira.c (enum valid_equiv): New.
2340         (validate_equiv_mem): Return enum.
2341         (update_equiv_mem): Create replacement in more cases.
2342         (add_store_equivs): Update validate_equiv_mem call.
2343
2344 2016-04-30  Alan Modra  <amodra@gmail.com>
2345
2346         * ira.c (combine_and_move_insns): Rather than scanning insns,
2347         use DF infrastucture to find use and def insns.
2348
2349 2016-04-30  Alan Modra  <amodra@gmail.com>
2350
2351         ira.c (combine_and_move_insns): Move invariant conditions..
2352         (ira.c): ..to here.  Call combine_and_move_insns before
2353         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2354         req_equiv later using max_reg_num() rather than global max_regno.
2355         (contains_replace_regs): Delete.
2356         (add_store_equivs): Remove contains_replace_regs test.
2357
2358 2016-04-30  Alan Modra  <amodra@gmail.com>
2359
2360         * ira.c (struct equiv_mem_data): New.
2361         (equiv_mem, equiv_mem_modified): Delete static vars.
2362         (validate_equiv_mem_from_store): Use "data" param to communicate..
2363         (validate_equiv_mem): ..from here.
2364
2365 2016-04-30  Alan Modra  <amodra@gmail.com>
2366
2367         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2368         split out from..
2369         (update_reg_equivs): ..here.  Move allocation and freeing of
2370         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2371         end_alias_analysis to..
2372         (ira): ..here.
2373
2374 2016-04-30  Alan Modra  <amodra@gmail.com>
2375
2376         * ira.c (pdx_subregs): Delete.
2377         (struct equivalence): Add pdx_subregs field.
2378         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2379         pdx_subregs access.
2380         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2381         pdx_subregs access.
2382
2383 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2384
2385         * config/rs6000/altivec.h: Change definitions of vec_xl and
2386         vec_xst.
2387         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2388         (LD_ELEMREV_V2DI): New.
2389         (LD_ELEMREV_V4SF): New.
2390         (LD_ELEMREV_V4SI): New.
2391         (LD_ELEMREV_V8HI): New.
2392         (LD_ELEMREV_V16QI): New.
2393         (ST_ELEMREV_V2DF): New.
2394         (ST_ELEMREV_V2DI): New.
2395         (ST_ELEMREV_V4SF): New.
2396         (ST_ELEMREV_V4SI): New.
2397         (ST_ELEMREV_V8HI): New.
2398         (ST_ELEMREV_V16QI): New.
2399         (XL): New.
2400         (XST): New.
2401         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2402         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2403         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2404         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2405         (altivec_expand_builtin): Add handling for
2406         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2407         (rs6000_invalid_builtin): Add error-checking for
2408         RS6000_BTM_P9_VECTOR.
2409         (altivec_init_builtins): Define builtins used to implement vec_xl
2410         and vec_xst.
2411         (rs6000_builtin_mask_names): Define power9-vector.
2412         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2413         (RS6000_BTM_P9_VECTOR): Define.
2414         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2415         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2416         (vsx_ld_elemrev_v2df): Likewise.
2417         (vsx_ld_elemrev_v4sf): Likewise.
2418         (vsx_ld_elemrev_v4si): Likewise.
2419         (vsx_ld_elemrev_v8hi): Likewise.
2420         (vsx_ld_elemrev_v16qi): Likewise.
2421         (vsx_st_elemrev_v2df): Likewise.
2422         (vsx_st_elemrev_v2di): Likewise.
2423         (vsx_st_elemrev_v4sf): Likewise.
2424         (vsx_st_elemrev_v4si): Likewise.
2425         (vsx_st_elemrev_v8hi): Likewise.
2426         (vsx_st_elemrev_v16qi): Likewise.
2427         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2428         grammar.
2429
2430 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2431
2432         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2433         out into ...
2434         (simplify_control_stmt_condition_1): ... here.  Recurse into
2435         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2436
2437 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2438
2439         PR target/69810
2440         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2441         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2442         define_insn_and_split to define_insn.
2443         (zero_extendqi<mode>2_dot2): Same.
2444         (extendqi<mode>2_dot): Same.
2445         (extendqi<mode>2_dot2): Same.
2446
2447 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2448
2449         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2450         (probe_stack): New expander.
2451         (probe_stack_<mode>): New insn pattern.
2452
2453 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2454
2455         * config/i386/i386.md
2456         (operations with memory inputs setting flags peephole2):
2457         Remove uneeded REG_P checks.  Cleanup pattern generation.
2458
2459 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2460
2461         * tree-vect-loop.c (vect_transform_loop): Fix
2462         nb_iterations_upper_bound computation for vectorized loop.
2463
2464 2016-04-29  Marek Polacek  <polacek@redhat.com>
2465             Jakub Jelinek  <jakub@redhat.com>
2466
2467         PR sanitizer/70342
2468         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2469         TARGET_EXPR_SLOT as a base.
2470
2471 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2472
2473         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2474         with 'rCm2' constraints to limit possible immediate size.
2475         (*load_zeroextendqisi_update): Likewise.
2476         (*load_signextendqisi_update): Likewise.
2477         (*loadhi_update): Likewise.
2478         (*load_zeroextendhisi_update): Likewise.
2479         (*load_signextendhisi_update): Likewise.
2480         (*loadsi_update): Likewise.
2481         (*loadsf_update): Likewise.
2482
2483 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2484
2485         * config/i386/predicates.md (constm1_operand): Fix comparison.
2486
2487 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2488
2489         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2490
2491 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2492
2493         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2494         remaining SH5 related settings.
2495         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2496         shmedia_prepare_call_address): Delete.
2497         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2498         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2499         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2500         UNSUPPORTED_SH2A): Remove m5 checks.
2501         (sh_divide_strategy_e): Remove SH5 division strategies.
2502         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2503         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2504
2505 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2506
2507         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2508
2509 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2510
2511         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2512         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2513         Change lder to ldr.
2514         * config/s390/vector.md ("mov<mode>"): Likewise.
2515
2516 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2517
2518         * config/s390/constraints.md ("U", "W"): Invoke
2519         s390_mem_constraint with "ZR" and "ZT".
2520         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2521         addresses when using LRA.  Accept also short displacements for S
2522         and T constraints.  Do not check for long displacement target for
2523         S and T constraints.
2524         (s390_mem_constraint): Remove handling of U and W constraints.
2525         * config/s390/s390.md (various patterns): Remove the short
2526         displacement constraints (Q and R) if a long displacement
2527         constraint is present.  Add longdisp as required CPU capability.
2528         * config/s390/vector.md: Likewise.
2529         * config/s390/vx-builtins.md: Likewise.
2530
2531 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2532
2533         PR target/60040
2534         * reload1.c (reload): Call finish_spills before
2535         restarting reload loop. Skip select_reload_regs
2536         if update_eliminables_and_spill returns true.
2537
2538 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2539
2540         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2541         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2542         (umulhisi3_imm): Update predicates and constraint letters.
2543         (umulhisi3_reg): Declare instruction as commutative.
2544         * config/arc/constraints.md (J12, J16): New constraints.
2545         * config/arc/predicates.md (short_unsigned_const_operand): New
2546         predicate.
2547         (arc_short_operand): Likewise.
2548         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2549
2550 2016-04-29  Richard Biener  <rguenther@suse.de>
2551
2552         PR tree-optimization/13962
2553         PR tree-optimization/65686
2554         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
2555         * tree-ssa-alias.c (ptrs_compare_unequal): New function
2556         using PTA to compare pointers.
2557         * match.pd: Add pattern for pointer equality compare simplification
2558         using ptrs_compare_unequal.
2559
2560 2016-04-29  Richard Biener  <rguenther@suse.de>
2561
2562         * stor-layout.c (layout_type): Do not build a pointer-to-element
2563         type for arrays.
2564
2565 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2566
2567         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
2568         Use SWI mode iterator.  Use general_reg_operand predicate.
2569         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
2570         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
2571         predicates.
2572
2573 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
2574
2575         PR middle-end/70843
2576         * fold-const.c (operand_equal_p): Don't verify hash value equality
2577         if arg0 == arg1.
2578         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
2579         and OMP_CLAUSE.
2580
2581 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2582
2583         PR target/70858
2584         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
2585         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
2586         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
2587         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
2588         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
2589
2590 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2591
2592         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
2593         to info.  Don't initialize separate fields to 0.  Clean up
2594         formatting a bit.
2595
2596 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2597
2598         * config/i386/i386.md (peephole2s for operations with memory inputs):
2599         Use SWI mode iterator.
2600         (peephole2s for operations with memory outputs): Ditto.
2601         Do not check for stack checking probe.
2602
2603         (probe_stack): Remove expander.
2604
2605 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2606             Andrew Burgess  <andrew.burgess@embecosm.com>
2607
2608         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
2609         operands as 32-bits.
2610
2611 2016-04-28  Jason Merrill  <jason@redhat.com>
2612
2613         * gdbinit.in: Skip line-map.h.
2614
2615 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2616             Andrew Burgess  <andrew.burgess@embecosm.com>
2617
2618         * config/arc/arc.c (arc_conditional_register_usage): Take
2619         TARGET_RRQ_CLASS into account.
2620         (arc_print_operand): Support printing 'p' and 's' operands.
2621         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
2622         as 0.
2623         (TARGET_RRQ_CLASS): Define.
2624         (IS_POWEROF2_OR_0_P): Define.
2625         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
2626         alternatives.
2627         (*tst_movb): New define_insn.
2628         (*tst): Avoid recognition if it could prevent '*tst_movb'
2629         combination; replace c/CnL with c/Chs alternative.
2630         (*tst_bitfield_tst): New define_insn.
2631         (*tst_bitfield_asr): New define_insn.
2632         (*tst_bitfield): New define_insn.
2633         (andsi3_i): Add Rrq variant.
2634         (extzv): New define_expand.
2635         (insv): New define_expand.
2636         (*insv_i): New define_insn.
2637         (*movb): New define_insn.
2638         (*movb_signed): New define_insn.
2639         (*movb_high): New define_insn.
2640         (*movb_high_signed): New define_insn.
2641         (*movb_high_signed + 1): New define_split pattern.
2642         (*mrgb): New define_insn.
2643         (*mrgb + 1): New define_peephole2 pattern.
2644         (*mrgb + 2): New define_peephole2 pattern.
2645         * config/arc/arc.opt (mbitops): New option for nps400, uses
2646         TARGET_NPS_BITOPS_DEFAULT.
2647         * config/arc/constraints.md (q): Make register class conditional.
2648         (Rrq): New register constraint.
2649         (Chs): New constraint.
2650         (Clo): New constraint.
2651         (Chi): New constraint.
2652         (Cbf): New constraint.
2653         (Cbn): New constraint.
2654         (C18): New constraint.
2655         (Cbi): New constraint.
2656
2657 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2658
2659         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
2660         dst->popcount.
2661         (bitmap_intersection_of_preds): Ditto.
2662         (bitmap_union_of_succs): Ditto.
2663         (bitmap_union_of_preds): Ditto.
2664         * sbitmap.c (do_popcount): Delete.
2665         (BITMAP_DEBUGGING): Delete.
2666         (sbitmap_verify_popcount): Delete.
2667         (sbitmap_alloc): Don't initialize the popcount field.
2668         (sbitmap_alloc_with_popcount): Delete.
2669         (sbitmap_resize): Don't resize the popcount array.
2670         (sbitmap_vector_alloc): Don't initialize the popcount field.
2671         (bitmap_copy): Don't copy the popcount array.
2672         (bitmap_clear): Don't clear the popcount array.
2673         (bitmap_clear): Delete the popcount array handling.
2674         (bitmap_ior_and_compl): Delete the popcount assert.
2675         (bitmap_not): Ditto.
2676         (bitmap_and_compl): Ditto.
2677         (bitmap_and): Delete the popcount array handling.
2678         (bitmap_xor): Ditto.
2679         (bitmap_ior): Ditto.
2680         (bitmap_or_and): Delete the popcount assert.
2681         (bitmap_and_or): Ditto.
2682         (popcount_table): Delete.
2683         (sbitmap_elt_popcount): Delete.
2684         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
2685         (bitmap_set_bit): Delete the popcount assert.
2686         (bitmap_clear_bit): Ditto.
2687         (sbitmap_free): Don't free the popcount array.
2688         (sbitmap_alloc_with_popcount): Delete declaration.
2689         (sbitmap_popcount): Ditto.
2690
2691 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2692             Andrew Burgess  <andrew.burgess@embecosm.com>
2693
2694         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
2695         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
2696         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
2697         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
2698         * config/arc/arc.opt (mcmem): New option.
2699         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
2700         supply length for r/m alternative.
2701         (*extendqisi2_ac): Likewise.
2702         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
2703         r/Uex alternative.
2704         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
2705         (movhi_insn): Likewise.
2706         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
2707         (*zero_extendqihi2_i): Add r/Ucm alternative.
2708         (*zero_extendqisi2_ac): Likewise.
2709         (*zero_extendhisi2_i): Likewise.
2710         * config/arc/constraints.md (Uex): New memory constraint.
2711         (Ucm): New define_constraint.
2712         * config/arc/predicates.md (long_immediate_loadstore_operand):
2713         Return 0 for MEM with cmem_address address.
2714         (cmem_address_0): New predicates.
2715         (cmem_address_1): Likewise.
2716         (cmem_address_2): Likewise.
2717         (cmem_address): Likewise.
2718
2719 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2720
2721         * config/rs6000/rs6000.c (machine_function): Rename
2722         insn_chain_scanned_p to spe_insn_chain_scanned_p.
2723         (rs6000_stack_info): Adjust.
2724
2725 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2726             Andrew Burgess  <andrew.burgess@embecosm.com>
2727
2728         * config/arc/constraints.md (Usd): Convert to define_constraint.
2729         (Us<): Likewise.
2730         (Us>): Likewise.
2731
2732 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2733
2734         PR target/70821
2735         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
2736         Add new peephole2 where the first insn is *mov<mode>_or instead of
2737         *mov<mode>_internal.
2738
2739 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
2740
2741         * tracer.c (bb_seen): Make static.
2742
2743 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
2744
2745         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
2746         support, setup defaults.
2747         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
2748         * config/arc/arc.c (arc_init): Add NPS400 support.
2749         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
2750         (TARGET_ARC700): NPS400 is also an ARC700.
2751         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
2752
2753 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2754
2755         PR target/70668
2756         * config/nds32/nds32.md (casesi): Don't access the operands array
2757         out of bounds.
2758
2759 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2760
2761         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
2762         (or $-1,reg peephole2): Ditto.
2763         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
2764
2765 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
2766
2767         * doc/extend.texi (Common Function Attributes) [optimize]:
2768         Discourage use of the optimize attribute.
2769
2770 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
2771
2772         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
2773         special case builtin.
2774         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
2775         ALTIVEC_BUILTIN_VEC_ADDE.
2776         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2777         support for ALTIVEC_BUILTIN_VEC_ADDE.
2778         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2779         for __builtin_vec_adde.
2780
2781 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2782
2783         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
2784         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
2785
2786 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2787
2788         PR testsuite/70595
2789         * doc/sourcebuild.texi (Effective-Target Keywords, Other
2790         attributes): Document cilkplus_runtime.
2791
2792 2016-04-28  Martin Jambor  <mjambor@suse.cz>
2793
2794         * tree-cfg.c (verify_expr): Verify that local declarations belong to
2795         this function.  Call verify_expr on MEM_REFs and bases of other
2796         handled_components.
2797
2798 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2799
2800         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
2801         for WORD_REGISTER_OPERATIONS to runtime check.
2802
2803 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
2804
2805         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
2806
2807 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
2808
2809         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
2810         big-endian compilation.
2811         * config/arc/arc.md (addf3): Likewise.
2812         (subdf3): Likewise.
2813         (muldf3): Likewise.
2814
2815 2016-04-28  Richard Biener  <rguenther@suse.de>
2816
2817         PR tree-optimization/70840
2818         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
2819         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
2820         Mark x * pow(x,c) -> pow(x,c+1) commutative.
2821         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
2822
2823 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2824
2825         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
2826         and explain why in a comment.
2827
2828 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
2829
2830         * config/arc/arc.md (cpu_facility): Add fpx variant.
2831         (subdf3): Prohibit use reverse sub when assist operations option
2832         is enabled.
2833         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
2834         instructions only when FPX is enabled.
2835         * testsuite/gcc.target/arc/trsub.c: New test.
2836
2837 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2838
2839         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
2840         mult_operator when calculating "type" attribute.
2841         (*fop_<mode>_1_i387): Ditto.
2842         (*fop_xf_1_i387): Ditto.
2843         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
2844         Use std::swap to swap operands.  Use RTL expressions to generate
2845         converted pattern.
2846
2847 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
2848             Joern Rennecke  <joern.rennecke@embecosm.com>
2849
2850         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
2851         declaration.
2852         (emit_pic_move): Remove.
2853         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
2854         * config/arc/arc.c (emit_pic_move): Removed.
2855         (TARGET_HAVE_TLS): Define.
2856         (arc_conditional_register_usage): Test for arc_tp_regno.
2857         (arc_print_operand, arc_print_operand_address): Handle TLS
2858         unspecs.
2859         (arc_needs_pcl_p): New function.
2860         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
2861         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
2862         (arc_raw_symbolic_reference_mentioned_p): Likewise.
2863         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
2864         (arc_legitimize_tls_address): Likewise.
2865         (DTPOFF_ZERO_SYM): Define.
2866         (arc_legitimize_pic_address): Make it static, handle TLS cases.
2867         (arc_output_pic_addr_const): Print TLS unspecs.
2868         (prepare_pic_move): New function, replaces emit_pic_move.
2869         (arc_legitimate_constant_p): Handle TLS unspecs.
2870         (arc_legitimate_address_p): Likewise.
2871         (arc_rewrite_small_data_p): Use assert for TLS constants.
2872         (prepare_move_operands): Use prepare_pic_move.
2873         (arc_legitimize_address): Legitimize tls addresses.
2874         (arc_epilogue_uses): Check for arc_tp_regno.
2875         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
2876         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
2877         Define.
2878         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
2879         Likewise.
2880         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
2881         %(arc_tls_extra_start_spec).
2882         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
2883         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
2884         (EH_USES): Define.
2885         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
2886         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
2887         (UNSPEC_TLS_OFF): Add.
2888         (R10_REG): Define.
2889         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
2890         (get_thread_pointersi): New patterns.
2891         * config/arc/arc.opt (mtp-regno): New option.
2892         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
2893         (move_dest_operand): Likewise.
2894         * configure: Regenerate.
2895         * configure.ac: Add arc*-*-* case to test for tls.
2896         * doc/invoke.texi (ARC options): Document mtp-regno.
2897
2898 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
2899
2900         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
2901         the new ARC HS SIMD instructions.
2902         (arc_preferred_simd_mode): New function.
2903         (arc_autovectorize_vector_sizes): Likewise.
2904         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
2905         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
2906         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
2907         (arc_init_builtins): Add new SIMD builtin types.
2908         (arc_split_move): Handle 64 bit vector moves.
2909         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
2910         (TARGET_PLUS_QMACW): Define.
2911         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
2912         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
2913         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
2914         (VSUBADD4H): New builtins.
2915         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
2916         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
2917
2918 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
2919             Matthias Klose  <doko@debian.org>
2920
2921         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
2922
2923 2016-04-28  Richard Biener  <rguenther@suse.de>
2924
2925         PR middle-end/70777
2926         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
2927         canonicalization.
2928
2929 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
2930
2931         * common/config/sh/sh-common.c: Remove SH5 support.
2932         * config/sh/constraints.md: Likewise.
2933         * config/sh/config/sh/elf.h: Likewise.
2934         * config/sh/linux.h: Likewise.
2935         * config/sh/netbsd-elf.h: Likewise.
2936         * config/sh/predicates.md: Likewise.
2937         * config/sh/sh-c.c: Likewise.
2938         * config/sh/sh-protos.h: Likewise.
2939         * config/sh/sh.c: Likewise.
2940         * config/sh/sh.h: Likewise.
2941         * config/sh/sh.md: Likewise.
2942         * config/sh/sh.opt: Likewise.
2943         * config/sh/sync.md: Likewise.
2944         * config/sh/sh64.h: Delete.
2945         * config/sh/shmedia.h: Likewise.
2946         * config/sh/shmedia.md: Likewise.
2947         * config/sh/sshmedia.h: Likewise.
2948         * config/sh/t-netbsd-sh5-64: Likewise.
2949         * config/sh/t-sh64: Likewise.
2950         * config/sh/ushmedia.h: Likewise.
2951
2952 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2953
2954         * config/i386/i386.md (sign_extend to memory peephole2s): Use
2955         general_reg_operand instead of register_operand predicate.
2956
2957 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2958
2959         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
2960
2961 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
2962
2963         * match.pd (A - B > A, A + B < A): New transformations.
2964
2965 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
2966
2967         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
2968         which defaults to true.  Emit an outer pair of parentheses only if
2969         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
2970         don't emit parentheses for the right-hand operand.
2971
2972 2016-04-27  Jeff Law  <law@redhat.com>
2973
2974         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
2975
2976 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2977
2978         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
2979         (altivec_lvx_<mode>_internal): Document.
2980         (altivec_lvx_<mode>_2op): New define_insn.
2981         (altivec_lvx_<mode>_1op): Likewise.
2982         (altivec_lvx_<mode>_2op_si): Likewise.
2983         (altivec_lvx_<mode>_1op_si): Likewise.
2984         (altivec_stvx_<mode>): Remove.
2985         (altivec_stvx_<mode>_internal): Document.
2986         (altivec_stvx_<mode>_2op): New define_insn.
2987         (altivec_stvx_<mode>_1op): Likewise.
2988         (altivec_stvx_<mode>_2op_si): Likewise.
2989         (altivec_stvx_<mode>_1op_si): Likewise.
2990         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2991         Expand vec_ld and vec_st during parsing.
2992         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
2993         changes.
2994         (altivec_expand_stvx_be): Likewise.
2995         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
2996         address-masking behavior in RTL.
2997         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
2998         address-masking behavior in RTL.
2999         (altivec_expand_builtin): Change builtin code arguments for calls
3000         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3001         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3002         presence of lvx/stvx patterns.
3003         (alignment_with_canonical_addr): New function.
3004         (alignment_mask): Likewise.
3005         (find_alignment_op): Likewise.
3006         (recombine_lvx_pattern): Likewise.
3007         (recombine_stvx_pattern): Likewise.
3008         (recombine_lvx_stvx_patterns): Likewise.
3009         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3010         stvx patterns from expand.
3011         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3012         expansions.
3013         (vector_altivec_store_<mode>): Likewise.
3014
3015 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3016
3017         * config/aarch64/aarch64.md
3018         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3019         remove the "fp" attributes.
3020         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3021         add the "simd" attributes.
3022         (*movdf_aarch64): Likewise.
3023         (*movtf_aarch64): Remove the "fp" attributes.
3024         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3025         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3026
3027 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3028
3029         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3030         rtx to rtx_code_label *.
3031         * rtl.h (maybe_set_first_label_num): Likewise.
3032
3033 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3034
3035         * df-core.c (df_add_problem): Make the problem param be const.
3036         (df_remove_problem): Make local "problem" be const.
3037         * df-problems.c (problem_RD): Make const.
3038         (problem_LR): Likewise.
3039         (problem_LIVE): Likewise.
3040         (problem_MIR): Likewise.
3041         (problem_CHAIN): Likewise.
3042         (problem_WORD_LR): Likewise.
3043         (problem_NOTE): Likewise.
3044         (problem_MD): Likewise.
3045         * df-scan.c (problem_SCAN): Likewise.
3046         * df.h (struct df_problem): Make field "dependent_problem" be
3047         const.
3048         (struct dataflow): Likewise for field "problem".
3049         (df_add_problem): Make param const.
3050
3051 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3052
3053         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3054         inter-unit moves to/from vector registers are enabled.  Do not disable
3055         for TARGET_MMX.
3056
3057 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3058
3059         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3060         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3061         #define to...
3062         (enum df_problem_id): ...this new enum.
3063         (struct df_problem): Convert field "id" from "int" to
3064         enum df_problem_id.
3065
3066 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3067
3068         * rtl.def: Update comment for "things in the instruction chain" to
3069         reflect the removal of the leading "i" field for INSN_UID in
3070         r210360.  Fix bogus apostrophe.
3071
3072 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3073
3074         * config/i386/i386.md
3075         (lea arith with mem operand + setcc peephole2): Set operator mode.
3076
3077 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3078
3079         PR target/70155
3080         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3081         (dimode_scalar_to_vector_candidate_p): This.
3082         (timode_scalar_to_vector_candidate_p): New function.
3083         (scalar_to_vector_candidate_p): Likewise.
3084         (timode_check_non_convertible_regs): Likewise.
3085         (timode_remove_non_convertible_regs): Likewise.
3086         (remove_non_convertible_regs): Likewise.
3087         (remove_non_convertible_regs): Renamed to ...
3088         (dimode_remove_non_convertible_regs): This.
3089         (scalar_chain::~scalar_chain): Make it virtual.
3090         (scalar_chain::compute_convert_gain): Make it pure virtual.
3091         (scalar_chain::mark_dual_mode_def): Likewise.
3092         (scalar_chain::convert_insn): Likewise.
3093         (scalar_chain::convert_registers): Likewise.
3094         (scalar_chain::add_to_queue): Make it protected.
3095         (scalar_chain::emit_conversion_insns): Likewise.
3096         (scalar_chain::replace_with_subreg): Likewise.
3097         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3098         (scalar_chain::convert_op): Likewise.
3099         (scalar_chain::convert_reg): Likewise.
3100         (scalar_chain::make_vector_copies): Likewise.
3101         (scalar_chain::convert_registers): New pure virtual function.
3102         (class dimode_scalar_chain): New class.
3103         (class timode_scalar_chain): Likewise.
3104         (scalar_chain::mark_dual_mode_def): Renamed to ...
3105         (dimode_scalar_chain::mark_dual_mode_def): This.
3106         (timode_scalar_chain::mark_dual_mode_def): New function.
3107         (timode_scalar_chain::convert_insn): Likewise.
3108         (dimode_scalar_chain::convert_registers): Likewise.
3109         (scalar_chain::compute_convert_gain): Renamed to ...
3110         (dimode_scalar_chain::compute_convert_gain): This.
3111         (scalar_chain::replace_with_subreg): Renamed to ...
3112         (dimode_scalar_chain::replace_with_subreg): This.
3113         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3114         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3115         (scalar_chain::make_vector_copies): Renamed to ...
3116         (dimode_scalar_chain::make_vector_copies): This.
3117         (scalar_chain::convert_reg): Renamed to ...
3118         (dimode_scalar_chain::convert_reg ): This.
3119         (scalar_chain::convert_op): Renamed to ...
3120         (dimode_scalar_chain::convert_op): This.
3121         (scalar_chain::convert_insn): Renamed to ...
3122         (dimode_scalar_chain::convert_insn): This.
3123         (scalar_chain::convert): Call convert_registers.
3124         (convert_scalars_to_vector): Change to scalar_chain pointer to
3125         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3126         in 32-bit mode.  Delete scalar_chain pointer.  Call
3127         free_dominance_info in 64-bit mode.
3128         (pass_stv::gate): Remove TARGET_64BIT check.
3129         (ix86_option_override): Put the 64-bit STV pass before the CSE
3130         pass.
3131
3132 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3133
3134         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3135         dw_loc_frame_offset field.
3136         * dwarf2out.c (new_loc_descr): Likewise.
3137         (resolve_args_picking_1): Turn the VISITED hash set into a
3138         FRAME_OFFSET hash map. Use it to associate a frame offset to
3139         visited nodes. Remove uses of the CHECKING_P macro.
3140         (resolve_args_picking): Update call to resolve_args_picking_1.
3141
3142 2016-04-27  Martin Liska  <mliska@suse.cz>
3143
3144         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3145         (free_loop_data): Release vuses of groups.
3146
3147 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3148
3149         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3150         instead of redundant use_id and boolean have_use_for.
3151         (struct iv_use): Change sub_id into group_id.  Remove field next.
3152         Move fields: related_cands, n_map_members, cost_map and selected
3153         to ...
3154         (struct iv_group): ... here.  New structure.
3155         (struct iv_common_cand): Use structure declaration directly.
3156         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3157         (MAX_CONSIDERED_USES): Rename macro to ...
3158         (MAX_CONSIDERED_GROUPS): ... here.
3159         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3160         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3161         (dump_uses): Rename to ...
3162         (dump_groups): ... here.  Update all uses.
3163         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3164         (find_induction_variables): Refactor format of dump information.
3165         (record_sub_use): Delete.
3166         (record_use): Update all uses.
3167         (record_group): New function.
3168         (record_group_use, find_interesting_uses_op): Call above functions.
3169         Update all uses.
3170         (find_interesting_uses_cond): Ditto.
3171         (group_compare_offset): New function.
3172         (split_all_small_groups): Rename to ...
3173         (split_small_address_groups_p): ... here.  Update all uses.
3174         (split_address_groups):  Update all uses.
3175         (find_interesting_uses): Refactor format of dump information.
3176         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3177         base and step.
3178         (add_candidate, record_common_cand): Remove redundant assert.
3179         (add_iv_candidate_for_biv): Update use.
3180         (add_iv_candidate_derived_from_uses): Update all uses.
3181         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3182         (alloc_use_cost_map): Ditto.
3183         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3184         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3185         (determine_use_iv_cost_generic): Ditto.
3186         (determine_group_iv_cost_generic): Ditto.
3187         (determine_use_iv_cost_address): Ditto.
3188         (determine_group_iv_cost_address): Ditto.
3189         (determine_use_iv_cost_condition): Ditto.
3190         (determine_group_iv_cost_cond): Ditto.
3191         (determine_use_iv_cost): Ditto.
3192         (determine_group_iv_cost): Ditto.
3193         (set_autoinc_for_original_candidates): Update all uses.
3194         (find_iv_candidates): Update all uses.  Refactor dump information.
3195         (determine_use_iv_costs): Ditto.
3196         (determine_iv_costs): Ditto.
3197         (iv_ca_cand_for_use): Rename to ...
3198         (iv_ca_cand_for_group): ... here.  Update all uses.
3199         (iv_ca_add_use, iv_ca_add_group): Ditto.
3200         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3201         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3202         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3203         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3204         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3205         (create_new_iv, adjust_iv_update_pos): Ditto.
3206         (rewrite_use_address): Delete.
3207         (rewrite_use_address_1): Rename to ...
3208         (rewrite_use_address): ... here.
3209         (rewrite_use_compare): Update all uses.
3210         (rewrite_use): Delete.
3211         (rewrite_uses): Rename to ...
3212         (rewrite_groups): ... here.  Update all uses.
3213         (remove_unused_ivs, free_loop_data): Update all uses.
3214         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3215
3216 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3217
3218         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3219         for WORD_REGISTER_OPERATIONS to runtime check.
3220
3221 2016-04-27  Richard Biener  <rguenther@suse.de>
3222
3223         PR ipa/70760
3224         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3225         aggregate_value_p to determine if a function result is
3226         returned by reference.
3227         (ipa_pta_execute): Functions having their address taken are
3228         not automatically nonlocal.
3229
3230 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3231
3232         PR sanitizer/70683
3233         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3234         * fold-const.c (operand_equal_p): If flag_checking and
3235         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3236         and if it returns non-zero, assert iterative_hash_expr on both
3237         args is the same.
3238
3239 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3240
3241         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3242
3243 2016-04-27  Nick Clifton  <nickc@redhat.com>
3244
3245         PR middle-end/49889
3246         * varasm.c (merge_weak): Generate an error if an attempt is made
3247         to convert a non-weak static function into a weak, public function.
3248
3249 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3250
3251         * params.def (MAX_PARTITION_SIZE): New param.
3252         * doc/invoke.texi: Document lto-max-partition.
3253
3254 2016-04-27  Richard Biener  <rguenther@suse.de>
3255
3256         PR ipa/70785
3257         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3258         function cummulating used_from_other_partition, externally_visible
3259         and force_output from aliases.
3260         (refered_from_nonlocal_var): Likewise.
3261         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3262         node flags properly.
3263
3264 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3265
3266         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3267         (-Wmemset-elt-size): New item.
3268
3269 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3270
3271         PR ada/70759
3272         * stor-layout.h (internal_reference_types): Delete.
3273         * stor-layout.c (reference_types_internal): Likewise.
3274         (internal_reference_types): Likewise.
3275         (layout_type) <REFERENCE_TYPE>: Adjust.
3276
3277 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3278
3279         PR sanitizer/70683
3280         * tree.h (inchash::add_expr): Add FLAGS argument.
3281         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3282         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3283         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3284         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3285         if swap_tree_comparison (code) is smaller than code, hash that
3286         and arguments in the other order.  Hash CONVERT_EXPR the same
3287         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3288         of ADDR_EXPR of decl as the decl itself.  Add or remove
3289         OEP_ADDRESS_OF from recursive flags as needed.  For
3290         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3291         operands commutatively and only the third one normally.
3292         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3293
3294 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3295
3296         * config/rtems.h (LIB_SPEC): Add -latomic.
3297
3298 2016-04-27  Joel Sherrill  <joel@rtems.org>
3299
3300         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3301         xilink.ld and flags not relevant to RTEMS.
3302
3303 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3304
3305         * toplev.c (backend_init_target): Avoid calling init_reload when using
3306         LRA.
3307
3308 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3309
3310         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3311         for loops rather than one for the whole function.
3312
3313 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3314
3315         * match.pd (X + CST CMP X): New transformation.
3316
3317 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3318
3319         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3320         * fold-const.c (fold_binary_loc): Remove 2 transformations
3321         superseded by match.pd.
3322         * match.pd (x+x -> x*2): Generalize to integers.
3323
3324 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3325
3326         * config/i386/i386.md (operation on memory peephole): Duplicate an
3327         existing peephole and adapt it to match lea rather than an operation
3328         that clobbers CC.
3329
3330         PR rtl-optimization/57193
3331         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3332         and above.
3333         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3334
3335 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3336
3337         * tree-if-conv.c (any_pred_load_store): New static variable.
3338         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3339         any_pred_load_store instead of and_mask_load_store.
3340         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3341         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3342         (combine_blocks, tree_if_conversion): Ditto.
3343
3344 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3345
3346         PR tree-optimization/70771
3347         PR tree-optimization/70775
3348         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3349         virtual PHI nodes.  Delete parameter.
3350         (if_convertible_loop_p_1): Delete argument to above function.
3351         (predicate_all_scalar_phis): Delete code handling single-argument
3352         PHIs.
3353         (tree_if_conversion): Mark and update virtual SSA.
3354
3355 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3356
3357         PR target/61821
3358         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3359         (x86_elf_aligned_common): Rename to ...
3360         (x86_elf_aligned_decl_common): ... this.
3361         Add decl arg.  Switch to .lbss for largecomm object.  Use
3362         LARGECOMM_SECTION_ASM_OP.
3363         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3364         renaming.
3365         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3366         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3367         Pass new decl arg.
3368         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3369         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3370
3371 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3372
3373         PR target/59407
3374         * config/i386/i386.c (SECTION_LARGE): Define.
3375         (x86_64_elf_select_section): Set it for large data/bss sections.
3376         Only clear SECTION_WRITE for .lrodata.
3377         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3378         data/bss sections.
3379         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3380         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3381         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3382         SECTION_MACH_DEP.
3383         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3384         * doc/tm.texi: Regenerate.
3385
3386 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3387
3388         PR bootstrap/70704
3389         * configure.ac (--enable-checking): Document extra flag, for
3390         non-release builds default to --enable-checking=yes,extra.
3391         If misc checking and extra checking, define CHECKING_P to 2 instead
3392         of 1.
3393         * common.opt (fchecking=): Add.
3394         * doc/invoke.texi (-fchecking=): Document.
3395         * doc/install.texi: Document --enable-checking changes.
3396         * configure: Regenerated.
3397         * config.in: Regenerated.
3398
3399 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3400
3401         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3402         attribute instead of which_alternative.
3403         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3404         Use EXT_REX_SSE_REG_P where appropriate.
3405
3406 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3407
3408         * config/i386/predicates.md (const0_operand): Do not match
3409         const_wide_int code.
3410         (const1_operand): Ditto.
3411
3412 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3413
3414         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3415         for SSE constm1 operands and TARGET_AVX512VL.
3416         (*movti_internal): Ditto.
3417         (*mov<mode>_or): Use constm1_operand predicate.
3418         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3419         for SSE vector_all_ones operands and TARGET_AVX512VL.
3420         * config/i386/predicates.md (constm1_operand): New predicate.
3421         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3422         emission of constant -1 load.
3423
3424 2016-04-25  Jason Merrill  <jason@redhat.com>
3425
3426         * gdbinit.in: Skip is-a.h.
3427
3428         * attribs.c (register_scoped_attributes): Fix logic.
3429         * attribs.h: Declare register_scoped_attributes.
3430
3431 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3432
3433         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3434         stxvd2x and stxvw4x built-in functions.
3435
3436 2016-04-25  DJ Delorie  <dj@redhat.com>
3437
3438         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3439         (ashrhi3): Likewise.
3440         (lshrhi3): Likewise.
3441
3442 2016-04-25  Richard Biener  <rguenther@suse.de>
3443
3444         PR tree-optimization/70780
3445         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3446         wasn't visited yet.
3447         (compute_antic): Mark blocks with abnormal preds as visited as
3448         they have a final empty antic-in solution already.
3449
3450 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3451
3452         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3453
3454 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3455
3456         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3457         mode is VQI to improve mixed mode vectorization.
3458         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3459         define_insn to match low half of signed vaddw.
3460         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3461         define_insn to match high half of signed vaddw.
3462         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3463         define_insn to match low half of unsigned vaddw.
3464         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3465         define_insn to match high half of unsigned vaddw.
3466         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3467         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3468         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3469         for new function.
3470         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3471         * config/arm/predicates.md (vect_par_constant_high): Support
3472         big endian and simplify by calling
3473         arm_simd_check_vect_par_cnst_half
3474         (vect_par_constant_low): Likewise.
3475
3476 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3477
3478         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3479         predicate for operand 2.
3480
3481 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3482             H.J. Lu  <hongjiu.lu@intel.com>
3483
3484         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3485         machine_mode argument.
3486         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3487         constm1_rtx operands.  For VOIDmode constants, get mode from
3488         pred_mode.  Check mode size if the mode is supported by ABI.
3489         (standard_sse_constant_opcode): Do not use standard_constant_p.
3490         Strictly check ABI support for all-ones operands.
3491         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3492         immediates. Update calls to standard_sse_constant_p.
3493         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3494         (ix86_rtx_costs): Ditto.
3495         * config/i386/i386.md (*movxi_internal_avx512f): Use
3496         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3497         Use (v,BC) alternative instead of (v,C). Use register_operand
3498         checks instead of MEM_P.
3499         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3500         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3501         isa attribute.  Use register_operand checks instead of MEM_P.
3502         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3503         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3504         alternative and corresponding sse2 isa attribute.
3505         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3506         to standard_sse_constant_p.
3507         (FP constant splitters): Ditto.
3508         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3509         (C): Ditto.
3510         * config/i386/predicates.md (constm1_operand): Remove.
3511         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3512         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3513         vector_all_ones_operand instead of constm1_operand.
3514
3515 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3516
3517         * print-rtl.c (print_rtx_insn_vec): New function.
3518         * print-rtl.h: New prototype.
3519         * store-motion.c (struct st_expr): Make avail_stores a vector.
3520         (st_expr_entry): Adjust.
3521         (free_st_expr_entry): Likewise.
3522         (print_store_motion_mems): Likewise.
3523         (find_moveable_store): Likewise.
3524         (compute_store_table): Likewise.
3525         (delete_store): Likewise.
3526         (build_store_vectors): Likewise.
3527
3528 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3529
3530         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3531
3532 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3533
3534         * vec.h (vec_safe_contains): New function.
3535         (vec::contains): Likewise.
3536         (vec::begin): Likewise.
3537         (vec::end): Likewise.
3538
3539 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3540
3541         PR sanitizer/70712
3542         * cfgexpand.c (expand_stack_vars): Fix typo.
3543
3544 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3545
3546         * system.h (list, map, set, vector): Include conditionally.
3547         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3548         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3549         * ipa-icf.c (INCLUDE_LIST): Define.
3550         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
3551         * config/sh/sh.c (INCLUDE_VECTOR): Define.
3552         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
3553         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
3554         * cp/logic.cc (INCLUDE_LIST): Define.
3555         * fortran/trans-common.c (INCLUDE_MAP): Define.
3556
3557 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3558
3559         * auto-profile.c: Remove <string.h> include.
3560         * ipa-icf-gimple.c: Remove <list> include.
3561         * diagnostic.c: Remove <new> include.
3562         * genmatch.c: Likewise.
3563         * pretty-print.c: Likewise.
3564         * toplev.c: Likewise
3565         * c/c-objc-common.c: Likewise.
3566         * cp/error.c: Likewise.
3567         * fortran/error.c: Likewise.
3568
3569 2016-04-22  Richard Biener  <rguenther@suse.de>
3570
3571         * lto-streamer-in.c (input_ssa_names): Do not allocate
3572         GIMPLE_NOP for all SSA names.
3573         * lto-streamer-out.c (output_ssa_names): Do not output
3574         SSA names that should have been released.
3575
3576 2016-04-22  Richard Biener  <rguenther@suse.de>
3577
3578         PR tree-optimization/70740
3579         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
3580         VDEF.
3581
3582 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3583
3584         PR target/70750
3585         * config/i386/predicates.md (call_insn_operand): Replace
3586         sibcall_memory_operand with memory_operand.
3587
3588 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
3589
3590         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
3591         has_single_use() tests.
3592         (register_edge_assert_for_1): Likewise.
3593         (find_assert_locations_1): Check the liveness bitmap instead of
3594         checking has_single_use().
3595
3596 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3597
3598         PR target/70728
3599         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
3600         Extract AVX-512BW constraint from AVX.
3601
3602 2016-04-21  Richard Biener  <rguenther@suse.de>
3603
3604         PR tree-optimization/70725
3605         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
3606         for phi_convertible_by_degenerating_args.
3607         (predicate_all_scalar_phis): Handle single-argument PHIs.
3608
3609 2016-04-21  Richard Biener  <rguenther@suse.de>
3610
3611         PR middle-end/70747
3612         * fold-const.c (fold_comparison): Return properly typed
3613         constant boolean.
3614
3615 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
3616
3617         PR tree-optimization/70715
3618         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
3619         after expanding BASE using expand_simple_operations.
3620
3621 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3622
3623         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
3624         New transformations.
3625
3626 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3627
3628         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
3629
3630 2016-04-20  Jan Hubicka  <jh@suse.cz>
3631
3632         * ipa-inline.c (can_inline_edge_p): Pass caller info to
3633         ultiimate_alias_target.
3634         (update_callee_keys): Likewise.
3635         (lookup_recursive_calls): Likewise.
3636         (speculation_useful_p): Likewise.
3637
3638 2016-04-20  Jan Hubicka  <jh@suse.cz>
3639
3640         PR ipa/70018
3641         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
3642         (set_nothrow_flag_1): ... this; handle interposition correctly;
3643         recurse on aliases and thunks.
3644         (cgraph_node::set_nothrow_flag): New.
3645         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
3646         functions compiled with non-call exceptions that binds to current
3647         def.
3648         (propagate_nothrow): Be safe WRT interposition.
3649         * cgraph.h (set_nothrow_flag): Update prototype.
3650
3651 2016-04-18  Jan Hubicka  <jh@suse.cz>
3652
3653         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
3654         max_loop_iterations_int.
3655         (tree_unswitch_outer_loop): Likewise.
3656
3657 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3658
3659         PR tree-optimization/69489
3660         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
3661         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
3662         Revise dump message.
3663         (if_convertible_bb_p): Remove check on edge count of basic block's
3664         predecessors.
3665
3666 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3667
3668         PR tree-optimization/56625
3669         PR tree-optimization/69489
3670         * tree-data-ref.h (DR_INNERMOST): New macro.
3671         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
3672         hashing struct innermost_loop_behavior.
3673         (ref_DR_map): Remove.
3674         (innermost_DR_map): New map.
3675         (baseref_DR_map): Revise comment.
3676         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
3677         to innermost_DR_map accroding to its innermost loop behavior.
3678         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
3679         to its innermost loop behavior.
3680         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
3681         Add initialization for innermost_DR_map.  Record memory reference
3682         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
3683         have innermost loop behavior.
3684         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
3685         innermost_DR_map.
3686
3687 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
3688
3689         * config/i386/i386.md (*lea<mode>_general_1): Rename from
3690         *lea_general_1.  Use explicit SWI12 mode interator.
3691         (*lea<mode>_general_2): Rename from *lea_general_2.
3692         Use explicit SWI12 mode interator.
3693         (*lea<mode>_general_3): Rename from *lea_general_3.
3694         Use explicit SWI12 mode interator.
3695         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
3696         Use explicit SWI12 mode interator.
3697         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
3698         Use explicit SWI48 mode interator.
3699
3700 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3701
3702         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
3703         Short-cut unaligned load and store cases.  Handle all integer
3704         vector modes.
3705         (ix86_expand_vector_move_misalign): Short-cut unaligned load
3706         and store cases.  Call ix86_avx256_split_vector_move_misalign
3707         directly without checking mode class.
3708
3709 2016-04-20  Andrew Pinski  <apinski@cavium.com>
3710             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3711
3712         PR target/64971
3713         * config/aarch64/aarch64.md (sibcall): Force call
3714         address to be DImode for ILP32.
3715         (sibcall_value): Likewise.
3716
3717 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
3718
3719         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
3720
3721 2016-04-20  Richard Biener  <rguenther@suse.de>
3722
3723         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
3724         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
3725         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
3726         (maybe_push_res_to_seq): Adjust.
3727         * gimple-fold.c (maybe_build_generic_op): Likewise.
3728
3729 2016-04-20  Marek Polacek  <polacek@redhat.com>
3730
3731         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
3732         rather than true.
3733
3734 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
3735
3736         * config/i386/sse.md (vec_unpacks_lo_hi): Always
3737         use kmovw to support AVX512F target.
3738
3739 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
3740
3741         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
3742
3743 2016-04-20  Marek Polacek  <polacek@redhat.com>
3744
3745         PR tree-optimization/70725
3746         * tree-if-conv.c (is_false_predicate): New function.
3747         (predicate_mem_writes): Use it.
3748
3749 2016-04-20  Richard Biener  <rguenther@suse.de>
3750
3751         PR tree-optimization/70726
3752         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
3753         shift amounts from a pattern stmt operand.
3754
3755 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3756
3757         PR target/70674
3758         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
3759         stack_restore_from_fpr pattern when restoring r15.
3760         (s390_optimize_prologue): Strip away the memory barrier in the
3761         parallel when trying to get rid of restore insns.
3762         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
3763         definition for loading the stack pointer from an FPR.  Compared to
3764         the normal move insn this pattern includes a full memory barrier.
3765
3766 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
3767
3768         PR middle-end/70680
3769         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
3770         implicitly linear or lastprivate iterator on the outer context.
3771
3772 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
3773
3774         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
3775         alignment check.
3776         * config/i386/i386.md (ssememalign): Removed.
3777         * config/i386/sse.md: Remove ssememalign attribute from patterns.
3778
3779 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
3780
3781         PR target/69201
3782         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
3783         const short * to __builtin_ia32_loaddquhi512_mask.
3784         (_mm512_maskz_loadu_epi16): Likewise.
3785         (_mm512_mask_storeu_epi16): Pass short * to
3786         __builtin_ia32_storedquhi512_mask.
3787         (_mm512_mask_loadu_epi8): Pass const char * to
3788         __builtin_ia32_loaddquqi512_mask.
3789         (_mm512_maskz_loadu_epi8): Likewise.
3790         (_mm512_mask_storeu_epi8): Pass char * to
3791         __builtin_ia32_storedquqi512_mask.
3792         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
3793         const double * to __builtin_ia32_loadupd512_mask.
3794         (_mm512_mask_loadu_pd): Likewise.
3795         (_mm512_maskz_loadu_pd): Likewise.
3796         (_mm512_storeu_pd): Pass double * to
3797         __builtin_ia32_storeupd512_mask.
3798         (_mm512_mask_storeu_pd): Likewise.
3799         (_mm512_loadu_ps): Pass const float * to
3800         __builtin_ia32_loadups512_mask.
3801         (_mm512_mask_loadu_ps): Likewise.
3802         (_mm512_maskz_loadu_ps): Likewise.
3803         (_mm512_storeu_ps): Pass float * to
3804         __builtin_ia32_storeups512_mask.
3805         (_mm512_mask_storeu_ps): Likewise.
3806         (_mm512_mask_loadu_epi64): Pass const long long * to
3807         __builtin_ia32_loaddqudi512_mask.
3808         (_mm512_maskz_loadu_epi64): Likewise.
3809         (_mm512_mask_storeu_epi64): Pass long long *
3810         to __builtin_ia32_storedqudi512_mask.
3811         (_mm512_loadu_si512): Pass const int * to
3812         __builtin_ia32_loaddqusi512_mask.
3813         (_mm512_mask_loadu_epi32): Likewise.
3814         (_mm512_maskz_loadu_epi32): Likewise.
3815         (_mm512_storeu_si512): Pass int * to
3816         __builtin_ia32_storedqusi512_mask.
3817         (_mm512_mask_storeu_epi32): Likewise.
3818         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
3819         char * to __builtin_ia32_storedquqi256_mask.
3820         (_mm_mask_storeu_epi8): Likewise.
3821         (_mm256_mask_loadu_epi16): Pass const short * to
3822         __builtin_ia32_loaddquhi256_mask.
3823         (_mm256_maskz_loadu_epi16): Likewise.
3824         (_mm_mask_loadu_epi16): Pass const short * to
3825         __builtin_ia32_loaddquhi128_mask.
3826         (_mm_maskz_loadu_epi16): Likewise.
3827         (_mm256_mask_loadu_epi8): Pass const char * to
3828         __builtin_ia32_loaddquqi256_mask.
3829         (_mm256_maskz_loadu_epi8): Likewise.
3830         (_mm_mask_loadu_epi8): Pass const char * to
3831         __builtin_ia32_loaddquqi128_mask.
3832         (_mm_maskz_loadu_epi8): Likewise.
3833         (_mm256_mask_storeu_epi16): Pass short * to.
3834         __builtin_ia32_storedquhi256_mask.
3835         (_mm_mask_storeu_epi16): Pass short * to.
3836         __builtin_ia32_storedquhi128_mask.
3837         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
3838         const double * to __builtin_ia32_loadupd256_mask.
3839         (_mm256_maskz_loadu_pd): Likewise.
3840         (_mm_mask_loadu_pd): Pass onst double * to
3841         __builtin_ia32_loadupd128_mask.
3842         (_mm_maskz_loadu_pd): Likewise.
3843         (_mm256_mask_storeu_pd): Pass double * to
3844         __builtin_ia32_storeupd256_mask.
3845         (_mm_mask_storeu_pd): Pass double * to
3846         __builtin_ia32_storeupd128_mask.
3847         (_mm256_mask_loadu_ps): Pass const float * to
3848         __builtin_ia32_loadups256_mask.
3849         (_mm256_maskz_loadu_ps): Likewise.
3850         (_mm_mask_loadu_ps): Pass const float * to
3851         __builtin_ia32_loadups128_mask.
3852         (_mm_maskz_loadu_ps): Likewise.
3853         (_mm256_mask_storeu_ps): Pass float * to
3854         __builtin_ia32_storeups256_mask.
3855         (_mm_mask_storeu_ps): ass float * to
3856         __builtin_ia32_storeups128_mask.
3857         (_mm256_mask_loadu_epi64): Pass const long long * to
3858         __builtin_ia32_loaddqudi256_mask.
3859         (_mm256_maskz_loadu_epi64): Likewise.
3860         (_mm_mask_loadu_epi64): Pass const long long * to
3861         __builtin_ia32_loaddqudi128_mask.
3862         (_mm_maskz_loadu_epi64): Likewise.
3863         (_mm256_mask_storeu_epi64): Pass long long * to
3864         __builtin_ia32_storedqudi256_mask.
3865         (_mm_mask_storeu_epi64): Pass long long * to
3866         __builtin_ia32_storedqudi128_mask.
3867         (_mm256_mask_loadu_epi32): Pass const int * to
3868         __builtin_ia32_loaddqusi256_mask.
3869         (_mm256_maskz_loadu_epi32): Likewise.
3870         (_mm_mask_loadu_epi32): Pass const int * to
3871         __builtin_ia32_loaddqusi128_mask.
3872         (_mm_maskz_loadu_epi32): Likewise.
3873         (_mm256_mask_storeu_epi32): Pass int * to
3874         __builtin_ia32_storedqusi256_mask.
3875         (_mm_mask_storeu_epi32): Pass int * to
3876         __builtin_ia32_storedqusi128_mask.
3877         * config/i386/i386-builtin-types.def (PCSHORT): New.
3878         (PINT64): Likewise.
3879         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
3880         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
3881         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
3882         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
3883         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
3884         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
3885         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
3886         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
3887         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
3888         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
3889         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
3890         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
3891         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
3892         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
3893         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
3894         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
3895         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
3896         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
3897         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
3898         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
3899         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
3900         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
3901         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
3902         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
3903         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
3904         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
3905         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
3906         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
3907         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
3908         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
3909         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
3910         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
3911         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
3912         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
3913         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
3914         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
3915         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
3916         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
3917         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
3918         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
3919         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
3920         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
3921         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
3922         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
3923         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
3924         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
3925         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
3926         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
3927         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
3928         use UNSPEC_STOREU.
3929         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
3930         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
3931         load nor store.
3932         (ix86_expand_vector_move_misalign): Likewise.
3933         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
3934         to scalar function prototype for unaligned load/store builtins.
3935         (ix86_expand_special_args_builtin): Updated.
3936         * config/i386/sse.md (UNSPEC_LOADU): Removed.
3937         (UNSPEC_STOREU): Likewise.
3938         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
3939         (VI_ULOADSTORE_F_AVX512VL): Likewise.
3940         (ssescalarsize): Handle V4TI, V2TI and V1TI.
3941         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
3942         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
3943         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
3944         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
3945         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
3946         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
3947         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
3948         (<avx512>_storedqu<mode>_mask): Likewise.
3949         (*sse4_2_pcmpestr_unaligned): Likewise.
3950         (*sse4_2_pcmpistr_unaligned): Likewise.
3951         (*mov<mode>_internal): Renamed to ...
3952         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
3953         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
3954         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
3955         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
3956
3957 2016-04-19  Richard Biener  <rguenther@suse.de>
3958
3959         PR tree-optimization/70171
3960         * tree-ssa-phiprop.c: Include stor-layout.h.
3961         (phiprop_insert_phi): Handle the aggregate copy case.
3962         (propagate_with_phi): Likewise.
3963
3964 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
3965
3966         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
3967         instead of simplify_gen_subreg (... , 0).
3968         (ix86_delegitimize_address): Ditto.
3969         (ix86_split_divmod): Ditto.
3970         (ix86_split_copysign_const): Ditto.
3971         (ix86_split_copysign_var): Ditto.
3972         (ix86_expand_args_builtin): Ditto.
3973         (ix86_expand_round_builtin): Ditto.
3974         (ix86_expand_special_args_builtin): Ditto.
3975         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
3976         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
3977         (udivmodqi4): Ditto.
3978         (absneg splitters): Ditto.
3979         (*jcc_bt<mode>_1): Ditto.
3980
3981 2016-04-19  Richard Biener  <rguenther@suse.de>
3982
3983         PR tree-optimization/70724
3984         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
3985         restoring out from ...
3986         (free_scc_vn): ... here.
3987         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
3988         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
3989         tail merging.
3990         (pass_fre::execute): Restore SSA info.
3991
3992 2016-04-19  Richard Biener  <rguenther@suse.de>
3993
3994         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
3995         * gimple-walk.c (walk_gimple_op): Initialize it.
3996         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
3997         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
3998         remapping SSA names of defs.
3999         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4000         adjustment.
4001
4002 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4003
4004         PR middle-end/70689
4005         * lra-constraints.c (equiv_substition_p): New.
4006         (process_alt_operands): Use it.
4007         (swap_operands): Swap it.
4008         (curr_insn_transform): Update it.
4009
4010 2016-04-18  Michael Matz  <matz@suse.de>
4011
4012         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4013         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4014         * tree-core.h (tree_type_common.align): Use bit-field.
4015         (tree_type_common.spare): New.
4016         (tree_decl_common.off_align): Make smaller.
4017         (tree_decl_common.align): Use bit-field.
4018
4019         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4020         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4021         (scan_sharing_clauses): Ditto.
4022         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4023         (omp_finish_file): Ditto.
4024         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4025         (layout_decl): Ditto.
4026         (relayout_decl): Ditto.
4027         (finalize_record_size): Use SET_TYPE_ALIGN.
4028         (finalize_type_size): Ditto.
4029         (finish_builtin_struct): Ditto.
4030         (layout_type): Ditto.
4031         (initialize_sizetypes): Ditto.
4032         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4033         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4034         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4035         (get_chain_field): Ditto.
4036         (get_trampoline_type): Ditto.
4037         (get_nl_goto_field): Ditto.
4038         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4039         SET_DECL_ALIGN.
4040         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4041         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4042         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4043         (build_qualified_type): Use SET_TYPE_ALIGN.
4044         (build_aligned_type, build_range_type_1): Ditto.
4045         (build_atomic_base): Ditto.
4046         (build_common_tree_nodes): Ditto.
4047         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4048         (expand_one_stack_var_at): Ditto.
4049         * coverage.c (build_var): Use SET_DECL_ALIGN.
4050         * except.c (init_eh): Ditto.
4051         * function.c (assign_parm_setup_block): Ditto.
4052         * symtab.c (increase_alignment_1): Ditto.
4053         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4054         * tree-vect-stmts.c (ensure_base_align): Ditto.
4055         * varasm.c (align_variable): Ditto.
4056         (assemble_variable): Ditto.
4057         (build_constant_desc): Ditto.
4058         (output_constant_def_contents): Ditto.
4059
4060         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4061         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4062         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4063         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4064         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4065
4066 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4067
4068         PR target/70708
4069         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4070         replace %vmovsd with "%vmovq".
4071         (vec_concatv2df): Likewise.
4072
4073 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4074
4075         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4076         (*vec_extractv2si_0): Ditto.
4077         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4078         (zero_extended_scalar_load_operand splitters): Ditto.
4079         (vec_extract splitters): Ditto.
4080         (*vec_extractv4si_0_zext): Ditto.
4081         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4082         and lowpart_subreg.
4083         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4084         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4085         (*sse4_1_extractps): Use lowpart_subreg.
4086         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4087
4088 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4089
4090         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4091         gld requirements.
4092         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4093         Mention Solaris 11 packaging changes.
4094         Update gas and gld requirements.
4095         Remove reference to pre-Solaris 10 bug.
4096         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4097         systems and bugs.
4098         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4099         with cc.
4100
4101 2016-04-17  Jan Hubicka  <jh@suse.cz>
4102
4103         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4104         max_loop_iterations_int.
4105
4106 2016-04-18  Richard Biener  <rguenther@suse.de>
4107
4108         PR tree-optimization/43434
4109         * tree-ssa-structalias.c (struct vls_data): New.
4110         (visit_loadstore): Handle all pointer-based accesses.
4111         (compute_dependence_clique): Compute a bitmap of restrict tags
4112         assigned bases and pass it to visit_loadstore.
4113
4114 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4115
4116         PR target/70711
4117         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4118         armv8.1-a and armv8.1-a+crc.
4119
4120 2016-04-18  Richard Biener  <rguenther@suse.de>
4121
4122         PR tree-optimization/70701
4123         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4124         references after translating through a memcpy.
4125
4126 2016-04-18  Richard Biener  <rguenther@suse.de>
4127
4128         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4129         (compute_antic): ... here.  For partial antic use regular
4130         postorder and scrap iteration.
4131         (compute_partial_antic_aux): Remove unused return value.
4132         (init_pre): Do not allocate postorder.
4133         (fini_pre): Do not free postorder.
4134
4135 2016-04-18  Richard Biener  <rguenther@suse.de>
4136
4137         PR middle-end/37870
4138         * expmed.c (extract_bit_field_1): Remove broken case
4139         using a wider MODE_INT mode.
4140
4141 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4142
4143         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4144         unless compiling with at least GCC-4.8.
4145
4146 2016-04-17  Jan Hubicka  <jh@suse.cz>
4147
4148         PR bootstrap/70706
4149         * graphite.c (graphite_finalize): Update call to
4150         tree_estimate_probability.
4151         * predict.h (tree_estimate_probability): Update prototype.
4152
4153 2016-04-17  Jan Hubicka  <jh@suse.cz>
4154
4155         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4156         (tree_estimate_probability): Likewise.
4157         (pass_profile::execute): Update.
4158         (report_predictor_hitrates): New function.
4159         * profile.c (compute_branch_probabilities): Use it.
4160         * predict.h (report_predictor_hitrates): Declare.
4161
4162 2016-04-17  Jan Hubicka  <jh@suse.cz>
4163
4164         PR ipa/70018
4165         * cgraph.h (cgraph_node::set_const_flag,
4166         cgraph_node::set_pure_flag): Update prototype to return bool;
4167         update comment.
4168         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4169         of interposable symbol are interposable, too.
4170         (cgraph_set_const_flag_1): Rename to ...
4171         (set_const_flag_1): ... this one; change to self recursive function
4172         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4173         clearnig the flag in all variants and also virtual thunks of const
4174         functions are pure; track if any change was done.
4175         (cgraph_node::set_const_flag): Update.
4176         (struct set_pure_flag_info): New struct.
4177         (cgraph_set_pure_flag_1): Rename to ...
4178         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4179         rather than pointer encoded flags; track if any changes was done;
4180         handle correctly clearning flag and setting flag of aliases already
4181         declared const.
4182         (cgraph_node::set_pure_flag): Update.
4183         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4184
4185 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4186
4187         PR other/70433
4188         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4189         backslash in label.
4190
4191 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4192
4193         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4194         '{}<> ' as escape-for-record.
4195
4196 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4197
4198         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4199         structure.
4200
4201 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4202
4203         PR other/70185
4204         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4205         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4206         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4207         * passes.c (finish_optimization_passes): Only call
4208         finish_graph_dump_file if dfi->graph_dump_initialized.
4209         (execute_function_dump, pass_init_dump_file): Use
4210         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4211
4212 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4213
4214         PR tree-optimization/70256
4215         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4216         (debug_varmap): New function.
4217
4218 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4219
4220         PR other/70183
4221         * passes.c (pass_manager::register_pass): Propagate pflags.
4222
4223 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4224
4225         PR other/68875
4226         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4227         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4228         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4229         check if it's equal to p_start.
4230         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4231
4232 2016-04-15  Jan Hubicka  <jh@suse.cz>
4233
4234         PR ipa/70018
4235         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4236         function does not bind to current def.
4237         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4238         handle conservatively calls to functions that does not need to bind
4239         to current def.
4240         (check_call): Update call of worse_state.
4241         (ignore_edge_for_nothrow): Update.
4242         (ignore_edge_for_pure_const): Likewise.
4243         (propagate_pure_const): Update calls to worse_state.
4244         (skip_function_for_local_pure_const): Reformat comments.
4245
4246 2016-04-15  Jan Hubicka  <jh@suse.cz>
4247
4248         PR ipa/70018
4249         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4250         (cgraph_node::function_symbol): Likewise.
4251         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4252         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4253         (symtab_node::ultimate_alias_target): Add REF parameter.
4254         (symtab_node::binds_to_current_def_p): Declare.
4255         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4256         (cgraph_node::function_symbol): Likewise.
4257         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4258         (cgraph_node::get_availability): Likewise.
4259         (cgraph_edge::binds_to_current_def_p): New inline function.
4260         (varpool_node::get_availability): Add REF parameter.
4261         (varpool_node::ultimate_alias_target): Likewise.
4262         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4263         (symtab_node::binds_to_current_def_p): Likewise.
4264         * varpool.c (varpool_node::get_availability): Likewise.
4265
4266 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4267
4268         PR target/70662
4269         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4270         Fix mode size check.
4271
4272 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4273
4274         * BASE-VER: Set to 7.0.0.
4275
4276 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4277
4278         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4279
4280 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4281
4282         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4283         architecture revisions.
4284
4285 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4286
4287         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4288         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4289         * config/i386/i386.md (stack decrement to push peepholes): Guard
4290         with !x86_using_red_zone ().
4291
4292 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4293
4294         PR c++/70675
4295         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4296         to dump_generic_node.
4297         (NIY): Pass also flags to do_niy.
4298
4299 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4300
4301         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4302         (simd_clone_vector_of_formal_parm_types)
4303         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4304         (simd_clone_mangle, simd_clone_create)
4305         (simd_clone_adjust_return_type, create_tmp_simd_array)
4306         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4307         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4308         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4309         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4310         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4311         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4312         * omp-simd-clone.c: ... this new file.
4313         (simd_clone_vector_of_formal_parm_types): Make it static.
4314         * Makefile.in (OBJS): Add omp-simd-clone.o.
4315
4316 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4317
4318         PR target/70662
4319         * config/i386/sse.md: Use proper memory operand modifiers.
4320
4321
4322 2016-04-15  Richard Biener  <rguenther@suse.de>
4323         Alan Modra  <amodra@gmail.com>
4324
4325         PR tree-optimization/70130
4326         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4327         when alignment stays not the same and no not use the realign
4328         scheme then.
4329
4330 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4331
4332         PR target/70669
4333         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4334         direct move handlers for KFmode. Change TFmode handlers test from
4335         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4336
4337 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4338
4339         PR c++/70594
4340         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4341         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4342         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4343         * tree-ssa-live.c (remove_unused_scope_block_p): When
4344         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4345         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4346         block_ultimate_origin is FUNCTION_DECL.
4347         (remove_unused_locals): If current_function_decl is
4348         polymorphic_ctor_dtor_p, pass initial true to
4349         remove_unused_scope_block_p' is_ctor_dtor_block.
4350
4351 2016-04-14  Martin Sebor  <msebor@redhat.com>
4352
4353         PR c++/69517
4354         PR c++/70019
4355         PR c++/70588
4356         * doc/extend.texi (Variable Length): Revert.
4357
4358 2016-04-14  Marek Polacek  <polacek@redhat.com>
4359             Jan Hubicka  <hubicka@ucw.cz>
4360
4361         PR c++/70029
4362         * tree.c (verify_type): Disable the canonical type of main variant
4363         check.
4364
4365 2016-04-14  Jason Merrill  <jason@redhat.com>
4366
4367         * cfgexpand.c, expr.c: Revert previous change.
4368
4369 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4370
4371         PR middle-end/70643
4372         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4373         when building a mem ref for the incoming reduction variable.
4374
4375 2016-04-14  Richard Biener  <rguenther@suse.de>
4376
4377         PR tree-optimization/70614
4378         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4379         loop if the evolution dropped to chrec_dont_know.
4380         (interpret_condition_phi): Likewise.
4381
4382 2016-04-14  Richard Biener  <rguenther@suse.de>
4383
4384         PR tree-optimization/70623
4385         * tree-ssa-pre.c (changed_blocks): Make global ...
4386         (compute_antic): ... local here.  Move and fix worklist
4387         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4388         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4389         worklist handling, dump when ANTIC_IN changed.
4390         (compute_partial_antic_aux): Remove worklist handling.
4391         (init_pre): Do not compute post dominators.  Add a comment about
4392         the CFG order chosen.
4393         (fini_pre): Do not free post dominators.
4394
4395 2016-04-13  Martin Sebor  <msebor@redhat.com>
4396
4397         PR c++/69517
4398         PR c++/70019
4399         PR c++/70588
4400         * doc/extend.texi (Variable Length): Document C++ specifics.
4401
4402 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4403
4404         PR c++/70641
4405         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4406         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4407         eh edges have been purged.
4408
4409         PR c++/70594
4410         * tree-sra.c (create_access_replacement,
4411         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4412         gets fancy name.
4413         * tree-pretty-print.c (dump_fancy_name): New function.
4414         (dump_decl_name, dump_generic_node): Use it.
4415
4416 2016-04-13  Jason Merrill  <jason@redhat.com>
4417
4418         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4419         * expr.c (expand_expr_real_1): Likewise.
4420
4421 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4422
4423         * config/i386/i386.md (kunpckhi): Swap operands.
4424         (kunpcksi): Likewise.
4425         (kunpckdi): Likewise.
4426         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4427         (vec_pack_trunc_<mode>): Likewise.
4428
4429 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4430
4431         PR debug/70628
4432         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4433
4434         PR middle-end/70633
4435         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4436         gimplification turns some element into non-constant.
4437
4438         PR debug/70628
4439         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4440         * explow.c (convert_memory_address_addr_space_1): No longer static,
4441         add NO_EMIT argument and don't call convert_modes if true, pass
4442         it down recursively, remove break after return.
4443         (convert_memory_address_addr_space): Adjust caller.
4444         * simplify-rtx.c (simplify_unary_operation_1): Call
4445         convert_memory_address_addr_space_1 instead of convert_memory_address,
4446         if it returns NULL, don't simplify.
4447
4448 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4449
4450         PR target/70630
4451         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4452
4453 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4454
4455         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4456         Bump the upper SIMDLEN limits, so that if the return type or
4457         characteristic type if the return type is void can be passed in
4458         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4459         allowed.
4460
4461 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4462
4463         PR target/70640
4464         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4465         Do not use "=" constraint on an input constraint.
4466         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4467         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4468         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4469         generates (neg (abs ...)) instead of (abs ...).
4470
4471 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4472
4473         PR rtl-optimization/70596
4474         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4475         just invalidate LRA data and reset them.  Adjust dump wording.
4476
4477 2016-04-12  Martin Liska  <mliska@suse.cz>
4478
4479         Revert
4480         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4481
4482         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4483         estimates here.
4484         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4485         max_loop_iterations_int.
4486         (tree_unswitch_outer_loop): Likewise.
4487         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4488         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4489
4490 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4491
4492         PR tree-optimization/68756
4493         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4494         instead of new_name.
4495
4496 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4497
4498         PR tree-optimization/70602
4499         * tree-sra.c (generate_subtree_copies): Don't write anything into
4500         constant pool decls.
4501
4502         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4503         regardless whether there are depend clauses or not.
4504
4505 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4506
4507         PR target/70381
4508         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4509         target attribute and pragma from changing the -mfloat128
4510         and -mfloat128-hardware options.
4511
4512         * doc/extend.texi (Additional Floating Types): Document PowerPC
4513         __float128 restrictions.
4514
4515 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4516
4517         PR target/70133
4518         * config/aarch64/driver-aarch64.c
4519         (aarch64_get_extension_string_for_isa_flags): New.
4520         (arch_extension): Rename to...
4521         (aarch64_arch_extension): ...This.
4522         (ext_to_feat_string): Rename to...
4523         (aarch64_extensions): ...This.
4524         (aarch64_core_data): Keep track of architecture extension flags.
4525         (cpu_data): Rename to...
4526         (aarch64_cpu_data): ...This.
4527         (aarch64_arch_driver_info): Keep track of architecture extension
4528         flags.
4529         (get_arch_name_from_id): Rename to...
4530         (get_arch_from_id): ...This, change return type.
4531         (host_detect_local_cpu): Update and reformat for renames, handle
4532         extensions through common infrastructure.
4533
4534 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4535
4536         PR target/70133
4537         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4538         track of a canonical flag name.
4539         (all_extensions): Likewise.
4540         (arch_to_arch_name): Also track extension flags enabled by the arch.
4541         (all_architectures): Likewise.
4542         (aarch64_parse_extension): Move to here.
4543         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4544         rework.
4545         (aarch64_rewrite_selected_cpu): Update for above change.
4546         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4547         are handled, such that the single explicit value enabled by an
4548         extension is kept seperate from the implicit values it also enables.
4549         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4550         to here.
4551         (aarch64_parse_extension): New.
4552         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4553         here to config/aarch64/aarch64-protos.h.
4554         (aarch64_parse_extension): Move from here to
4555         common/config/aarch64/aarch64-common.c.
4556         (aarch64_option_print): Update.
4557         (aarch64_declare_function_name): Likewise.
4558         (aarch64_start_file): Likewise.
4559         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4560         the canonical flag for extensions.
4561         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4562         flags.
4563
4564 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4565
4566         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4567         AARCH64_FL_CRC.
4568
4569 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4570
4571         PR tree-optimization/68953
4572         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4573         first to last subscript.
4574
4575 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4576
4577         PR tree-optimization/70586
4578         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4579         for any calls.
4580
4581 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4582
4583         PR lto/70289
4584         PR ipa/70348
4585         PR tree-optimization/70373
4586         PR middle-end/70533
4587         PR middle-end/70534
4588         PR middle-end/70535
4589         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
4590         clauses for acc parallel reductions as necessary.  Error on those
4591         that are private.
4592         * omp-low.c (scan_sharing_clauses): Don't install variables which
4593         are used in acc parallel reductions.
4594         (lower_rec_input_clauses): Remove dead code.
4595         (lower_oacc_reductions): Add support for reference reductions.
4596         (lower_reduction_clauses): Remove dead code.
4597         (lower_omp_target): Don't remap variables appearing in acc parallel
4598         reductions.
4599         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
4600
4601 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
4602
4603         PR middle-end/70593
4604         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
4605         with multiple SSA_NAME defs, force the outputs other than first
4606         to be live before calling live_track_process_def on each output.
4607
4608         PR rtl-optimization/70574
4609         * fwprop.c (forward_propagate_and_simplify): Don't add
4610         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
4611         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
4612         paradoxical subregs within *loc.
4613
4614 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
4615
4616         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
4617         -ftree-parallelize-loops={0,1}.
4618         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
4619         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
4620         * config/ia64/hpux.h (LIB_SPEC): Likewise.
4621         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4622         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
4623
4624 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
4625
4626         PR sanitizer/70541
4627         * asan.c (instrument_derefs): If we get unknown location, extract it
4628         with EXPR_LOCATION.
4629         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
4630
4631 2016-04-08  Tom de Vries  <tom@codesourcery.com>
4632
4633         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
4634         implicit firstprivate clause.
4635
4636 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4637
4638         PR target/70566
4639         * config/arm/thumb2.md (tst + branch-> lsls + branch
4640         peephole below *orsi_not_shiftsi_si): Require that condition
4641         register is dead after the peephole.
4642         (second peephole after the above): Likewise.
4643
4644 2016-04-08  Alan Modra  <amodra@gmail.com>
4645
4646         PR target/70117
4647         * builtins.c (fold_builtin_classify): For IBM extended precision,
4648         look at just the high-order double to test for NaN.
4649         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
4650         test just the high double for Inf but both doubles for subnormal
4651         limit.
4652
4653 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
4654
4655         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
4656         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
4657         node->simdclone->mask_mode != VOIDmode masks.
4658         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
4659         earlier, use it instead of node->simdclone.
4660         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4661         Set clonei->mask_mode.
4662
4663 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4664
4665         PR c/70436
4666         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
4667         Pass it through to cp_parser_already_scoped_statement.
4668         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
4669         it through to cp_parser_statement.
4670         (cp_parser_statement): Pass IF_P through to
4671         cp_parser_iteration_statement.
4672         (cp_parser_pragma): Adjust call to
4673         cp_parser_iteration_statement.
4674
4675 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
4676
4677         PR c/70436
4678         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
4679         resolve a future -Wparentheses warning.
4680         * omp-low.c (scan_sharing_clauses): Likewise.
4681         * tree-parloops.c (eliminate_local_variables): Likewise.
4682
4683 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
4684
4685         PR rtl-optimization/70398
4686         * lra-constraints.c (process_address_1): Check zero scale and code
4687         for reloading with zero scale.
4688
4689 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
4690
4691         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
4692         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
4693
4694 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
4695
4696         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4697         Add support for AVX512F clones, include them by default for
4698         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
4699         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
4700         up to 128.
4701
4702         PR middle-end/70550
4703         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
4704         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
4705         firstprivate clauses.
4706         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
4707         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
4708         (lower_omp_target): Set TREE_NO_WARNING for
4709         non-addressable possibly uninitialized vars which are copied into
4710         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
4711
4712 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
4713
4714         * config/pa/predicates.md (integer_store_memory_operand): Accept
4715         REG+D operands with a large offset when reload_in_progress is true.
4716         (floating_point_store_memory_operand): Likewise.
4717
4718 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4719
4720         PR c++/70336
4721         * match.pd (nested int casts): Limit to GIMPLE.
4722
4723 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
4724
4725         PR ipa/66223
4726         * ipa-devirt.c (maybe_record_node): Fix comment; use
4727         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
4728
4729 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4730
4731         PR rtl-optimization/70542
4732         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
4733         if there are any uses other than insn or debug insns.
4734
4735 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
4736             Jakub Jelinek  <jakub@redhat.com>
4737
4738         PR tree-optimization/70509
4739         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
4740         Shift HOST_WIDE_INT_1U instead of 1.
4741
4742 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
4743
4744         PR tree-optimization/70509
4745         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
4746         of the vector base type for index.
4747
4748 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
4749
4750         PR target/70510
4751         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
4752
4753 2016-04-05  Richard Biener  <rguenther@suse.de>
4754
4755         PR tree-optimization/70526
4756         * tree-sra.c (build_ref_for_offset): Use prev_base to
4757         extract the alias pointer type.
4758
4759 2016-04-05  Richard Biener  <rguenther@suse.de>
4760
4761         * dse.c (struct store_info): Remove alias_set member.
4762         (struct read_info_type): Likewise.
4763         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
4764         spill_deleted, clear_alias_set_lookup): Remove.
4765         (get_group_info): Remove dead base == NULL_RTX case.
4766         (dse_step0): Remove initialization of removed variables.
4767         (delete_dead_store_insn): Reomve alias set dumping.
4768         (free_read_records): Remove alias_set handling.
4769         (canon_address): Remove alias_set_out parameter.
4770         (record_store): Remove spill_alias_set, it's always zero.
4771         (check_mem_read_rtx): Likewise.
4772         (dse_step2): Rename from ...
4773         (dse_step2_nospill): ... this.  Adjust.
4774         (scan_stores): Rename from ...
4775         (scan_stores_nospill): ... this.
4776         (scan_reads): Rename from ...
4777         (scan_reads_nospill): ... this.
4778         (scan_stores_spill, scan_reads_spill): Remove.
4779         (dse_step3_scan): Remove for_spills argument which is always false.
4780         (dse_step3): Likewise.
4781         (dse_step5): Rename from ...
4782         (dse_step5_nospill): ... this.  Remove alias_set handling.
4783         (rest_of_handle_dse): Adjust.
4784
4785 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
4786
4787         PR target/70525
4788         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
4789         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
4790         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
4791         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
4792
4793 2016-04-05  Richard Biener  <rguenther@suse.de>
4794
4795         PR middle-end/70499
4796         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
4797         non-register type temporaries into SSA.
4798
4799 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
4800
4801         PR ipa/66223
4802         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
4803         calls when sanitizing.
4804         (possible_polymorphic_call_target_p): Fix formatting.
4805
4806 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4807             Jakub Jelinek <jakub@redhat.com>
4808
4809         PR middle-end/70457
4810         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
4811         to ensure a call statement is compatible with a built-in's
4812         prototype.
4813         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
4814         Likewise.
4815
4816 2016-04-04  Richard Biener  <rguenther@suse.de>
4817
4818         PR rtl-optimization/70484
4819         * rtl.h (canon_output_dependence): Declare.
4820         * alias.c (canon_output_dependence): New function.
4821         * dse.c (record_store): Use canon_output_dependence rather
4822         than canon_true_dependence.
4823
4824 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4825
4826         PR ipa/68881
4827         * cgraph.h (symtab_node::copy_visibility_from): New function.
4828         * symtab.c (symtab_node::copy_visibility_from): New function.
4829         * ipa-visibility.c (optimize_weakref): New function.
4830         (function_and_variable_visibility): Use it.
4831
4832 2016-04-04  Martin Liska  <mliska@suse.cz>
4833
4834         PR hsa/70402
4835         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
4836         value that is really in range handled by SBR instruction.
4837         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
4838         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
4839         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
4840
4841 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
4842
4843         PR target/70416
4844         PR target/67391
4845         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
4846         set, but not for SP_REG operands.
4847
4848 2016-04-02  Martin Sebor  <msebor@redhat.com>
4849
4850         PR c++/67376
4851         * fold-const.c (maybe_nonzero_address): New function.
4852         (fold_comparison): Call it.  Fold equality and relational
4853         expressions involving null pointers.
4854         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
4855
4856 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
4857
4858         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
4859         the "Y" constraint (scalar FP 0.0 immediate).
4860
4861         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
4862         Add the "const_double" to the list of operand constraints.
4863
4864 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
4865
4866         PR rtl-optimization/70467
4867         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
4868         If low word of the last operand is 0, just emit addition/subtraction
4869         for the high word.
4870
4871 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4872
4873         PR target/70404
4874         * config/s390/s390.c (s390_expand_insv): Check for everything
4875         constant instead of just VOIDmode stuff.
4876
4877 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4878
4879         PR target/70496
4880         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
4881
4882 2016-04-01  Nathan Sidwell  <nathan@acm.org>
4883
4884         * tree.def (TRY_CATCH_EXPR): Correct documentation.
4885
4886 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
4887
4888         PR rtl-optimization/70461
4889         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
4890         is necessary.
4891
4892 2016-03-31  Martin Liska  <mliska@suse.cz>
4893
4894         PR hsa/70399
4895         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
4896         a tree value or an immediate integer value to a buffer
4897         that is eventually copied to a BRIG section.
4898         (emit_immediate_operand): Call the function here.
4899         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
4900         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
4901         of class' fields that are removed.
4902         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
4903         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
4904         m_brig_repr_size fields.
4905
4906 2016-03-31  Martin Liska  <mliska@suse.cz>
4907
4908         PR hsa/70391
4909         * hsa-gen.c (hsa_function_representation::update_dominance): New
4910         function.
4911         (convert_addr_to_flat_segment): Likewise.
4912         (gen_hsa_memory_set): New alignment argument.
4913         (gen_hsa_ctor_assignment): Likewise.
4914         (gen_hsa_insns_for_single_assignment): Provide alignment
4915         to gen_hsa_ctor_assignment.
4916         (gen_hsa_insns_for_direct_call): Add new argument.
4917         (expand_lhs_of_string_op): New function.
4918         (expand_string_operation_builtin): Likewise.
4919         (expand_memory_copy): New function.
4920         (expand_memory_set): New function.
4921         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
4922         (convert_switch_statements): Change signature.
4923         (generate_hsa): Use a return value of the function.
4924         (pass_gen_hsail::execute): Do not call
4925         convert_switch_statements here.
4926         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
4927         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
4928         (hsa_function_representation::update_dominance): New function.
4929
4930 2016-03-31  Martin Liska  <mliska@suse.cz>
4931
4932         PR hsa/70391
4933         * hsa-brig.c (emit_directive_variable): Emit alignment
4934         according to hsa_symbol::m_align.
4935         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
4936         (dump_hsa_symbol): Dump alignment of HSA symbols.
4937         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
4938         (gen_hsa_addr_with_align): New function.
4939         (hsa_bitmemref_alignment): Use newly added function.
4940         (gen_hsa_insns_for_load): Likewise.
4941         (gen_hsa_insns_for_store): Likewise.
4942         (gen_hsa_memory_copy): New argument added.
4943         (gen_hsa_insns_for_single_assignment): Respect
4944         alignment for assignments processed via gen_hsa_memory_copy.
4945         (gen_hsa_insns_for_direct_call): Likewise.
4946         (gen_hsa_insns_for_return): Likewise.
4947         (gen_function_def_parameters): Set default alignment.
4948         * hsa.c (hsa_object_alignment): New function.
4949         (hsa_byte_alignment): Pasted function.
4950         * hsa.h (hsa_symbol::m_align): New field.
4951
4952 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
4953
4954         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
4955         scratch field for goto case.
4956
4957 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
4958
4959         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
4960
4961 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
4962
4963         PR target/70442
4964         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
4965         (scalar_chain::convert_insn): Call convert_op for reg
4966         moves to handle undefined registers.
4967
4968 2016-03-31  Nathan Sidwell  <nathan@acm.org>
4969
4970         PR c++/70393
4971         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
4972         Assert we don't want to move backwards.
4973
4974 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
4975
4976         PR target/70453
4977         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
4978
4979 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
4980
4981         PR rtl-optimization/70460
4982         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
4983         with operand from REG_LABEL_OPERAND, instead substitute
4984         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
4985         Don't do anything for REG_NON_LOCAL_GOTO jumps.
4986
4987 2016-03-31  Martin Liska  <mliska@suse.cz>
4988
4989         * passes.c (execute_one_pass): Do not call
4990         todo_after for a discarded function.
4991
4992 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
4993
4994         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
4995         (no_cost, infinite_cost): Initialize the new field.
4996         (get_computation_cost_at): Record setup cost.
4997         (determine_use_iv_cost_address): Skip cost computation for sub
4998         uses if we can estimate it without losing accuracy.
4999
5000 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5001
5002         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5003         estimates here.
5004         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5005         max_loop_iterations_int.
5006         (tree_unswitch_outer_loop): Likewise.
5007         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5008         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5009
5010 2016-03-30  Richard Biener  <rguenther@suse.de>
5011
5012         PR middle-end/70450
5013         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5014
5015 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5016
5017         PR target/70421
5018         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5019         in gen_blendm expander.
5020
5021 2016-03-30  Nick Clifton  <nickc@redhat.com>
5022
5023         PR target/62254
5024         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5025         case where we are already provided with an SImode SUBREG.
5026
5027 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5028
5029         PR target/70439
5030         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5031         conflict between DRAP register and __builtin_eh_return.
5032
5033 2016-03-30  Michael Matz  <matz@suse.de>
5034             Richard Biener  <rguenther@suse.de>
5035
5036         PR ipa/12392
5037         * ipa-polymorphic-call.c (struct type_change_info): Change
5038         speculative to an unsigned allowing to limit the work we do.
5039         (csftc_abort_walking_p): New inline function..
5040         (check_stmt_for_type_change): Limit the number of may-defs
5041         skipped for speculative devirtualization to
5042         max-speculative-devirt-maydefs.
5043         * params.def (max-speculative-devirt-maydefs): New param.
5044         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5045
5046 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5047
5048         PR target/63890
5049         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5050         and TARGET_MACHO.
5051
5052 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5053
5054         PR tree-optimization/59124
5055         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5056         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5057
5058 2016-03-29  Jeff Law  <law@redhat.com>
5059
5060         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5061
5062 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5063
5064         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5065         to HOST_WIDE_INT.
5066
5067 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5068
5069         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5070         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5071         gcrt0.o if linking dynamically.
5072
5073 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5074
5075         PR ipa/70283
5076         * ipa-devirt.c (methods_equal_p): New function.
5077         (compare_virtual_tables): Use it.
5078         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5079         * cgraphclones.c (clone_function_name_1): Use
5080         symbol_table::symbol_suffix_separator.
5081         * coverage.c (build_var): Likewise.
5082         * symtab.c (symbol_table::symbol_suffix_separator): New.
5083
5084 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5085
5086         PR rtl-optimization/70429
5087         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5088         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5089         mode != result_mode.
5090
5091         PR c++/70353
5092         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5093
5094         PR tree-optimization/70405
5095         * ssa-iterators.h (num_imm_uses): Add missing braces.
5096
5097 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5098
5099         PR rtl-optimization/68695
5100         * ira-color.c (allocno_copy_cost_saving): New.
5101         (improve_allocation): Use it.
5102
5103 2016-03-29  Richard Henderson  <rth@redhat.com>
5104
5105         PR middle-end/70355
5106         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5107
5108 2016-03-29  Richard Biener  <rguenther@suse.de>
5109
5110         PR middle-end/70424
5111         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5112         use alignment returned by get_pointer_alignment_1 if it is
5113         bigger than BITS_PER_UNIT.
5114         * builtins.c (get_pointer_alignment_1): Do not return true
5115         for alignment extracted from SSA info.
5116
5117 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5118
5119         * config/ft32/ft32.opt (mnodiv): New.
5120         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5121         * doc/invoke.texi (FT32 Options -mnodiv): New.
5122
5123 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5124
5125         PR target/70406
5126         * config/i386/i386.md (define_split, andn): Fix modes.
5127
5128 2016-03-26  Richard Biener  <rguenther@suse.de>
5129             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5130
5131         PR ipa/70366
5132         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5133         instead of
5134         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5135         as 2nd argument to cl_optimization_restore().
5136
5137 2016-03-25  Richard Henderson  <rth@redhat.com>
5138
5139         PR target/70120
5140         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5141         * config/aarch64/aarch64-protos.h: Declare it.
5142         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5143
5144 2016-03-25  Alan Modra  <amodra@gmail.com>
5145
5146         PR target/70052
5147         * config/rs6000/constraints.md (j): Simplify.
5148         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5149         decimal float 0.D.
5150         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5151         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5152          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5153         in all constraint alternatives.
5154         (movtd_64bit_nodm): Delete "j" constraint alternative.
5155
5156 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5157
5158         * tree-ssa-propagate.c: Enhance docs for
5159         SSA_PROP_NOT_INTERESTING.
5160
5161 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5162
5163         * doc/extend.texi: Fix typo in documentation to pure attribute.
5164
5165 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5166
5167         PR target/70319
5168         * config/pa/pa.md (bswapdi2): Use a scratch register.
5169
5170 2016-03-24  Richard Henderson  <rth@redhat.com>
5171
5172         PR middle-end/69845
5173         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5174         overflow.
5175
5176 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5177
5178         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5179         using ix86_expand_binary_operator instead of gen_andsi3.
5180
5181 2016-03-24  Richard Biener  <rguenther@suse.de>
5182
5183         PR tree-optimization/70396
5184         * tree-vect-stmts.c (vectorizable_comparison): Use
5185         get_vectype_for_scalar_type.
5186
5187 2016-03-24  Richard Biener  <rguenther@suse.de>
5188
5189         PR middle-end/70370
5190         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5191         with register bases.
5192
5193 2016-03-24  Richard Biener  <rguenther@suse.de>
5194
5195         PR tree-optimization/70372
5196         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5197         build_all_ones_cst to also handle vector types correctly.
5198
5199 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5200
5201         PR target/70381
5202         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5203         -mfloat128 here.
5204
5205 2016-03-23  Marek Polacek  <polacek@redhat.com>
5206
5207         PR c++/69884
5208         * doc/invoke.texi: Document -Wignored-attributes.
5209
5210 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5211
5212         PR tree-optimization/69042
5213         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5214         parameter from 30 to 40.
5215
5216 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5217
5218         PR tree-optimization/69042
5219         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5220         for use with constant offset stripped in base.
5221
5222 2016-03-23  Richard Biener  <rguenther@suse.de>
5223
5224         PR middle-end/70251
5225         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5226         mode compatibility check.
5227         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5228
5229 2016-03-23  Jeff Law  <law@redhat.com>
5230
5231         PR tree-optimization/64058
5232         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5233         CONFLICT_COUNT.
5234         (struct ssa_conflicts): Move up earlier in the file.
5235         (conflicts_, var_map_): New static variables.
5236         (initialize_conflict_count): New function to initialize the
5237         CONFLICT_COUNT field for each conflict pair.
5238         (compare_pairs): Lazily initialize the conflict count and use it
5239         as the first tie-breaker.
5240         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5241         and wipe conflicts_ and map_ around the call to qsort.  Remove
5242         special case for 2 coalesce pairs.
5243         * bitmap.c (bitmap_count_unique_bits): New function.
5244         (bitmap_count_bits_in_word): New function, extracted from
5245         bitmap_count_bits.
5246         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5247         * bitmap.h (bitmap_count_unique_bits): Declare it.
5248
5249 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5250
5251         PR target/69917
5252         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5253         transparent alias chain for decl assembler name.
5254         * config/sol2.c (solaris_assemble_visibility): Likewise.
5255
5256 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5257
5258         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5259         duration.
5260         (v10_fdivs): Likewise.
5261         (v10_fdivd): Likewise.
5262
5263 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5264
5265         PR driver/70132
5266         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5267         to not call fclose twice on file.
5268
5269 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5270
5271         PR tree-optimization/70354
5272         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5273         oprnd0 is wider than oprnd1 and there is a cast from the wider
5274         type to oprnd1, mask it with the mask of the narrower type.
5275
5276         PR target/70321
5277         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5278         Optimize TARGET_STV splitters, if high or low word of last argument
5279         is 0 or -1.
5280
5281 2016-03-22  Jeff Law  <law@redhat.com>
5282
5283         PR target/70232
5284         tree-ssa-threadbackward.c
5285         (fsm_find_control_statement_thread_paths): Correctly distinguish
5286         between old style jump threads vs FSM jump threads.
5287
5288 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5289
5290         PR target/70302
5291         * config/i386/i386.c (scalar_chain::convert_op): Support
5292         uninitialized register usage case.
5293
5294 2016-03-22  Richard Biener  <rguenther@suse.de>
5295
5296         PR middle-end/70251
5297         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5298         int...
5299         (capture::gen_transform): ... to change behavior when substituting
5300         a condition into cond or not-cond expr context.
5301         (dt_simplify::gen_1): Adjust.
5302         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5303         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5304         last change and instead change to
5305         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5306         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5307
5308 2016-03-22  Anthony Green  <green@moxielogic.com>
5309
5310         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5311         issue for moxiebox targets.
5312         (CC1PLUS_SPEC): Ditto.
5313
5314 2016-03-22  Richard Biener  <rguenther@suse.de>
5315
5316         PR middle-end/70333
5317         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5318         in the wide type.
5319
5320 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5321
5322         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5323
5324 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5325
5326         PR target/70325
5327         * config/i386/i386.c (def_builtin): Handle
5328         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5329         bits.
5330         (const struct builtin_description bdesc_special_args[]):
5331         Remove duplicate ISA bits.
5332
5333 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5334
5335         PR target/70329
5336         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5337         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5338         in a way that works also for AVX512BW.
5339
5340         PR target/70300
5341         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5342         instead of source if operands[1] is xmm16 and above and
5343         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5344         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5345
5346         PR c++/70295
5347         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5348         on assign if (*from_p) is a comparison, set it to
5349         TREE_NO_WARNING (*from_p).
5350
5351 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5352
5353         PR middle-end/70326
5354         * lra.c (restore_scratches): Ignore deleted insns.
5355
5356 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5357             Jakub Jelinek  <jakub@redhat.com>
5358
5359         PR tree-optimization/70317
5360         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5361         to HONOR_NANS.
5362
5363 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5364
5365         PR target/70327
5366         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5367         of ix86_expand_move.
5368         (movoi): Ditto.
5369         (movti): Use general_operand for operand 1 predicate.
5370
5371 2016-03-21  Martin Liska  <mliska@suse.cz>
5372
5373         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5374         insns.
5375         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5376
5377 2016-03-21  Martin Liska  <mliska@suse.cz>
5378
5379         PR ipa/70306
5380         * ipa-icf.c (sem_function::parse): Skip static
5381         constructors and destructors.
5382
5383 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5384
5385         PR target/70296
5386         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5387         function-like macro, peek following token(s) if it is followed
5388         by CPP_OPEN_PAREN token with optional padding in between, and
5389         if not, don't treat it like a macro.
5390
5391 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5392             Alexander Monakov  <amonakov@ispras.ru>
5393
5394         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5395         for the stabs debug format.
5396
5397 2016-03-21  Richard Biener  <rguenther@suse.de>
5398
5399         PR tree-optimization/70310
5400         * tree-vect-generic.c (expand_vector_condition): Fold the built
5401         condition.
5402
5403 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5404
5405         PR target/70293
5406         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5407         Block third alternative for AVX-512VL target,
5408
5409 2016-03-21  Martin Liska  <mliska@suse.cz>
5410
5411         PR hsa/70234
5412         * hsa-brig.c (emit_function_directives): Mark unemitted
5413         global variables for emission.
5414         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5415         (get_symbol_for_decl): Likewise.
5416         * hsa.h (struct hsa_symbol): New flag.
5417
5418 2016-03-21  Richard Biener  <rguenther@suse.de>
5419
5420         PR tree-optimization/70288
5421         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5422         we do not estimate unsimplified all-constant conditionals or
5423         switches as optimized away.
5424
5425 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5426
5427         PR rtl-optimization/69102
5428         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5429         when we have a readonly dependency context.
5430
5431 2016-03-18  Jeff Law  <law@redhat.com>
5432
5433         PR rtl-optimization/70263
5434         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5435         (update_equiv_regs): When trying to move a store to after the insn
5436         that sets the source of the store, make sure the store occurs after
5437         the insn that sets the source of the store.  When successful note
5438         the REG_EQUIV note created in the dump file.
5439
5440 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5441             Bernd Schmidt  <bschmidt@redhat.com>
5442
5443         * doc/extend.texi: Document more potential problems with basic asms.
5444
5445 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5446
5447         PR rtl-optimization/70278
5448         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5449         VOIDmode.
5450
5451 2016-03-18  Jason Merrill  <jason@redhat.com>
5452
5453         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5454
5455 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5456
5457         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5458         values to 128b regs.
5459
5460 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5461
5462         PR tree-optimization/70252
5463         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5464         boolean vector has a proper number of elements.
5465         (supportable_narrowing_operation): Likewise.
5466
5467 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5468
5469         PR ipa/70269
5470         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5471
5472 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5473
5474         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5475         instead of replace_rtx for DEBUG_INSNs.
5476
5477 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5478
5479         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5480         load type reservations.
5481
5482 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5483
5484         PR target/70188
5485         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5486         define_constraint for "Q" and "T" constraints.
5487
5488 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5489
5490         Tweak the pipeline model for Exynos M1
5491
5492         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5493         model.
5494
5495 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5496
5497         PR c/70264
5498         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5499         where one or both locations aren't within a line_map.
5500
5501 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5502
5503         PR driver/70192
5504         * opts.c (finish_options): Don't set flag_pie to the default if
5505         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5506         if it is -1.
5507
5508 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5509
5510         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5511         true as ALL_REGS argument to replace_rtx.
5512
5513 2016-03-17  Richard Biener  <rguenther@suse.de>
5514
5515         PR debug/70271
5516         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5517         last.
5518
5519 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5520
5521         PR target/70245
5522         * rtl.h (replace_rtx): Add ALL_REGS argument.
5523         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5524         equality and assert mode is the same, instead of just rtx pointer
5525         equality.
5526         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5527         true as ALL_REGS argument to replace_rtx.
5528
5529 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5530
5531         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5532         for boolean vector with vector mode only.
5533         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5534
5535 2016-03-17  Nick Clifton  <nickc@redhat.com>
5536
5537         PR target/70162
5538         * config/rx/rx.c (rx_print_integer): Print negative constants in
5539         decimal.
5540
5541 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5542
5543         PR target/70261
5544         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5545
5546 2016-03-16  Richard Henderson  <rth@redhat.com>
5547             Richard Biener  <rguenth@suse.de>
5548
5549         PR middle-end/70240
5550         PR middle-end/68215
5551         PR tree-opt/68714
5552         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5553         first operand as is_gimple_condexpr.
5554
5555         PR middle-end/70240
5556         PR middle-end/68215
5557         Revert r231575
5558         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5559         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5560         Do not gimplify the result.
5561         (do_unop): Adjust call to tree_vec_extract.
5562         (do_binop): Likewise.
5563         (do_compare): Likewise.
5564         (do_plus_minus): Likewise.
5565         (do_negate): Likewise.
5566         (expand_vector_condition): Likewise.
5567         (do_cond): Likewise.
5568
5569 2016-03-16  Richard Henderson  <rth@redhat.com>
5570
5571         PR target/70048
5572         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5573         (aarch64_classify_address): Use it.
5574         (aarch64_legitimize_address): Force all subexpressions of PLUS
5575         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5576
5577 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5578             Richard Biener  <rguenth@suse.de>
5579
5580         PR target/70245
5581         * rtlanal.c (replace_rtx): For REG, if from is a REG,
5582         return to even if only REGNO is equal, and assert
5583         mode is the same.
5584
5585 2016-03-11  Jeff Law  <law@redhat.com>
5586
5587         PR rtl-optimization/70224
5588         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
5589
5590 2016-03-16  Richard Henderson  <rth@redhat.com>
5591
5592         PR middle-end/70199
5593         * function.h (struct function): Add has_forced_label_in_static.
5594         * gimplify.c (force_labels_r): Set it.
5595         * lto-streamer-in.c (input_struct_function_base): Read it.
5596         * lto-streamer-out.c (output_struct_function_base): Write it.
5597         * tree-inline.c (has_label_address_in_static_1): Remove.
5598         (copy_forbidden): Remove fndecl parameter; test
5599         has_forced_label_in_static.
5600         (inline_forbidden_p): Update call to copy_forbidden.
5601         (tree_versionable_function_p): Likewise.
5602         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
5603         (chkp_versioning): Likewise.
5604         * tree-inline.h (copy_forbidden): Update decl.
5605
5606 2016-03-16  Marek Polacek  <polacek@redhat.com>
5607
5608         PR c/70093
5609         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
5610         function being thunked if the result type doesn't have fixed size.
5611         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
5612         doesn't have fixed size.
5613
5614 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
5615
5616         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
5617         reporting malformed loop nest.
5618
5619 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5620
5621         PR lto/70187
5622         * ipa-devirt.c (possible_polymorphic_call_targets): Move
5623         nodes.length () == 1 test to before first nodes[0] access.
5624
5625 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5626
5627         PR tree-optimization/68715
5628         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
5629         single_pred_p test.
5630
5631 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5632
5633         PR tree-optimization/68809
5634         * graphite-scop-detection.c (same_close_phi_node): Test if result types
5635         are the same.
5636
5637 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
5638             Sandra Loosemore  <sandra@codesourcery.com>
5639
5640         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
5641         on leaf attribute. Mention ELF interposition problems.
5642
5643 2016-03-16  Alan Modra  <amodra@gmail.com>
5644
5645         PR rtl-optimization/69195
5646         PR rtl-optimization/47992
5647         * ira.c (indirect_jump_optimize): Ignore artificial defs.
5648         Add comments.
5649
5650 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
5651
5652         PR bootstrap/69513
5653         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
5654
5655 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
5656
5657         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
5658
5659 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
5660
5661         PR rtl-optimization/70222
5662         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
5663         optimization if mode is different from result_mode, queue up masking
5664         of the result in outer_op.  Formatting fix.
5665
5666         PR middle-end/70239
5667         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
5668         of safe_grow.
5669
5670 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5671
5672         PR rtl-optimization/69032
5673         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
5674         looping backwards over basic block insns.
5675
5676 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5677
5678         PR target/66660
5679         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
5680         to non-speculative when propagating trap bits.
5681
5682 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5683
5684         PR rtl-optimization/63384
5685         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
5686         DEBUG_INSN_P insns.
5687
5688 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
5689
5690         PR target/64411
5691         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
5692         factored out from ...
5693         (sched_analyze_insn): ... here.
5694         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
5695         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
5696         get_implicit_reg_pending_clobbers in it.
5697         (setup_id_reg_sets): Use setup_id_implicit_regs.
5698         (deps_init_id): Ditto.
5699
5700 2016-03-15  Tom de Vries  <tom@codesourcery.com>
5701
5702         PR ipa/70161
5703         * cgraph.c (cgraph_node::get_body): Save, reset and restore
5704         dump_file_name.
5705         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
5706         execute_function_dump.
5707         (execute_one_pass): Don't dump function if it will be dumped after ipa
5708         transform.
5709
5710 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
5711
5712         * genrecog.c (match_pattern_2): If pred is NULL don't call
5713         safe_predicate_mode on it.
5714
5715 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
5716
5717         PR middle-end/70219
5718         * lra-constraints.c (delete_move_and_clobber): Change assertion
5719         to also allow dregno == 0.
5720
5721 2016-03-14  Richard Henderson  <rth@redhat.com>
5722
5723         PR tree-opt/68714
5724         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
5725         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
5726         (reassociate_bb): Use optimize_vec_cond_expr; avoid
5727         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
5728         on vectors.
5729
5730 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
5731
5732         PR target/70083
5733         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
5734         regs.
5735         (lra_create_live_ranges_1): initialize hard register biggest_mode to
5736         VOIDmode.
5737         * lra-constraints.c (split_reg): For hard regs, try to find the
5738         biggest single-register mode used in the function.
5739
5740 2016-03-14  Richard Biener  <rguenther@suse.de>
5741
5742         PR tree-optimization/56365
5743         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
5744         constants to compare against.
5745
5746 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
5747
5748         PR target/70098
5749         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
5750         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
5751         (define_split for the GPR case): Use int_reg_operand instead of
5752         gpc_reg_operand for the output.
5753
5754 2016-03-14  Tom de Vries  <tom@codesourcery.com>
5755
5756         PR tree-optimization/70045
5757         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
5758         create_empty_if_region_on_edge argument.
5759
5760 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
5761
5762         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
5763         (STACK_CHECK_PROTECT): Likewise.
5764         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
5765         (STACK_CHECK_PROTECT): Likewise.
5766         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
5767         (STACK_CHECK_PROTECT): Likewise.
5768         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
5769         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
5770         (STACK_CHECK_PROTECT): Likewise.
5771
5772 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
5773
5774         PR rtl-optimization/69307
5775         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
5776         registers in modes that span more than one register.
5777
5778 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
5779
5780         PR target/69614
5781         * lra-constraints.c (delete_move_and_clobber): New.
5782         (remove_inheritance_pseudos): Use it.
5783
5784 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
5785
5786         PR ada/70017
5787         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
5788         the libcall is LCT_THROW.
5789         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
5790         for the checking routine.
5791
5792 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5793
5794         PR target/70131
5795         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
5796         optimization if we have direct move.
5797         (roundu32<mode>2_fprs): Likewise.
5798
5799 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
5800
5801         PR target/70123
5802         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
5803         be rematerialized.
5804         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
5805         Arguments swapped.  All callers changed.  Take reg_renumber into
5806         account, and Calculate and compare register ranges for hard regs.
5807
5808 2016-03-11  Jeff Law  <law@redhat.com>
5809
5810         PR tree-optimization/70190
5811         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
5812         Handle cases where we can not extract the taken edge, even though we
5813         found a constant value.
5814
5815         PR tree-optimization/64058
5816         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
5817         (num_coalesce_pairs): Move up earlier in file.
5818         (find_coalesce_pair): Initialize the INDEX field for each pair
5819         discovered.
5820         (compare_pairs): No longer sort on the elements in each pair.
5821         Instead break ties with the index of the coalesce pair.
5822
5823 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5824
5825         PR target/70002
5826         * config/aarch64/aarch64-protos.h
5827         (aarch64_save_restore_target_globals): New prototype.
5828         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
5829         Call the above when popping pragma.
5830         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
5831         New function.
5832         (aarch64_set_current_function): Rewrite using the above.
5833
5834 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
5835
5836         PR tree-optimization/70177
5837         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
5838         (extract_ops_from_tree): ... this.  In the 2 argument
5839         overload remove _1 suffix.
5840         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
5841         (extract_ops_from_tree): ... this.
5842         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
5843         Adjust callers.
5844         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
5845         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
5846         extract_ops_from_tree instead of 2 operand one.
5847
5848 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
5849
5850         PR tree-optimization/70013
5851         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
5852         for constant-pool entries.
5853
5854 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
5855
5856         PR rtl-optimization/70174
5857         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
5858         followed by gen_lowpart on force_reg instead of just gen_lowpart.
5859
5860         PR tree-optimization/70169
5861         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
5862         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
5863         for unknown codes.
5864
5865 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
5866             Jakub Jelinek  <jakub@redhat.com>
5867
5868         PR target/70160
5869         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
5870         of uninitialized values.
5871
5872 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5873
5874         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
5875         define_expand.
5876         ("*trunctddd2"): New pattern definition.
5877         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
5878         TD->DD truncation.
5879
5880 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5881
5882         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
5883         definitions for BFP and DFP rounding modes.
5884         ("fixuns_truncdddi2", "fixuns_trunctddi2")
5885         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
5886         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
5887         ("fix_trunctf<mode>2"): Use the new constants instead of magic
5888         numbers.
5889
5890 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5891
5892         * config/s390/constraints.md: Adjust comment.
5893         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
5894         s390_decompose_addrstyle_without_index.
5895         * config/s390/predicates.md (shift_count_or_setmem_operand):
5896         Rename to setmem_operand.
5897         * config/s390/s390-protos.h
5898         (s390_decompose_shift_count): Rename to
5899         s390_decompose_addrstyle_without_index.
5900         * config/s390/s390.c (s390_decompose_shift_count)
5901         (s390_mem_constraint, print_shift_count_operand)
5902         (print_operand_address, print_operand): Rename
5903         s390_decompose_shift_count to
5904         s390_decompose_addrstyle_without_index and rename
5905         print_shift_count_operand to print_addrstyle_operand troughout the
5906         file.
5907         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
5908         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
5909         Rename shift_count_or_setmem_operand to setmem_operand.
5910         * config/s390/vx-builtins.md ("vec_insert<mode>")
5911         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
5912         nonmemory_operand.
5913
5914 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5915
5916         PR target/70168
5917         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
5918         Handle overlapping retval and newval.
5919
5920 2016-03-10  Nick Clifton  <nickc@redhat.com>
5921
5922         PR target/7044
5923         * config/aarch64/aarch64.c
5924         (aarch64_override_options_after_change_1): When forcing
5925         flag_omit_frame_pointer to be true, use a special value that can
5926         be detected if this function is called again, thus preventing
5927         flag_omit_leaf_frame_pointer from being forced to be false.
5928
5929 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5930
5931         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
5932         Set x_flag_omit_leaf_frame_pointer when handling
5933         -momit-leaf-frame-pointer.
5934
5935 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5936
5937         PR lto/69589
5938         * cgraph.c (cgraph_node::dump): Dump split_part and
5939         indirect_call_target.
5940         * cgraph.h (cgraph_node): Add indirect_call_target flag.
5941         * ipa.c (has_addr_references_p): Cleanup.
5942         (is_indirect_call_target_p): New.
5943         (walk_polymorphic_call_targets): Do not mark virtuals that may be
5944         called indirectly as local.
5945         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
5946
5947 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5948
5949         PR ipa/69630
5950         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
5951         on cxa_pure_virtual.
5952
5953 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5954
5955         PR lto/69589
5956         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
5957
5958 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5959
5960         PR lto/69589
5961         * tree.c (need_assembler_name_p): Only record main variant type names.
5962
5963 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
5964
5965         PR target/70113.
5966         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
5967         Always define to 0 or 1.
5968         (TARGET_FIX_ERR_A53_843419): New macro.
5969         * config/aarch64/aarch64-elf-raw.h
5970         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
5971         * config/aarch64/aarch64-linux.h: Likewise.
5972         * config/aarch64/aarch64.c
5973         (aarch64_override_options_after_change_1): Do not default
5974         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
5975         843419 is on.
5976         (aarch64_attributes): Handle fix-cortex-a53-843419.
5977         (aarch64_can_inline_p): Likewise.
5978         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
5979
5980 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
5981         Jakub Jelinek <jakub@redhat.com>
5982
5983         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
5984         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
5985         DECL_COMMONS if flag_unconstrained_commons is set.
5986         * tree-dfa.c (get_ref_base_and_extent): Likewise.
5987         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
5988         (funconstrained-commons): Document.
5989
5990 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
5991
5992         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
5993         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
5994
5995 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
5996
5997         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
5998         has a proper number of elements.
5999
6000 2016-03-10  Alan Modra  <amodra@gmail.com>
6001
6002         PR rtl-optimization/69195
6003         PR rtl-optimization/47992
6004         * ira.c (recorded_label_ref): Delete.
6005         (update_equiv_regs): Return void.
6006         (indirect_jump_optimize): New function.
6007         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6008         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6009         Delete update_regstat.
6010
6011 2016-03-10  Richard Biener  <rguenther@suse.de>
6012
6013         PR tree-optimization/70128
6014         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6015         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6016
6017 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6018
6019         PR tree-optimization/70152
6020         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6021         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6022
6023         PR target/70086
6024         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6025         instead of gen_sse2_loadlpd.
6026         * config/i386/sse.md (*vec_concatv2df): Rename to...
6027         (vec_concatv2df): ... this.
6028
6029         PR tree-optimization/70127
6030         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6031
6032 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6033
6034         PR c/68473
6035         PR c++/70105
6036         * diagnostic-show-locus.c (compatible_locations_p): New function.
6037         (layout::layout): Sanitize ranges using compatible_locations_p.
6038
6039 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6040
6041         PR c/68473
6042         PR c++/70105
6043         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6044         location_range param with three const expanded_locations * and a
6045         bool.
6046         (layout::layout): Replace call to
6047         rich_location::lazily_expand_location with get_expanded_location.
6048         Extract the range and perform location expansion here, passing
6049         the results to the layout_range ctor.
6050         * diagnostic.c (source_range::debug): Delete.
6051         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6052         of rich_location::get_expanded_location.
6053         * gcc-rich-location.c (get_range_for_expr): Delete.
6054         (gcc_rich_location::add_expr): Reimplement to avoid the
6055         rich_location::add_range overload that took a location_range,
6056         passing a location_t instead.
6057
6058 2016-03-09  Richard Biener  <rguenther@suse.de>
6059         Jakub Jelinek  <jakub@redhat.com>
6060
6061         PR tree-optimization/70138
6062         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6063         Also skip vect_double_reduction_def.
6064
6065 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6066
6067         PR target/70049
6068         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6069         if the operand is "m".
6070
6071 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6072
6073         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6074
6075 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6076
6077         * config/i386/i386.c (processor_target_table): Fix cost table
6078         intialization order for znver1.
6079
6080 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6081
6082         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6083         - becuase -> because.
6084         * ipa-reference.c (ignore_module_statics): Likewise.
6085         * cgraph.c (cgraph_node::get_body): Likewise.
6086         * ipa-inline.c (early_inliner): Likewise.
6087         * ipa-devirt.c (types_same_for_odr): Likewise.
6088         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6089         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6090
6091 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6092
6093         * tree-ssa-math-opts.c: Fix typo in comment.
6094
6095 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6096
6097         PR target/70110
6098         * config/i386/i386.c (scalar_chain::make_vector_copies,
6099         scalar_chain::convert_reg): Call end_sequence in between
6100         get_insns and emit_conversion_insns rather than after both
6101         calls.
6102
6103 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6104
6105         PR target/70064
6106         * config/i386/i386.h (machine_function): Add
6107         pc_thunk_call_expanded flag.
6108         (ix86_pc_thunk_call_expanded): New define.
6109         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6110         (*set_got): Rename insn pattern from set_got.
6111         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6112         * config/i386/i386.c (ix86_compute_frame_layout): Use
6113         ix86_pc_thunk_call_expanded to prevent red-zone.
6114
6115 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6116
6117         * hsa.h (hsa_get_ctor_statements): Declare.
6118         (hsa_get_dtor_statements): Likewise.
6119         (hsa_get_kernel_dispatch_type): Likewise.
6120         * hsa.c (hsa_get_ctor_statements): New function.
6121         (hsa_get_dtor_statements): Likewise.
6122         (hsa_get_kernel_dispatch_type): Likewise.
6123         * hsa-brig.c (hsa_cdtor_statements): Removed.
6124         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6125         hsa_get_dtor_statements.
6126         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6127         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6128
6129 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6130
6131         * config/arm/arm-cores.def (cortex-r8): New.
6132         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6133         * config/arm/arm-tune.md: Likewise.
6134         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6135
6136 2016-03-07  Martin Sebor  <msebor@redhat.com>
6137
6138         PR rtl-optimization/19705
6139         * doc/invoke.texi (Options That Control Optimization): Clarify
6140         -fno-branch-count-reg.
6141
6142 2016-02-26  Richard Biener  <rguenther@suse.de>
6143             Jeff Law  <law@redhat.com>
6144
6145         PR tree-optimization/69740
6146         * cfghooks.c (remove_edge): Request loop fixups if we delete
6147         an edge that might turn an irreducible loop into a natural
6148         loop.
6149         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6150         Move after definition of loops_state_clear.
6151
6152 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6153
6154         PR rtl-optimization/69052
6155         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6156         to CONST_WIDE_INT.
6157
6158 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6159
6160         PR tree-optimization/70116
6161         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6162         is_tm_ending stmts and ubsan/asan internal functions.
6163         (find_duplicate): Use it.  Don't test is_tm_ending here.
6164
6165 2016-03-07  Richard Biener  <rguenther@suse.de>
6166
6167         PR tree-optimization/70115
6168         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6169         (propagate_constants_for_unrolling): Use replace_uses_by.
6170
6171 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6172
6173         PR middle-end/69916
6174         * omp-low.c (struct oacc_loop): Add ifns.
6175         (new_oacc_loop_raw): Initialize it.
6176         (finish_oacc_loop): Clear mask & flags if no ifns.
6177         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6178         (oacc_loop_xform_loop): Add ifns arg & adjust.
6179         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6180
6181 2016-03-07  Richard Henderson  <rth@redhat.com>
6182
6183         PR rtl-opt/70061
6184         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6185         (insert_value_copy_on_edge): Likewise.
6186
6187 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6188
6189         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6190
6191 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6192
6193         PR target/62281
6194         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6195
6196 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6197
6198         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6199
6200 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6201
6202         Fix sseimul type attribute.
6203         * config/i386/znver1.md
6204         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6205         znver1_sseimul_avx256_load) : Fix the type attribute.
6206         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6207         pipe usage and latency.
6208
6209 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6210
6211         PR c++/70084
6212         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6213         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6214         to the right type.
6215
6216 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6217
6218         PR c/69973
6219         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6220
6221         PR rtl-optimization/69941
6222         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6223         the reg share its mode.
6224
6225 2016-03-04  Jeff Law  <law@redhat.com>
6226
6227         PR tree-optimization/69196
6228         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6229         If the both SSA_NAMEs are anonymous, then consider them unassociated
6230         and include the PHI in the statement count.
6231
6232 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6233
6234         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6235         construct in oacc routine.  Check for oacc region in oacc routine.
6236
6237 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6238
6239         PR target/70062
6240         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6241         2016-02-22 changes, instead don't recurse if RECUR is already true.
6242         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6243         to pass true to the new argument.
6244         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6245
6246         PR target/70059
6247         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6248         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6249         fixes.
6250         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6251
6252 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6253
6254         PR rtl-optimization/57676
6255         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6256         with flag_checking.
6257
6258 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6259
6260         * tree-vect-patterns.c (search_type_for_mask): Handle
6261         comparison of booleans.
6262
6263 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6264
6265         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6266         Fix @xref usage.
6267
6268         PR debug/69947
6269         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6270         all other ops that have dw_val_class_die_ref operands,
6271         and DW_OP_GNU_entry_value.
6272
6273 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6274
6275         PR rtl-optimization/69904
6276         * config/arm/arm.c (arm_cannot_copy_insn_p):
6277         Return true for load-exclusive instructions.
6278
6279 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6280
6281         PR target/70021
6282         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6283         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6284         the pattern no matter if it is used just by non-pattern, pattern
6285         or mix thereof.
6286         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6287         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6288         oprnd1 def_stmt is in pattern, don't look through it.
6289
6290 2016-03-03  Marek Polacek  <polacek@redhat.com>
6291
6292         PR middle-end/70050
6293         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6294
6295 2016-03-03  Martin Liska  <mliska@suse.cz>
6296
6297         PR tree-optimization/70043
6298         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6299         previous statement if we see a debug statement.
6300
6301 2016-03-03  Richard Biener  <rguenther@suse.de>
6302
6303         PR tree-optimization/55936
6304         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6305         parameter and guard unsafe equivalence use.
6306         (vrp_evaluate_conditional_warnv_with_ops): Always use
6307         safe equivalences but not via the quadratic compare_names
6308         helper.
6309
6310 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6311
6312         PR target/70014
6313         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6314         for operand 1 to s_register_operand. Change predicate for operand
6315         2 to arm_not_immediate_operand.
6316
6317 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6318
6319         * doc/tm.texi: Regenerated.
6320
6321 2016-03-02  Richard Henderson  <rth@redhat.com>
6322
6323         PR rtl-opt/67145
6324         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6325         simplification when all args are positive non-fixed registers.
6326
6327 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6328
6329         * target.def (lra_p): Specify that new ports should use LRA.
6330
6331 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6332
6333         PR libgomp/69555
6334         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6335         gimplify_type_sizes the type they refer to.
6336         (omp_notice_variable): Handle reference vars to VLAs.
6337         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6338         reference to VLA decls in the second pass instead of first pass.
6339
6340 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6341
6342         PR tree-optimization/68659
6343         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6344         new_expr == NULL_TREE.
6345         (get_new_name): Handle ADDR_EXPR.
6346
6347 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6348
6349         PR rtl-optimization/69052
6350         * loop-invariant.c (canonicalize_address): New function.
6351         (inv_can_prop_to_addr_use): Check validity of address expression
6352         which is canonicalized by above function.
6353
6354 2016-03-02  Alan Modra  <amodra@gmail.com>
6355
6356         PR ipa/69990
6357         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6358         larger alignment.
6359
6360 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6361
6362         PR target/70028
6363         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6364         (*movhi_internal): Put mask moves from and to memory separately
6365         from moves from/to GPRs.
6366
6367 2016-03-02  Richard Biener  <rguenther@suse.de>
6368
6369         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6370         GENERIC expressions in GIMPLE.
6371
6372 2016-03-02  Richard Biener  <rguenther@suse.de>
6373
6374         * config/i386/i386.c (type_natural_mode): Fix typo.
6375
6376 2016-03-02  Nick Clifton  <nickc@redhat.com>
6377
6378         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6379
6380 2016-03-02  Richard Biener  <rguenther@suse.de>
6381             Uros Bizjak  <ubizjak@gmail.com>
6382
6383         PR target/67278
6384         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6385
6386 2016-03-02  Richard Biener  <rguenther@suse.de>
6387
6388         PR middle-end/67278
6389         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6390
6391 2016-03-02  Marek Polacek  <polacek@redhat.com>
6392
6393         PR c/67854
6394         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6395         "is promoted to" warning.
6396
6397 2016-03-01  DJ Delorie  <dj@redhat.com>
6398
6399         * config.gcc: Deprecate mep-*.
6400
6401 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6402
6403         PR middle-end/70025
6404         * lra-constraints.c (regno_val_use_in): New.
6405         (match_reload): Use it instead of regno_use_in.
6406
6407 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6408
6409         PR rtl-optimization/70007
6410         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6411         references present in REG_EQUAL notes attached to non-SET patterns.
6412
6413 2016-03-01  Jeff Law  <law@redhat.com>
6414
6415         PR tree-optimization/69196
6416         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6417         Appropriately clamp the number of statements to copy when the
6418         thread path does not traverse a loop backedge.
6419
6420         PR tree-optimization/69196
6421         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6422         Do count some PHIs in the thread path against the insn count.  Decrease
6423         final statement count by one as the control statement in the last
6424         block will get removed.  Remove special cased code for handling PHIs
6425         in the last block.
6426
6427 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6428
6429         PR target/70027
6430         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6431         asm dialect alternatives to explicit GOTPCREL calls.
6432
6433 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6434
6435         PR ada/70017
6436         * ira.c (do_reload): Issue warning for generic stack checking here...
6437         * reload1.c (reload): ...instead of here and streamline it.
6438
6439 2016-03-01  Nick Clifton  <nickc@redhat.com>
6440
6441         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6442
6443 2016-03-01  Richard Biener  <rguenther@suse.de>
6444
6445         PR tree-optimization/69983
6446         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6447         types and fall back to operand_equal_p.
6448
6449 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6450
6451         Revert
6452         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6453
6454         * config/s390/constraints.md ("jm8"): New constraint.
6455         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6456         predicate.
6457         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6458         into ...
6459         ("*setmem_long<setmem_and>"): New pattern.
6460         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6461         into ...
6462         ("*setmem_long_31z<setmem_and>"): New pattern.
6463         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6464         New substitution rules with the required attributes.
6465
6466
6467 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6468
6469         Revert
6470         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6471
6472         * gensupport.c (process_substs_on_one_elem): Split loop to
6473         complete mark_operands_used_in_match_dup on all expressions in the
6474         vector first.
6475         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6476         and remove function.
6477
6478 2016-03-01  Richard Biener  <rguenther@suse.de>
6479
6480         PR middle-end/70022
6481         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6482         vector BIT_FIELD_REF extract.
6483
6484 2016-03-01  Richard Biener  <rguenther@suse.de>
6485
6486         PR tree-optimization/69994
6487         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6488
6489 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6490
6491         PR tree-optimization/69956
6492         * tree-vect-stmts.c (supportable_widening_operation): Support
6493         multi-step conversion of boolean vectors.
6494         (supportable_narrowing_operation): Likewise.
6495
6496 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6497
6498         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6499         anymore.
6500
6501 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6502
6503         * config/s390/subst.md (DSI_VI): New mode iterator.
6504         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6505         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6506         the insn definition.
6507         ("*vec_set<mode>"): Change predicate and add alternative to
6508         support only either register or const_int operands as element
6509         selector.
6510         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6511         operands.
6512         ("vec_extract<mode>"): New expander.
6513         ("*vec_extract<mode>"): New insn definition supporting reg and
6514         const_int element selectors.
6515         ("*vec_extract<mode>_plus"): New insn definition supporting
6516         reg+const_int element selectors.
6517         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6518         following expander+insn definition.
6519         ("<vec_shifts_name><mode>3"): New expander.
6520         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6521
6522 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6523
6524         * config/s390/s390.md ("*tabort_1"): Change predicate to
6525         nonmemory_operand.  Add a second alternative to cover
6526         register as well as const int operands.
6527         ("*tabort_1_plus"): New pattern definition.
6528
6529 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6530
6531         * config/s390/s390.md ("*ashrdi3_cc_31")
6532         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6533         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6534         Merge insn definitions into ...
6535         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6536         New pattern definition.
6537         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6538         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6539         ("*ashr<mode>3_and"): Merge insn definitions into ...
6540         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6541         New pattern definition.
6542         * config/s390/subst.md ("addr_style_op_cc_subst")
6543         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6544         substitutions patterns plus attributes.
6545         Add ashiftrt to SUBST iterator.
6546
6547 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6548
6549         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6550         op2 to nonmemory_operand.
6551         ("*<shift>di3_31", "*<shift>di3_31_and"):
6552         Merge into single pattern definition ...
6553         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6554         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6555         pattern definition ...
6556         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6557         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6558         iterator.
6559
6560 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6561
6562         * config/s390/predicates.md (const_int_6bitset_operand): New
6563         predicate.
6564         * config/s390/s390.md: Include subst.md.
6565         ("rotl<mode>3"): New expander.
6566         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6567         ...
6568         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6569         * config/s390/subst.md: New file.
6570
6571 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6572
6573         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6574         Remove RRR type.  It doesn't really exist.
6575         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6576         attributes.
6577         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6578         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6579         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6580         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6581         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
6582         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
6583         `enabled' attribute.
6584
6585 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6586
6587         * gensupport.c (process_substs_on_one_elem): Split loop to
6588         complete mark_operands_used_in_match_dup on all expressions in the
6589         vector first.
6590         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6591         and remove function.
6592
6593 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6594
6595         PR target/69706
6596         * config/sparc/sparc.c (NWORDS_UP): Rename to...
6597         (CEIL_NWORDS): ...this.  Use CEIL macro.
6598         (compute_fp_layout): Adjust to above renaming.
6599         (function_arg_union_value): Likewise.
6600         (sparc_arg_partial_bytes): Likewise.
6601         (sparc_function_arg_advance): Likewise.
6602
6603 2016-02-29  Jeff Law  <law@redhat.com>
6604
6605         PR tree-optimization/70005
6606         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
6607         where an object with a boolean range is compared against a value
6608         outside [0..1].
6609
6610         PR tree-optimization/69999
6611         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
6612         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
6613         loop cleanups.
6614
6615 2016-02-29  Richard Biener  <rguenther@suse.de>
6616
6617         PR tree-optimization/69994
6618         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
6619         (get_unary_op): Look through nop conversions.
6620         (ops_equal_values_p): New function, look for equality diregarding
6621         nop conversions.
6622         (eliminate_plus_minus_pair): Use ops_equal_values_p
6623         (repropagate_negates): Do not use get_unary_op here.
6624
6625 2016-02-29  Martin Liska  <mliska@suse.cz>
6626
6627         * system.h: Poison ENABLE_CHECKING macro.
6628
6629 2016-02-29  Martin Liska  <mliska@suse.cz>
6630
6631         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
6632         is presented in dump flags.
6633         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6634         (hsa_regalloc): Likewise.
6635
6636 2016-02-19  Richard Biener  <rguenther@suse.de>
6637
6638         PR tree-optimization/69980
6639         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
6640         permutation of those we need to keep.
6641
6642 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6643
6644         PR target/69706
6645         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
6646         (NWORDS_UP): ...this
6647         (init_cumulative_args): Minor tweaks.
6648         (sparc_promote_function_mode): Likewise.
6649         (scan_record_type): Delete.
6650         (traverse_record_type): New function template.
6651         (classify_data_t): New structure type.
6652         (classify_registers): New inline function.
6653         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
6654         exhausted.  Instantiate traverse_record_type on classify_registers and
6655         deal with the case of a structure passed in slot #15 with no FP field
6656         in the first word.
6657         (assign_data_t): New structure type.
6658         (compute_int_layout): New static function.
6659         (compute_fp_layout): Likewise.
6660         (count_registers): New inline function.
6661         (assign_int_registers): New static function.
6662         (assign_fp_registers): Likewise.
6663         (assign_registers): New inline function.
6664         (function_arg_record_value_1): Delete.
6665         (function_arg_record_value_2): Likewise.
6666         (function_arg_record_value_3): Likewise.
6667         (function_arg_record_value): Adjust to above changes.  Instantiate
6668         traverse_record_type on count_registers to first count the number of
6669         registers to be used and then on assign_registers to assign them.
6670         (function_arg_union_value): Adjust to above renaming.
6671         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
6672         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
6673         case of a structure passed in slot #15
6674         (sparc_function_arg_advance): Likewise.
6675         (function_arg_padding): Minor tweak.
6676
6677 2016-02-29  Richard Biener  <rguenther@suse.de>
6678
6679         PR tree-optimization/69720
6680         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
6681         the adjustment_def path for possibly vectorized defs.
6682         (vect_create_epilog_for_reduction): Handle vectorized initial
6683         defs properly.
6684
6685 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
6686
6687         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
6688
6689 2016-02-27  Jeff Law  <law@redhat.com>
6690
6691         Revert
6692         2016-02-26  Richard Biener  <rguenther@suse.de>
6693                     Jeff Law  <law@redhat.com>
6694
6695         PR tree-optimization/69740
6696         * cfghooks.c (remove_edge): Request loop fixups if we delete
6697         an edge that might turn an irreducible loop into a natural
6698         loop.
6699
6700 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
6701
6702         PR rtl-optimization/69896
6703         * tree-vect-generic.c (get_compute_type): Avoid single element
6704         vector types.
6705
6706 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
6707
6708         Rename the AArch64 tuning option and related functions to enable the
6709         Newton series for the reciprocal square root to reflect its
6710         approximative characteristic.
6711
6712         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
6713         function to "aarch64_emit_approx_rsqrt".
6714         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
6715         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
6716         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
6717         (xgene1_tunings): Likewise.
6718         (use_rsqrt_p): Likewise.
6719         (aarch64_emit_swrsqrt): Use new function name.
6720         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
6721         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
6722         text explaining this option.
6723         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
6724
6725 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
6726
6727         PR target/69969
6728         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
6729         complain about -mallow-movmisalign without -mvsx if
6730         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
6731
6732 2016-02-26  Joel Sherrill  <joel@rtems.org>
6733
6734         * config.gcc: Add x86_64-*-rtems*.
6735         * gcc/config/i386/rtems-64.h: New file.
6736
6737 2016-02-26  Joel Sherrill  <joel@rtems.org>
6738
6739         * config.gcc: Add aarch64-*-rtems*.
6740         * gcc/config/aarch64/rtems.h: New file.
6741
6742 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
6743
6744         PR target/69946
6745         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
6746         shift amount using %h.  Add comment.
6747
6748 2016-02-26  Richard Biener  <rguenther@suse.de>
6749             Jeff Law  <law@redhat.com>
6750
6751         PR tree-optimization/69740
6752         * cfghooks.c (remove_edge): Request loop fixups if we delete
6753         an edge that might turn an irreducible loop into a natural
6754         loop.
6755
6756 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6757
6758         PR middle-end/69920
6759         * tree-sra.c (sra_modify_assign): Do not remove loads of
6760         uninitialized aggregates to SSA_NAMEs.
6761
6762 2016-02-26  Richard Henderson  <rth@redhat.com>
6763
6764         PR target/69709
6765         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
6766         pseudo in case the target rtx matches the source of the left
6767         shift.
6768
6769 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6770
6771         PR hsa/69568
6772         * hsa.h (hsa_type_packed_p): Declare.
6773         * hsa.c (hsa_type_packed_p): New function.
6774         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
6775         loads.
6776         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
6777         * hsa-brig.c (emit_basic_insn): Likewise.
6778
6779 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6780
6781         pr hsa/69674
6782         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
6783         pointers.
6784         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
6785
6786 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6787
6788         * hsa.h (is_a_helper): New overload for hsa_op_immed for
6789         hsa_op_with_type operands.
6790         (hsa_unsigned_type_for_type): Declare.
6791         * hsa.c (hsa_unsigned_type_for_type): New function.
6792         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
6793         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
6794         the finalizer.  Do not emit extra move.
6795
6796 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6797
6798         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
6799         atomic operations in private segment.
6800
6801 2016-02-26  Martin Jambor  <mjambor@suse.cz>
6802
6803         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
6804         statements to wi->info.  Also disallow omp simd constructs.
6805         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
6806         for not gridifying.  Dump special string for omp_for.
6807
6808 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6809
6810         PR target/69245
6811         * config/aarch64/aarch64.c (aarch64_set_current_function):
6812         Save/restore target globals when switching to
6813         target_option_default_node.
6814
6815 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6816
6817         PR target/69613
6818         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
6819         Return 0 if !SHIFT_COUNT_TRUNCATED.
6820
6821 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
6822             Eric Botcazou  <ebotcazou@adacore.com>
6823
6824         PR rtl-optimization/69891
6825         * dse.c (scan_insn): If we can't figure out memset arguments
6826         or they are non-constant, call clear_rhs_from_active_local_stores.
6827
6828 2016-02-26  Martin Liska  <mliska@suse.cz>
6829
6830         * doc/extend.texi: Mention clog10, clog10f an clog10l
6831         in Builtins section.
6832
6833 2016-02-26  Martin Liska  <mliska@suse.cz>
6834
6835         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
6836         CHECKING_P.
6837         (resolve_args_picking_1): Likewise.
6838         * dwarf2out.h (struct GTY): Likewise.
6839
6840 2016-02-26  Martin Liska  <mliska@suse.cz>
6841
6842         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
6843         with flag_checking.
6844         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
6845
6846 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
6847             Martin Liska  <mliska@suse.cz>
6848
6849         * doc/install.texi: Mention --enable-valgrind-annotations.
6850
6851 2016-02-26  Richard Biener  <rguenther@suse.de>
6852
6853         PR tree-optimization/69551
6854         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
6855         looking through aliases adjust DECL_PT_UID to refer to the
6856         ultimate alias target.
6857
6858 2016-02-25  Martin Liska  <mliska@suse.cz>
6859
6860         PR middle-end/69919
6861         * alloc-pool.c (after_memory_report): New variable.
6862         * alloc-pool.h (base_pool_allocator ::release): Do not use
6863         the infrastructure if after_memory_report.
6864         * toplev.c (toplev::main): Mark after memory report.
6865
6866 2016-02-25  Richard Biener  <rguenther@suse.de>
6867
6868         PR tree-optimization/48795
6869         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
6870
6871 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
6872
6873         PR driver/68463
6874         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
6875         offloading is enabled and -fopenacc or -fopenmp is specified.
6876         (CRTOFFLOADEND): Likewise.
6877         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
6878         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
6879         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
6880         (offload_objects_file_name): New static var.
6881         (tool_cleanup): Remove offload_objects_file_name file.
6882         (find_offloadbeginend): Replace with ...
6883         (find_crtoffloadtable): ... this.
6884         (run_gcc): Remove offload_argc and offload_argv.
6885         Get offload_objects_file_name from -foffload-objects=... option.
6886         Read names of object files with offload from this file, pass them to
6887         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
6888         don't pass offloadbegin and offloadend to the linker.  Don't pass
6889         offload non-LTO files to the linker, because now they're not claimed.
6890
6891 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
6892
6893         PR ipa/69630
6894         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6895         on builtin_unreachable.
6896
6897 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
6898
6899         PR rtl-optimization/69896
6900         * regcprop.c: Include cfgrtl.h.
6901         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
6902         than remembered mode, either delete it (if noop_move_p), or
6903         treat like copy_p but not noop_p instruction.
6904
6905 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
6906
6907         PR debug/69705
6908         * dwarf2out.c (gen_variable_die): Work around buggy LTO
6909         - allow NULL decl for Fortran DW_TAG_common_block variables.
6910
6911 2016-02-24  Jason Merrill  <jason@redhat.com>
6912
6913         * common.opt (flifetime-dse): Add -flifetime-dse=1.
6914
6915 2016-02-24  Richard Biener  <rguenther@suse.de>
6916             Jakub Jelinek  <jakub@redhat.com>
6917
6918         PR middle-end/69760
6919         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
6920         conditionally executed ops to well-defined overflow behavior.
6921
6922 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
6923
6924         PR middle-end/69915
6925         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
6926         elements.
6927
6928 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6929
6930         PR rtl-optimization/69886
6931         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
6932         argument.  Use it when checking validity of set instructions.
6933         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
6934         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
6935         callsite.
6936         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
6937         * store-motion.c (find_moveable_store): Update
6938         can_assign_to_reg_without_clobbers_p callsite.
6939
6940 2016-02-24  Richard Biener  <rguenther@suse.de>
6941
6942         PR middle-end/68963
6943         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
6944         bogus check.
6945         (record_nonwrapping_iv): Do not fall back to the low/high bound
6946         for non-constant IV bases if the stmt is not always executed.
6947
6948 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6949
6950         * config/arm/arm-cores.def (cortex-a32): New entry.
6951         * config/arm/arm-tables.opt: Regenerate.
6952         * config/arm/arm-tune.md: Regenerate.
6953         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
6954         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
6955         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
6956         for -mcpu and -mtune.
6957
6958 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6959
6960         PR target/69875
6961         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
6962         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
6963         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
6964         (atomic_loaddi_1): Delete.
6965         (atomic_loaddi): Rewrite expander using the above changes.
6966
6967 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
6968
6969         PR c/69918
6970         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
6971         2 to 3.
6972
6973 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
6974             Richard Biener  <rguenth@suse.de>
6975
6976         PR middle-end/69909
6977         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
6978         set_mem_attributes if tem is SSA_NAME which got expanded
6979         as a MEM.
6980
6981 2016-02-24  Richard Biener  <rguenther@suse.de>
6982
6983         PR tree-optimization/69907
6984         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
6985         end of permutations for BB vectorization.
6986
6987 2016-02-24  Christian Bruel  <christian.bruel@st.com>
6988
6989         * config/arm/arm-c.c (arm_option_override): Initialize
6990         target_option_current_node.
6991         * config/arm/arm.c (arm_pragma_target_parse): Replace
6992         build_target_option_node call by target_option_current_node.
6993         Set target_option_current_node.
6994         Fix comments.
6995
6996 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
6997
6998         PR target/69810
6999         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7000         define_insn_and_split to define_insn.
7001         (zero_extendqi<mode>2_dot2): Same.
7002         (extendqi<mode>2_dot): Same.
7003         (extendqi<mode>2_dot2): Same.
7004
7005 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7006
7007         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7008         and add bypass for AES{D,E} and AESMC pairs.
7009         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7010         and AESMC pairs.
7011
7012 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7013
7014         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7015         series for reciprocal square root in Exynos M1.
7016
7017 2016-02-23  Martin Sebor  <msebor@redhat.com>
7018
7019         PR c/69759
7020         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7021         __builtin_alloca_with_align.
7022
7023 2016-02-23  Richard Henderson  <rth@redhat.com>
7024
7025         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7026         (ix86_register_pragmas): Remove __seg_tls.
7027         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7028         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7029         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7030         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7031         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7032         * doc/extend.texi (__seg_tls): Remove item.
7033
7034 2016-02-23  Richard Biener  <rguenther@suse.de>
7035
7036         * alloc-pool.h (struct allocation_object): Make id member
7037         conditional on CHECKING_P again.
7038         (get_instance): Adjust.
7039         (base_pool_allocator): Likewise.
7040
7041 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7042
7043         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7044         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7045         zero.
7046         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7047         flag_openacc.
7048         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7049
7050 2016-02-23  Richard Biener  <rguenther@suse.de>
7051
7052         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7053         * bitmap.h (struct bitmap_usage): Likewise.
7054         (bitmap_move): Declare.
7055         * bitmap.c (register_overhead): Take size_t argument.
7056         (bitmap_move): New function.
7057         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7058         to properly account overhead.
7059         * tree.c (free_node): Use tree_size.
7060
7061 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7062
7063         PR c++/69902
7064         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7065         when inverting comparison.
7066
7067         PR c/69900
7068         * common.opt (Wunreachable-code): Add Warning flag.
7069
7070 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7071             Jakub Jelinek  <jakub@redhat.com>
7072
7073         PR c/69911
7074         * cgraphunit.c (check_global_declaration): Check main_input_filename
7075         and DECL_SOURCE_FILE are not NULL.
7076
7077 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7078
7079         PR tree-optimization/69666
7080         * tree-sra.c (sra_modify_assign): Do not attempt to create
7081         default_def replacements for unscalarizable regions.
7082
7083 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7084
7085         PR c/28901
7086         * cgraphunit.c (check_global_declaration): Check level of
7087         warn_unused_const_variable and main_input_filename.
7088         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7089         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7090         (-Wunused-const-variable): Explain levels 1 and 2.
7091
7092 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7093
7094         PR target/69888
7095         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7096         identical arguments.  Formatting and spelling fixes.
7097
7098         PR target/69885
7099         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7100         be specified.
7101
7102         PR target/69894
7103         PR target/69895
7104         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7105         and m68k-devices.def.
7106         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7107         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7108
7109 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7110
7111         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7112         and HImode registers.
7113
7114 2016-02-22  Richard Biener  <rguenther@suse.de>
7115
7116         PR tree-optimization/69882
7117         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7118         preserve permutations present because of gaps.
7119         (vect_supported_load_permutation_p): Always continue checking
7120         permutations after vect_attempt_slp_rearrange_stmts.
7121
7122 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7123
7124         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7125         min_profitable_estimate, rather than min_profitable_iters.
7126
7127 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7128
7129         PR target/69885
7130         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7131         SImode for last match_operand.
7132
7133 2016-02-22  Martin Liska  <mliska@suse.cz>
7134
7135         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7136         return bitsize - 1 as the return value.
7137
7138 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7139
7140         PR target/69806
7141         PR target/54089
7142         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7143         Handle negative shift counts.
7144         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7145         force_reg on the shift constant.
7146         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7147         (lshrsi3_d): Handle negative shift counts.
7148
7149 2016-02-22  Richard Biener  <rguenther@suse.de>
7150             Tom de Vries  <tom@codesourcery.com>
7151
7152         * graph.c: Include dumpfile.h.
7153         (print_graph_cfg): Split into three overloads.
7154         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7155
7156 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7157
7158         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7159         dump-fn.
7160
7161 2016-02-22  Richard Biener  <rguenther@suse.de>
7162
7163         PR ipa/37448
7164         * ipa-inline-transform.c (inline_call): When not updating
7165         overall summaries adjust self size by the growth estimate.
7166         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7167         hash-set, do not update overall summaries here.  Renamed from ...
7168         (inline_to_all_callers): ... this which is now wrapping the
7169         above and performing delayed overall summary update.
7170         (early_inline_small_functions): Delay updating of the overall
7171         summary.
7172
7173 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7174
7175         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7176         variable.
7177
7178 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7179
7180         PR driver/69805
7181         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7182         :%* in %:gt() argument.
7183         (greater_than_spec_func): Adjust for expecting only numbers,
7184         if there are more than two numbers, compare the last two.
7185
7186 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7187
7188         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7189         -Wnarrowing with -std.
7190
7191 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7192
7193         PR c++/69851
7194         * expr.c (store_field): Don't use bit-field path if exp is
7195         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7196         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7197         and the assignment can be performed by bitwise copy.  Formatting
7198         fix.
7199
7200         PR middle-end/69838
7201         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7202         call copy_reg_eh_region_note_forward on before and/or after sequences
7203         and remove note from insn if it no longer can throw.
7204
7205         PR target/69820
7206         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7207         if TARGET_AVX512BW.
7208
7209 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7210
7211         * config/s390/vector.md: Add missing commutative operand markers
7212         to the patterns which qualify for one.
7213         * config/s390/vx-builtins.md: Likewise.
7214
7215 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7216
7217         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7218         types to mode iterators.
7219         (vec_double): ... and mode attribute.
7220         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7221
7222 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7223
7224         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7225         Change the predicate of op2 from nonimmediate to general and let
7226         reload fix it if necessary.
7227
7228 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7229
7230         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7231
7232 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7233
7234         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7235         mode.
7236
7237 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7238
7239         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7240         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7241         * config/s390/s390.md ("movstr<P:mode>"): Call
7242         s390_expand_vec_movstr.
7243
7244 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7245
7246         * config/s390/s390.md: Add missing output modifier for operand 1
7247         to print it as address properly.
7248
7249 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7250
7251         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7252         * config/s390/2964.md: New file.
7253         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7254         of insn grouping attributes depending on the CPU level.
7255         (s390_get_unit_mask): New function.
7256         (s390_sched_score): Remove the OOO from the scheduling macros.
7257         Add loop to calculate a score for the instruction mix.
7258         (s390_sched_reorder): Likewise plus improve debug output.
7259         (s390_sched_variable_issue): Rename macros as above.  Calculate
7260         the unit distances after actually scheduling an insn.  Improve
7261         debug output.
7262         (s390_sched_init): Clear last_scheduled_unit_distance array.
7263         * config/s390/s390.md: Include 2964.md.
7264
7265 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7266
7267         PR target/69671
7268         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7269         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7270         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7271         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7272         *avx512f_<code>v8div16qi2_mask_1): New insns.
7273
7274 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7275
7276         PR target/68404
7277         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7278         2016-02-09 change.
7279
7280         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7281         earlyclobber from target.  Use wF constraint for fused memory
7282         address.
7283         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7284
7285 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7286             Martin Liska  <mliska@suse.cz>
7287
7288         PR sanitizer/69863
7289         * cfgexpand.c (asan_sanitize_stack_p): New function.
7290         (partition_stack_vars): Use the function.
7291         (expand_stack_vars): Likewise.
7292         (defer_stack_allocation): Likewise.
7293         (expand_used_vars): Likewise.
7294
7295 2016-02-18  Richard Biener  <rguenther@suse.de>
7296
7297         PR middle-end/69553
7298         * fold-const.c (operand_equal_p): Properly compare offsets for
7299         IMAGPART_EXPR and ARRAY_REF.
7300
7301 2016-02-18  Nick Clifton  <nickc@redhat.com>
7302
7303         PR target/62254
7304         PR target/69610
7305         * config/arm/arm.c (arm_option_override_internal): Disable
7306         interworking if the target does not support thumb instructions.
7307         (arm_reload_in_hi): Handle the case where a register to register
7308         move needs reloading because there is no simple pattern to handle
7309         it.
7310         (arm_reload_out_hi): Likewise.
7311
7312 2016-02-18  Richard Biener  <rguenther@suse.de>
7313
7314         PR middle-end/69854
7315         * match.pd: Don't use fold_binary or fold_unary for folding
7316         constants.
7317
7318 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7319
7320         PR c++/69850
7321         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7322         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7323         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7324         warn on gimple_no_warning_p statements.
7325
7326 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7327
7328         * doc/extend.texi (C++ Attributes): Correct description of
7329         warn_unused type attribute.
7330
7331 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7332
7333         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7334         correct instruction.
7335
7336 2016-02-17  Richard Biener  <rguenther@suse.de>
7337
7338         PR rtl-optimization/69609
7339         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7340         (find_traces_1_round): When ending a trace update cached priority
7341         of successors.
7342         (bb_to_key): Use cached priority when available.
7343         (copy_bb): Initialize cached priority.
7344         (reorder_basic_blocks_software_trace_cache): Likewise.
7345
7346 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7347
7348         PR target/69161
7349         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7350         New predicate.
7351         (aarch64_comparison_operator): Break overly long line into two.
7352         (aarch64_comparison_operation): Likewise.
7353         * config/aarch64/aarch64.md (cstorecc4): Use
7354         aarch64_comparison_operator_mode instead of
7355         aarch64_comparison_operator.
7356         (cstore<mode>4): Likewise.
7357         (aarch64_cstore<mode>): Likewise.
7358         (*cstoresi_insn_uxtw): Likewise.
7359         (cstore<mode>_neg): Likewise.
7360         (*cstoresi_neg_uxtw): Likewise.
7361
7362 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7363
7364         PR target/69161
7365         * config/arm/predicates.md (arm_comparison_operator_mode):
7366         New predicate.
7367         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7368         instead of arm_comparison_operator.
7369         (*mov_negscc): Likewise.
7370         (*mov_notscc): Likewise.
7371         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7372         (*thumb2_mov_negscc): Likewise.
7373         (*thumb2_mov_negscc_strict_it): Likewise.
7374         (*thumb2_mov_notscc): Likewise.
7375         (*thumb2_mov_notscc_strict_it): Likewise.
7376
7377 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7378
7379         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7380         Add missing return.
7381
7382 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7383
7384         * config/visium/visium.c (machine_libfunc_index): New enum.
7385         (machine_libfuncs): New structure.
7386         (visium_libfuncs): New static variable.
7387         (TARGET_INIT_LIBFUNCS): Define to...
7388         (visium_init_libfuncs): ...this.  New function.
7389         (expand_block_move_4): Use the appropriate libfunc.
7390         (expand_block_move_2): Likewise.
7391         (expand_block_move_1): Likewise.
7392         (expand_block_set_4): Likewise.
7393         (expand_block_set_2): Likewise.
7394         (expand_block_set_1): Likewise.
7395         (visium_trampoline_init): Likewise.
7396
7397 2016-02-17  Nick Clifton  <nickc@redhat.com>
7398
7399         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7400         TI's devices.csv file as of March 2016.
7401
7402 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7403
7404         PR Target/48344
7405         * opts-global.c (handle_common_deferred_options): Introduce and
7406         initialize two global variables to remember command-line options
7407         specifying a stack-limiting register.
7408         * opts.h: Add extern declarations of the two new global variables.
7409         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7410         variable based on the values of the two new global variables.
7411
7412 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7413
7414         PR c/69835
7415         * common.opt (Wnonnull-compare): New warning.
7416         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7417         of arguments against NULL.
7418         (-Wnonnull-compare): Document.
7419         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7420         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7421         * passes.def (pass_warn_nonnull_compare): Add.
7422         * gimple-ssa-nonnull-compare.c: New file.
7423
7424 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7425
7426         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7427         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7428
7429 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7430
7431         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7432         reciprocal sqrt for -mlow-precision-recip-sqrt.
7433
7434 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7435             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7436
7437         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7438         always use lane loads to construct non-constant vectors.
7439
7440 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7441
7442         * config/aarch64/aarch64.md
7443         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7444         constraints for operand 3.
7445         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7446
7447 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7448             Richard Biener  <rguenther@suse.de>
7449
7450         PR tree-optimization/69820
7451         * tree-vect-patterns.c (type_conversion_p): Return false if
7452         *orig_type is unsigned single precision or boolean.
7453         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7454         Formatting fix.
7455
7456 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7457
7458         PR rtl-optimization/69764
7459         PR rtl-optimization/69771
7460         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7461         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7462
7463 2016-02-16  Richard Biener  <rguenther@suse.de>
7464
7465         PR tree-optimization/69776
7466         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7467         sets from caller.
7468         (indirect_refs_may_alias_p): Likewise.
7469         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7470         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7471         according to tbaa_p.
7472         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7473         (optimize_stmt): For redundant store discovery do not allow tbaa.
7474
7475 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7476
7477         PR tree-optimization/69714
7478         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7479         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7480
7481 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7482
7483         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7484         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7485         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7486         * config/arc/arc.c (arc_init): Check FPU options.
7487         (get_arc_condition_code): Handle new CC_FPU* modes.
7488         (arc_select_cc_mode): Likewise.
7489         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7490         register pair only. Allow access for ARCv2 accumulator.
7491         (gen_compare_reg): Whenever we have FPU support use FPU compare
7492         instructions.
7493         (arc_reorg): Don't generate brcc insns when FPU compare
7494         instructions are involved.
7495         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7496         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7497         floating point emulation.
7498         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7499         (REVERSE_CONDITION): Add new CC_FPU* modes.
7500         (TARGET_FP_SP_BASE): Define.
7501         (TARGET_FP_DP_BASE): Likewise.
7502         (TARGET_FP_SP_FUSED): Likewise.
7503         (TARGET_FP_DP_FUSED): Likewise.
7504         (TARGET_FP_SP_CONV): Likewise.
7505         (TARGET_FP_DP_CONV): Likewise.
7506         (TARGET_FP_SP_SQRT): Likewise.
7507         (TARGET_FP_DP_SQRT): Likewise.
7508         (TARGET_FP_DP_AX): Likewise.
7509         * config/arc/arc.md (ARCV2_ACC): New constant.
7510         (type): New fpu type attribute.
7511         (SDF): Conditional iterator.
7512         (cstore<mode>, cbranch<mode>): Change expand condition.
7513         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7514         handles FPU/FPX cases as well.
7515         * config/arc/arc.opt (mfpu): New option.
7516         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7517         Renamed.
7518         (adddf3, muldf3, subdf3): Removed.
7519         * config/arc/predicates.md (proper_comparison_operator): Recognize
7520         CC_FPU* modes.
7521         * config/arc/fpu.md: New file.
7522         * doc/invoke.texi (ARC Options): Document mfpu option.
7523
7524 2016-02-16  Richard Biener  <rguenther@suse.de>
7525
7526         PR rtl-optimization/69291
7527         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7528         noce_operand_ok check.
7529
7530 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7531
7532         PR lto/67709
7533         * omp-low.c (simd_clone_create): Remove call to
7534         symtab->call_cgraph_insertion_hooks.
7535
7536 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7537
7538         PR tree-optimization/69802
7539         * tree-ssa-reassoc.c (update_range_test): If op is
7540         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7541         op == 1 test of precision 1 integral op, otherwise handle
7542         that case as op itself.  Fix up formatting.
7543         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7544         up formatting.
7545
7546 2016-02-16  Richard Biener  <rguenther@suse.de>
7547
7548         PR tree-optimization/69586
7549         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7550         types for conversion sources.
7551
7552 2016-02-16  Richard Biener  <rguenther@suse.de>
7553
7554         PR middle-end/69801
7555         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7556         mask OEP_ADDRESS_OF.
7557
7558 2016-02-16  Alan Modra  <amodra@gmail.com>
7559
7560         PR target/68973
7561         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7562         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7563         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7564         (p8_mtvsrwz): New.
7565         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7566         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7567         (p8_fmrgow_<mode>): Likewise.
7568         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7569         changes.
7570         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7571         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7572         to use movdi_internal64.  Remove op0_di.
7573         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7574
7575 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7576
7577         Add support for the FCCMP insn types
7578
7579         * config/aarch64/aarch64.md (fccmp): Change insn type.
7580         (fccmpe): Likewise.
7581         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
7582         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
7583         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
7584         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
7585         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
7586         * config/arm/types.md (fccmps): Add new insn type.
7587         (fccmpd): Likewise.
7588
7589 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7590
7591         * alias.c (get_alias_set): Fix a typo in comment.
7592
7593 2016-02-15  Richard Biener  <rguenther@suse.de>
7594
7595         PR tree-optimization/69595
7596         * match.pd: Complete range test simplification to true.
7597
7598 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
7599
7600         PR rtl-optimization/69648
7601         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
7602         pic_offset_table_rtx.
7603
7604         PR rtl-optimization/69752
7605         * ira.c (update_equiv_regs): When looking for more than a single SET,
7606         also take other side effects into account.
7607
7608 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7609
7610         * config/s390/s390.c (s390_function_profiler): Add a new sequence
7611         for z900+ CPUs in 31-bit mode.
7612
7613 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7614
7615         * common/config/s390/s390-common.c (s390_supports_split_stack):
7616         New function.
7617         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
7618         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
7619         * config/s390/s390.c (struct machine_function): New field
7620         split_stack_varargs_pointer.
7621         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
7622         in s390_emit_prologue.
7623         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
7624         vararg pointer.
7625         (morestack_ref): New global.
7626         (SPLIT_STACK_AVAILABLE): New macro.
7627         (s390_expand_split_stack_prologue): New function.
7628         (s390_live_on_entry): New function.
7629         (s390_va_start): Use split-stack vararg pointer if appropriate.
7630         (s390_asm_file_end): Emit the split-stack note sections.
7631         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
7632         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
7633         (UNSPECV_SPLIT_STACK_CALL): New unspec.
7634         (UNSPECV_SPLIT_STACK_DATA): New unspec.
7635         (split_stack_prologue): New expand.
7636         (split_stack_space_check): New expand.
7637         (split_stack_data): New insn.
7638         (split_stack_call): New expand.
7639         (split_stack_call_*): New insn.
7640         (split_stack_cond_call): New expand.
7641         (split_stack_cond_call_*): New insn.
7642
7643 2016-02-15  Richard Biener  <rguenther@suse.de>
7644
7645         PR tree-optimization/69783
7646         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7647         Add trivially correct cases.
7648
7649 2016-02-15  Tom de Vries  <tom@codesourcery.com>
7650
7651         PR lto/69655
7652         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
7653         do_force_output.
7654         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
7655
7656 2016-02-15  Richard Biener  <rguenther@suse.de>
7657
7658         PR tree-optimization/69776
7659         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
7660         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
7661         indicate whether we can use TBAA to disambiguate against stores.
7662         Use alias-set zero if not.
7663         (visit_reference_op_store): Do not use TBAA when looking up
7664         redundant stores.
7665         * tree-ssa-pre.c (compute_avail): Use TBAA here.
7666         (eliminate_dom_walker::before_dom_children): But not when looking
7667         up redundant stores.
7668
7669 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
7670
7671         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
7672
7673 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7674
7675         *  config/i386/znver1.md
7676         (znver1_pop, znver1_pop_mem,
7677         znver1_load_imov_double_store,
7678         znver1_load_imov_direct_store,
7679         znver1_load_imov_direct_load,
7680         znver1_load_imov_double_load): Add new.
7681         (znver1_insn, znver1_insn_load): Add icmov type.
7682         (znver1_sseavx_fma,
7683         znver1_sseavx_fma_load,
7684         znver1_avx256_fma,
7685         znver1_avx256_fma_load): Fix pipe usage.
7686
7687 2016-02-14  Alan Modra  <amodra@gmail.com>
7688
7689         PR target/68973
7690         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
7691         with an invalid hard reg, reload just the reg not the entire
7692         pre/post-inc/dec address expression.
7693
7694 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7695
7696         PR target/67260
7697         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
7698         fixed R1_REG scratch reg.
7699         (sibcall_value_pcrel_fdpic): Likewise.
7700
7701 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
7702
7703         PR target/67636
7704         PR target/64345
7705         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
7706
7707 2016-02-12  Walter Lee  <walt@tilera.com>
7708
7709         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
7710         * config/tilegx/t-tilegx: Likewise.
7711
7712 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7713
7714         PR other/69554
7715         * diagnostic-show-locus.c (struct line_span): New struct.
7716         (layout::get_first_line): Delete.
7717         (layout::get_last_line): Delete.
7718         (layout::get_num_line_spans): New member function.
7719         (layout::get_line_span): Likewise.
7720         (layout::print_heading_for_line_span_index_p): Likewise.
7721         (layout::get_expanded_location): Likewise.
7722         (layout::calculate_line_spans): Likewise.
7723         (layout::m_first_line): Delete.
7724         (layout::m_last_line): Delete.
7725         (layout::m_line_spans): New field.
7726         (layout::layout): Update comment.  Replace m_first_line and
7727         m_last_line with m_line_spans, replacing their initialization
7728         with a call to calculate_line_spans.
7729         (diagnostic_show_locus): When printing source lines and
7730         annotations, rather than looping over a single span
7731         of lines, instead loop over each line_span within
7732         the layout, with an inner loop over the lines within them.
7733         Call the context's start_span callback when changing line spans.
7734         * diagnostic.c (diagnostic_initialize): Initialize start_span.
7735         (diagnostic_build_prefix): Break out the building of the location
7736         part of the string into...
7737         (diagnostic_get_location_text): ...this new function, rewriting
7738         it from nested ternary expressions to a sequence of "if"
7739         statements.
7740         (default_diagnostic_start_span_fn): New function.
7741         * diagnostic.h (diagnostic_start_span_fn): New typedef.
7742         (diagnostic_context::start_span): New field.
7743         (default_diagnostic_start_span_fn): New prototype.
7744
7745 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7746
7747         PR driver/69779
7748         * gcc.c (driver::finalize): Fix cleanup of "specs".
7749
7750 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
7751
7752         PR driver/69265
7753         PR driver/69453
7754         * gcc.c (driver::driver): Initialize m_option_suggestions.
7755         (driver::~driver): Clean up m_option_suggestions.
7756         (suggest_option): Convert to...
7757         (driver::suggest_option): ...this, and split out into
7758         driver::build_option_suggestions and find_closest_string.
7759         (driver::build_option_suggestions): New function, from
7760         first half of suggest_option.  Special-case
7761         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
7762         the sanitizer_opts array.  For options of enum types, add the
7763         various enum values to the candidate strings.
7764         (driver::handle_unrecognized_options): Remove "const".
7765         * gcc.h (driver::handle_unrecognized_options): Likewise.
7766         (driver::build_option_suggestions): New decl.
7767         (driver::suggest_option): New decl.
7768         (driver::m_option_suggestions): New field.
7769         * opts-common.c (add_misspelling_candidates): New function.
7770         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
7771         and make non-static.
7772         * opts.h (sanitizer_opts): New array decl.
7773         (add_misspelling_candidates): New function decl.
7774         * spellcheck.c (find_closest_string): New function.
7775         * spellcheck.h (find_closest_string): New function decl.
7776
7777 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7778
7779         PR rtl-optimization/69764
7780         PR rtl-optimization/69771
7781         * optabs.c (expand_binop_directly): For shift_optab_p, force
7782         convert_modes with VOIDmode if xop1 has VOIDmode.
7783
7784 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
7785
7786         PR target/69729
7787         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
7788         to correctly determine instrumentation thunks.
7789
7790 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7791
7792         PR ipa/69241
7793         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
7794         type by reference, force lhs on the call.
7795
7796         PR ipa/68672
7797         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
7798         Compute retval and retbnd early in all cases if split_part_return_p
7799         and return_bb is not EXIT.  Remove all clobber stmts and reset
7800         all debug stmts that refer to SSA_NAMEs defined in split part,
7801         except if it is retval, in that case replace the old retval with the
7802         lhs of the call to the split part.
7803
7804 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7805
7806         revert:
7807         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7808
7809         PR middle-end/66726
7810         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
7811         whose result is used in PHI.
7812         (maybe_optimize_range_tests): Likewise.
7813         (final_range_test_p): Likweise.
7814
7815 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
7816
7817         PR middle-end/66726
7818         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
7819         whose result is used in PHI.
7820         (maybe_optimize_range_tests): Likewise.
7821         (final_range_test_p): Likweise.
7822
7823 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
7824
7825         * cgraph.c: Spelling fixes - behaviour -> behavior and
7826         neighbour -> neighbor.
7827         * target.def: Likewise.
7828         * sel-sched.c: Likewise.
7829         * config/mips/mips.c: Likewise.
7830         * config/arc/arc.md: Likewise.
7831         * config/arm/cortex-a57.md: Likewise.
7832         * config/arm/arm.c: Likewise.
7833         * config/arm/neon.md: Likewise.
7834         * config/arm/arm-c.c: Likewise.
7835         * config/vms/vms-c.c: Likewise.
7836         * config/s390/s390.c: Likewise.
7837         * config/i386/znver1.md: Likewise.
7838         * config/i386/i386.c: Likewise.
7839         * config/ia64/hpux-unix2003.h: Likewise.
7840         * config/msp430/msp430.md: Likewise.
7841         * config/rx/rx.c: Likewise.
7842         * config/rx/rx.md: Likewise.
7843         * config/aarch64/aarch64-simd.md: Likewise.
7844         * config/aarch64/aarch64.c: Likewise.
7845         * config/nvptx/nvptx.c: Likewise.
7846         * config/bfin/bfin.c: Likewise.
7847         * config/cris/cris.opt: Likewise.
7848         * config/rs6000/rs6000.c: Likewise.
7849         * target.h: Likewise.
7850         * spellcheck.c: Likewise.
7851         * ira-build.c: Likewise.
7852         * tree-inline.c: Likewise.
7853         * builtins.c: Likewise.
7854         * lra-constraints.c: Likewise.
7855         * explow.c: Likewise.
7856         * hwint.h: Likewise.
7857         * targhooks.c: Likewise.
7858         * tree-vect-data-refs.c: Likewise.
7859         * expr.c: Likewise.
7860         * doc/tm.texi: Likewise.
7861         * doc/extend.texi: Likewise.
7862         * doc/install.texi: Likewise.
7863         * doc/md.texi: Likewise.
7864         * tree-ssa-tail-merge.c: Likewise.
7865         * sched-int.h: Likewise.
7866         * match.pd: Likewise.
7867         * sched-ebb.c: Likewise.
7868         * target.def (omit_struct_return_reg): Likewise.
7869         * gimple-ssa-isolate-paths.c: Likewise.
7870         (find_implicit_erroneous_behaviour): Renamed to...
7871         (find_implicit_erroneous_behavior): ... this.
7872         (find_explicit_erroneous_behaviour): Renamed to...
7873         (find_explicit_erroneous_behavior): ... this.
7874         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
7875
7876 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
7877
7878         PR rtl-optimization/64682
7879         PR rtl-optimization/69567
7880         PR rtl-optimization/69737
7881         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
7882         in I2 as well, just lose it.
7883
7884 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7885
7886         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
7887         New variable.
7888         (aarch64_last_printed_tune_string): Likewise.
7889         (aarch64_declare_function_name): Only output .arch assembler
7890         directive if it will be different from the previously output
7891         directive.  Same for .tune comment but only if -dA is set.
7892         (aarch64_start_file): New function.
7893         (TARGET_ASM_FILE_START): Define.
7894
7895 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
7896
7897         PR plugins/69758
7898         * Makefile.in (PLUGIN_HEADERS): Add params.list.
7899
7900 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
7901
7902         PR target/65313
7903         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
7904         -Wmaybe-uninitialized warning.
7905
7906 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
7907
7908         PR target/69713
7909         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
7910
7911 2016-02-11  Richard Biener  <rguenther@suse.de>
7912
7913         PR rtl-optimization/69291
7914         * ifcvt.c (noce_try_store_flag_constants): Do not allow
7915         subexpressions affected by changing the result.
7916
7917 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
7918
7919         PR target/69148
7920         * lra-constraints.c (curr_insn_transform): Find in/out operands
7921         for secondary memory moves.  Update dups.
7922
7923 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
7924
7925         PR tree-optimization/69652
7926         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
7927         to nested loop, did source re-formatting, skip debug statements,
7928         add check on statement with volatile operand, remove dead scalar
7929         statements.
7930
7931 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
7932             Patrick Palka  <ppalka@gcc.gnu.org>
7933
7934         PR ipa/69241
7935         PR c++/69649
7936         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
7937         calls if the return type is TREE_ADDRESSABLE.
7938         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
7939         * ipa-split.c (split_function): Fix doubled "we" in comment.
7940         Use void return type for the split part even if
7941         !split_point->split_part_set_retval.
7942
7943 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
7944
7945         PR tree-optimization/68021
7946         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
7947         when computing the value of biv cand by itself.
7948
7949 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
7950
7951         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
7952         (cortexa57_tunings): Likewise.
7953         (cortexa72_tunings): Likewise.
7954         (arch_macro_fusion_pair_p): Add support for AES fusion.
7955         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
7956         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
7957         Allow virtual registers before reload so early scheduling works.
7958         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
7959         correct latency and pipeline.
7960         (cortex_a57_crypto_complex): Likewise.
7961         (cortex_a57_crypto_xor): Likewise.
7962         (define_bypass): Add AES bypass.
7963
7964 2016-02-10  Richard Biener  <rguenther@suse.de>
7965
7966         PR tree-optimization/69726
7967         * passes.def: Add DCE pass before late uninit.
7968         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
7969         really fixup if-conversions job.
7970
7971 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
7972
7973         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
7974         (arm_cortex_a57_tune): Likewise.
7975         (aarch_macro_fusion_pair_p): Add support for AES fusion.
7976         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
7977
7978 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
7979
7980         * timevar.def (TV_PHASE_DBGINFO): Delete.
7981         (TV_PHASE_CHECK_DBGINFO): Likewise.
7982         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
7983
7984 2016-02-10  Richard Biener  <rguenther@suse.de>
7985
7986         PR tree-optimization/69719
7987         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
7988         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
7989
7990 2016-02-09  Andrew Pinski  <apinski@cavium.com>
7991
7992         PR tree-opt/69282
7993         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
7994         get_vcond_mask_icode returns false.
7995
7996 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
7997
7998         PR target/68404
7999         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8000         an ADDIS that adds a pointer to a large constant that sets the
8001         upper16 bits with a load operation.
8002
8003 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8004
8005         PR target/68532
8006         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8007         order.
8008         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8009         endian.
8010         (vzipq_s16): Likewise.
8011         (vzipq_s32): Likewise.
8012         (vzipq_f32): Likewise.
8013         (vzipq_u8): Likewise.
8014         (vzipq_u16): Likewise.
8015         (vzipq_u32): Likewise.
8016         (vzipq_p8): Likewise.
8017         (vzipq_p16): Likewise.
8018
8019 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8020
8021         PR target/68532
8022         * config/arm/arm.c (neon_endian_lane_map): New function.
8023         (neon_vector_pair_endian_lane_map): New function.
8024         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8025         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8026         endian.
8027         (vuzpq_s16): Likewise.
8028         (vuzpq_s32): Likewise.
8029         (vuzpq_f32): Likewise.
8030         (vuzpq_u8): Likewise.
8031         (vuzpq_u16): Likewise.
8032         (vuzpq_u32): Likewise.
8033         (vuzpq_p8): Likewise.
8034         (vuzpq_p16): Likewise.
8035
8036 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8037
8038         PR target/69634
8039         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8040         debug insns.
8041
8042 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8043
8044         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8045         truncate const_int operand 1 to QImode.
8046
8047 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8048
8049         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8050         corresponding to an abnormal edge.
8051
8052 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8053
8054         PR tree-optimization/69599
8055         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8056         function.
8057         (find_func_aliases_for_builtin_call, find_func_clobbers)
8058         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8059         partition.
8060
8061 2016-02-09  Richard Biener  <rguenther@suse.de>
8062
8063         PR tree-optimization/69715
8064         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8065         LHS on calls as non-rewritable.
8066
8067 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8068
8069         PR lto/69707
8070         * lto-wrapper.c (append_diag_options): New function.
8071         (compile_offload_image): Call append_diag_options.
8072
8073 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8074
8075         PR other/69722
8076         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8077         Minor copy-edit to fix verb tenses.
8078
8079 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8080
8081         PR tree-optimization/69209
8082         * ipa-split.c (split_function): If split part is not
8083         returning retval, retval has gimple type but is not
8084         gimple value, force it into a SSA_NAME first.
8085
8086 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8087
8088         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8089         outdated section.
8090
8091 2016-02-08  Jason Merrill  <jason@redhat.com>
8092
8093         PR c++/69631
8094         * convert.c (convert_to_integer_1): Check dofold on truncation
8095         distribution.
8096         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8097         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8098         Rename from *_nofold.
8099         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8100         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8101
8102 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8103
8104         PR target/60410
8105         * tree.c (build_common_tree_nodes): Remove short_double argument.
8106         All callers changed.
8107         * tree.h (build_common_tree_nodes): Adjust declaration.
8108         * doc/invoke.texi (-fshort-double): Remove documentation.
8109         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8110         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8111         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8112         (append_linker_options): Don't handle OPT_fshort_double.
8113
8114         PR rtl-optimization/68730
8115         * lra-remat.c (insn_to_cand_activation): New static variable.
8116         (lra_remat): Allocate and free it.
8117         (create_cand): New arg activation. Initialize a field in
8118         insn_to_cand_activation if it is nonnull.
8119         (create_cands): Pass the activation insn to create_cand when making
8120         a candidate involving an output reload.  Reorganize code a little.
8121         (do_remat): Keep track of active status of candidates in a separate
8122         bitmap.
8123
8124 2016-02-08  Richard Biener  <rguenther@suse.de>
8125
8126         PR tree-optimization/69719
8127         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8128         Properly use absolute of the difference of the two offsets to
8129         compare or adjust the segment length.
8130
8131 2016-02-08  Richard Biener  <rguenther@suse.de>
8132             Jeff Law  <law@redhat.com>
8133
8134         PR target/68273
8135         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8136         types for anonymous SSA names.
8137
8138 2016-02-08   Richard Biener  <rguenther@suse.de>
8139
8140         PR rtl-optimization/69274
8141         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8142
8143 2016-02-08  Jeff Law  <law@redhat.com>
8144
8145         PR tree-optimization/65917
8146         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8147         equivalences from if (x == y) style conditionals.
8148         (loop_depth_of_name): Remove.
8149         (record_equality): Remove loop depth check.
8150         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8151         (const_and_copies::record_const_or_copy_raw): New member function.
8152         * tree-ssa-scopedtables.c
8153         (const_and_copies::record_const_or_copy_raw): New, factored out of
8154         (const_and_copies::record_const_or_copy): Call new member function.
8155
8156 2016-02-05  Jeff Law  <law@redhat.com>
8157
8158         PR tree-optimization/68541
8159         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8160         (count_stmts_in_block): New function.
8161         (poor_ifcvt_candidate_code): Likewise.
8162         (is_feasible_trace): Add some heuristics to determine when path
8163         splitting is profitable.
8164         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8165         is a diamond with a single exit.
8166
8167 2016-02-05  Martin Sebor  <msebor@redhat.com>
8168
8169         PR c++/69662
8170         * doc/invoke.texi: Update -Wplacement-new to take an optional
8171         argument.
8172
8173 2016-02-06  Richard Henderson  <rth@redhat.com>
8174
8175         PR c/69643
8176         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8177         out of non-standard address spaces.
8178
8179 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8180
8181         PR rtl-optimization/69691
8182         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8183
8184 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8185
8186         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8187         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8188         (*ieee128_mfvsrd_64bit): Likewise.
8189         (*ieee128_mfvsrd_32bit): Likewise.
8190
8191 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8192
8193         PR target/69369
8194         Revert r232560:
8195         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8196
8197         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8198         instrumented_version.
8199
8200 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8201
8202         * doc/invoke.texi (Optimize Options): In table of --param options
8203         rename second occurrence of tracer-min-branch-ratio to
8204         tracer-min-branch-probability, rename
8205         tracer-min-branch-ratio-feedback to
8206         tracer-min-branch-probability-feedback and clarify description,
8207         rename sched-spec-state-edge-prob-cutoff to
8208         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8209         to selsched-insns-to-rename, rename lto-minpartition to
8210         lto-min-partition, delete reorder-blocks-duplicate and
8211         reorder-blocks-duplicate-feedback.
8212
8213 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8214
8215         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8216         superfluous loops.
8217
8218 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8219
8220         * doc/extend.texi: S/390: Correct some typos.
8221
8222 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8223
8224         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8225
8226 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8227
8228         PR target/69625
8229         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8230         (s390_register_info_gprtofpr): Use new macros above.
8231         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8232         its name.
8233         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8234         its name.  Adjust restore and save gpr ranges.
8235         (s390_register_info_set_ranges): New function.
8236         (s390_register_info): Use new macros above.  Call
8237         s390_register_info_set_ranges.
8238         (s390_optimize_register_info): Likewise.
8239         (s390_hard_regno_rename_ok): Use new macros.
8240         (s390_hard_regno_scratch_ok): Likewise.
8241         (s390_emit_epilogue): Likewise.
8242         (s390_can_use_return_insn): Likewise.
8243         (s390_optimize_prologue): Likewise.
8244         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8245
8246 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8247
8248         PR bootstrap/69677
8249         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8250         alignment fixes.
8251         (ix86_option_override_internal): Disable TARGET_STV even for
8252         -m{incoming,preferred}-stack-boundary=3.
8253
8254 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8255
8256         * config.gcc: Mark deprecated rtems targets as obsolete.
8257
8258 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8259
8260         PR rtl-optimization/64682
8261         PR rtl-optimization/69567
8262         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8263         before I2 only if the register is both used and set in I2.
8264
8265 2016-02-04  DJ Delorie  <dj@redhat.com>
8266
8267         * config/msp430/msp430.c (msp430_start_function): Add function type.
8268
8269 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8270
8271         PR fortran/69368
8272         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8273
8274 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8275
8276         PR rtl-optimization/69577
8277         Revert:
8278         2015-10-29  Richard Henderson  <rth@redhat.com>
8279
8280         PR target/68124
8281         PR rtl-opt/67609
8282         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8283         sse check to the exact conditions of PR 67609.
8284
8285 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8286
8287         PR target/69667
8288         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8289         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8290         not allowed into the traditional Altivec registers.
8291         (movtd_64bit_nodm): Likewise.
8292         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8293
8294 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8295
8296         * config/aarch64/cortex-a57-fma-steering.c
8297         (aarch64_register_fma_steering): Remove "static" from arguments
8298         to register_pass.
8299
8300 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8301
8302         PR target/69619
8303         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8304         twice when complex.
8305
8306 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8307
8308         * doc/invoke.texi: Delete -mno-fma4.
8309
8310 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8311
8312         PR rtl-optimization/69577
8313         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8314         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8315         definitions.
8316
8317 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8318
8319         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8320         * config/arm/arm.c (neon_reinterpret): Remove.
8321         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8322         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8323         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8324         vreinterpretti): Remove.
8325         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8326         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8327         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8328         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8329         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8330         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8331         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8332         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8333         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8334         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8335         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8336         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8337         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8338         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8339         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8340         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8341         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8342         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8343         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8344         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8345         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8346         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8347         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8348         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8349         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8350         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8351         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8352         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8353         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8354         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8355         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8356         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8357         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8358         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8359         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8360         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8361         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8362         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8363         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8364         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8365         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8366         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8367         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8368         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8369         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8370         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8371         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8372         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8373         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8374         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8375         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8376         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8377         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8378         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8379         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8380         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8381         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8382         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8383         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8384         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8385         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8386         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8387         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8388         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8389         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8390         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8391         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8392         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8393         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8394         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8395         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8396         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8397         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8398         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8399         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8400         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8401         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8402         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8403         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8404         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8405         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8406         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8407         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8408         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8409         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8410         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8411         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8412         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8413         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8414         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8415         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8416         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8417         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8418         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8419         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8420         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8421         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8422         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8423         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8424         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8425         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8426         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8427         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8428
8429 2016-02-04  Martin Liska  <mliska@suse.cz>
8430
8431         PR sanitizer/69276
8432         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8433         that are gimple_store_p.
8434         (maybe_instrument_call): Likewise.
8435
8436 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8437
8438         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8439         register scaling out of memory reference and comment why.
8440
8441 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8442
8443         PR target/65932
8444         PR target/67714
8445         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8446         folding the source of a SET.
8447
8448 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8449
8450         PR target/65932
8451         PR target/67714
8452         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8453         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8454
8455 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8456
8457         PR target/65932
8458         PR target/67714
8459         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8460         HImode.
8461
8462 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8463
8464         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8465         * config/arm/arm.c (arm_set_current_function): Likewise.
8466
8467 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8468             Ilya Enkovich  <enkovich.gnu@gmail.com>
8469             H.J. Lu  <hongjiu.lu@intel.com>
8470
8471         PR target/69454
8472         * config/i386/i386.c (convert_scalars_to_vector): Remove
8473         stack alignment fixes.
8474         (ix86_option_override_internal): Disable TARGET_STV if stack
8475         might not be aligned enough.
8476         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8477
8478 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8479
8480         * gcc/config/i386/x86-tune.def: Disable default prefetching
8481         for -march=znver1.
8482
8483 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8484             Vladimir Makarov  <vmakarov@redhat.com>
8485
8486         PR target/69461
8487         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8488         in validating fused toc addresses.
8489
8490 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8491
8492         PR c/69627
8493         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8494         range->m_caret fields if range->m_show_caret_p is false.
8495
8496         PR target/69644
8497         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8498         Force oldval into register if it does not satisfy reg_or_short_operand
8499         predicate.  Fix up formatting.
8500
8501 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8502             Alexandre Oliva  <aoliva@redhat.com>
8503
8504         PR target/69461
8505         * lra-constraints.c (simplify_operand_subreg): Check additionally
8506         address validity after potential reloading.
8507         (process_address_1): Check insns validity.  In case of failure do
8508         nothing.
8509
8510 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8511
8512         PR target/69118
8513         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8514         Fix target.
8515
8516 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8517
8518         * wide-int.cc (canonize_uhwi): New function.
8519         (wi::divmod_internal): Use it.
8520
8521 2016-02-02  James Norris  <jnorris@codesourcery.com
8522
8523         * gimplify.c (omp_notice_variable): Add usage check.
8524
8525 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8526
8527         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8528         like LE, GE, LT, GT when emitting relational operator.
8529
8530 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8531
8532         * ira-costs.c (find_costs_and_classes): Add extra argument.
8533         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8534         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8535         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8536         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8537         Add best_class parameter, and return it if not ALL_REGS.
8538         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8539         Add parameter.
8540         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8541         Update target hook.
8542
8543 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8544
8545         * config/aarch64/aarch64.c
8546         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8547         (aarch64_ira_change_pseudo_allocno_class): New function.
8548
8549 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8550
8551         PR target/67032
8552         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8553
8554 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8555
8556         * config/avr/avr.c (avr_option_override): Set
8557         PARAM_ALLOW_STORE_DATA_RACES to 1.
8558
8559 2016-02-02  Richard Biener  <rguenther@suse.de>
8560
8561         PR tree-optimization/69595
8562         * match.pd: Add range test simplifications to true/false.
8563
8564 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8565
8566         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8567         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8568         instead.
8569
8570 2016-02-02  Richard Biener  <rguenther@suse.de>
8571
8572         PR tree-optimization/69606
8573         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8574         info on the result before moving a stmt.
8575
8576 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8577
8578         PR middle-end/68542
8579         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8580         branch with vector comparison.
8581         * config/i386/sse.md (VI48_AVX): New mode iterator.
8582         (define_expand "cbranch<mode>4): Add support for conditional branch
8583         with vector comparison.
8584         * tree-vect-loop.c (optimize_mask_stores): New function.
8585         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
8586         has_mask_store field of vect_info.
8587         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
8588         vectorized loops having masked stores after vec_info destroy.
8589         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
8590         correspondent macros.
8591         (optimize_mask_stores): Add prototype.
8592
8593 2016-02-02  Alan Modra  <amodra@gmail.com>
8594
8595         PR target/69548
8596         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
8597         allow subregs.
8598
8599 2016-02-02  Alan Modra  <amodra@gmail.com>
8600
8601         PR target/68662
8602         * config/rs6000/rs6000.c (need_toc_init): New var, set it
8603         whenever toc_label_name used.
8604         (rs6000_file_start): Don't set up toc section here,
8605         (rs6000_output_function_epilogue): do so here instead,
8606         (rs6000_xcoff_file_start): and here.
8607         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
8608         (load_toc_aix_di): Likewise.
8609
8610 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8611
8612         PR rtl-optimization/69592
8613         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
8614         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
8615         (num_sign_bit_copies_binary_arith_p): New inline function.
8616         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
8617
8618 2016-02-01  Jeff Law  <law@redhat.com>
8619
8620         PR tree-optimization/69580
8621         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
8622         * tree-ssa-threadbackward.c
8623         (fsm_find_control_statement_thread_paths): Do not try to walk
8624         through large PHI nodes.
8625
8626 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8627
8628         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
8629         when count is incremented above limit, don't analyze further
8630         insns afterwards.
8631
8632         * omp-low.c (oacc_parse_default_dims): Avoid
8633         -Wsign-compare warning, make sure value fits into int
8634         rather than just unsigned int.
8635
8636 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
8637
8638         PR tree-optimization/67921
8639         * fold-const.c (split_tree): New parameters.  Convert pointer
8640         type variable part to proper type before negating.
8641         (fold_binary_loc): Pass new arguments to split_tree.
8642
8643 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
8644
8645         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
8646         (nvptx_goacc_validate_dims): Extend to handle global defaults.
8647         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
8648         * doc/tm.texti: Rebuilt.
8649         * doc/invoke.texi (fopenacc-dim): Document.
8650         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
8651         (append_compiler_options): Likewise.
8652         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
8653         (oacc_parse_default_dims): New.
8654         (oacc_validate_dims): Add USED arg.  Select non-unity default when
8655         possible.
8656         (oacc_loop_fixed_partitions): Return mask of used partitions.
8657         (oacc_loop_auto_partitions): Emit dump info.
8658         (oacc_loop_partition): Return mask of used partitions.
8659         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
8660         loop partitioning and validation calls.
8661
8662 2016-02-01  Richard Biener  <rguenther@suse.de>
8663
8664         PR middle-end/69556
8665         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
8666
8667 2016-02-01  Richard Biener  <rguenther@suse.de>
8668
8669         PR tree-optimization/69574
8670         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
8671         of asserting return chrec_dont_know.
8672
8673 2016-02-01  Martin Liska  <mliska@suse.cz>
8674
8675         * mem-stats-traits.h: Add copyright header.
8676         * mem-stats.h: Likewise.
8677
8678 2016-02-01  Richard Biener  <rguenther@suse.de>
8679
8680         PR tree-optimization/69579
8681         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
8682         Do not propagate through abnormal PHI results.
8683
8684 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
8685
8686         * postreload.c (reload_cse_simplify): Remove dead code.
8687
8688 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8689
8690         PR rtl-optimization/69570
8691         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
8692         if there is more than one set, not if there is a single set.
8693
8694 2016-02-01  Richard Henderson  <rth@redhat.com>
8695
8696         PR rtl-opt/69535
8697         * combine.c (make_compound_operation): When looking through a
8698         subreg, make sure to re-extend to the width of the outer mode.
8699
8700 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
8701
8702         PR tree-optimization/69546
8703         * wide-int.cc (wi::divmod_internal): For unsigned division
8704         where both operands fit into uhwi, if o1 is 1 and o0 has
8705         msb set, if divident_prec is larger than bits per hwi,
8706         clear another quotient word and return 2 instead of 1.
8707         Similarly for remainder with msb in HWI set, if dividend_prec
8708         is larger than bits per hwi.
8709
8710 2016-01-29  Martin Jambor  <mjambor@suse.cz>
8711
8712         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
8713         Use short lowercase names.
8714         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
8715         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
8716         acq_rel one.  Protect warning agains segfaults if
8717         get_memory_order_name returns NULL.
8718         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
8719         with release semantics.  Do not warn if get_memory_order already did.
8720         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
8721         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
8722         if get_memory_order already did.
8723
8724 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
8725
8726         * doc/install.texi: Document that isl-0.16 is supported.
8727
8728 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
8729
8730         PR target/69299
8731         * config/i386/constraints.md (Bm): Describe as special memory
8732         constraint.
8733         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
8734         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8735         * genpreds.c (struct constraint_data): Add is_special_memory.
8736         (have_special_memory_constraints, special_memory_start): New
8737         static vars.
8738         (special_memory_end): Ditto.
8739         (add_constraint): Add new arg is_special_memory.  Add code to
8740         process its true value.  Update have_special_memory_constraints.
8741         (process_define_constraint): Pass the new arg.
8742         (process_define_register_constraint): Ditto.
8743         (choose_enum_order): Process special memory.
8744         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
8745         function insn_extra_special_memory_constraint.
8746         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8747         * gensupport.c (process_rtx): Process
8748         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
8749         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
8750         * ira-lives.c (single_reg_class): Use
8751         insn_extra_special_memory_constraint.
8752         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
8753         * lra-constraints.c (process_alt_operands): Ditto.
8754         (curr_insn_transform): Use insn_extra_special_memory_constraint.
8755         * recog.c (asm_operand_ok, preprocess_constraints): Process
8756         CT_SPECIAL_MEMORY.
8757         * reload.c (find_reloads): Ditto.
8758         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
8759         * stmt.c (parse_input_constraint): Use
8760         insn_extra_special_memory_constraint.
8761
8762 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8763
8764         PR target/69530
8765         * lra-splill.c (lra_final_code_change): Revert r229087 by
8766         removing all sub-registers.
8767
8768 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
8769
8770         PR target/65604
8771         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
8772
8773 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
8774
8775         PR target/69551
8776         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
8777         SSE1, copy target into the temporary reg first before recursing
8778         on it.
8779
8780 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
8781
8782         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
8783         with vm.
8784
8785 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
8786
8787         * ginclude/stdarg.h: Test __cplusplus instead of
8788         __GXX_EXPERIMENTAL_CXX0X__.
8789
8790 2016-01-29  Richard Biener  <rguenther@suse.de>
8791
8792         PR tree-optimization/69547
8793         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
8794         Do not mark clobbers necessary.
8795         (mark_all_reaching_defs_necessary_1): Likewise.
8796
8797 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8798
8799         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
8800         declaration name with %qs and print it in both error messages.
8801         Also fix indentation.
8802
8803 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8804
8805         PR other/69006
8806         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
8807         trailing blank line from error message.
8808
8809 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
8810
8811         PR c++/69462
8812         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
8813         for C++-11.
8814
8815 2016-01-29  Richard Biener  <rguenther@suse.de>
8816
8817         PR middle-end/69537
8818         * match.pd: Allow all integral types when simplifying a
8819         widening or sign-changing conversion.
8820
8821 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8822
8823         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
8824         back to setting codegen_error to fail codegen.
8825
8826 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
8827
8828         PR target/69459
8829         * config/i386/constraints.md (C): Only accept constant zero operand.
8830         (BC): New constraint.
8831         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
8832         instead of C constraint.
8833         * doc/md.texi (Machine Constraints): Update description
8834         of C constraint.
8835
8836 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
8837
8838         PR target/68400
8839         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
8840
8841 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
8842
8843         PR middle-end/69542
8844         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
8845         non-debug insns.
8846
8847 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
8848
8849         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
8850         branches if using guessed profile.
8851
8852 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
8853
8854         * graphite-optimize-isl.c (optimize_isl): Fix dump.
8855
8856 2016-01-28  Richard Henderson  <rth@redhat.com>
8857
8858         PR target/69305
8859         * config/aarch64/aarch64-modes.def (CC_Cmode): New
8860         * config/aarch64/aarch64-protos.h: Update.
8861         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
8862         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
8863         (aarch64_get_condition_code_1): Handle CC_Cmode.
8864         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
8865         (*add<mode>3_compareC_cconly_imm): New.
8866         (*add<mode>3_compareC_cconly): New.
8867         (*add<mode>3_compareC_imm): New.
8868         (add<mode>3_compareC): New.
8869         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
8870         to be first.  Use aarch64_carry_operation.
8871         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
8872         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
8873         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
8874         (subti3): Use subdi3_compare1.
8875         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
8876         (sub<mode>3_compare1): New.
8877         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
8878         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
8879         (*subsi3_carryin_uxtw): Likewise.
8880         (*ngc<mode>, *ngcsi_uxtw): Likewise.
8881         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
8882         * config/aarch64/iterators.md (DWI): New.
8883         * config/aarch64/predicates.md (aarch64_carry_operation): New.
8884         (aarch64_borrow_operation): New.
8885
8886 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
8887
8888         * graphite-optimize-isl.c (optimize_isl): Print a different debug
8889         message when isl does not return a valid schedule.
8890
8891 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8892
8893         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
8894         Remove comments from class declarations: they are already in the code
8895         close by the defs.
8896
8897 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8898
8899         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
8900         codegen_error_p.
8901         (ternary_op_to_tree): Same.
8902         (unary_op_to_tree): Same.
8903         (nary_op_to_tree): Same.
8904         (gcc_expression_from_isl_expr_op): Same.
8905         (gcc_expression_from_isl_expression): Same.
8906         (graphite_create_new_loop): Same.
8907         (graphite_create_new_loop_guard): Same.
8908         (build_iv_mapping): Same.
8909         (graphite_create_new_guard): Same.
8910         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
8911         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
8912
8913 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
8914
8915         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
8916         instead of setting codegen_error to fail codegen.
8917
8918 2016-01-28  Jason Merrill  <jason@redhat.com>
8919
8920         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
8921
8922 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
8923
8924         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
8925         Remove CONST_INT_P check in CCMP cost calculation.
8926
8927 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
8928
8929         * config/aarch64/aarch64.c (generic_vector_cost):
8930         Set vec_permute_cost.
8931         (cortexa57_vector_cost): Likewise.
8932         (exynosm1_vector_cost): Likewise.
8933         (xgene1_vector_cost): Likewise.
8934         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
8935         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
8936         Add vec_permute_cost entry.
8937
8938 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
8939
8940         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
8941         immediate as %1.
8942         (add<mode>3_compare0): Likewise.
8943         (addsi3_compare0_uxtw): Likewise.
8944         (add<mode>3nr_compare0): Likewise.
8945         (compare_neg<mode>): Likewise.
8946         (<optab><mode>3): Likewise.
8947
8948 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
8949
8950         * tree-vect-stmts.c (vectorizable_comparison): Add
8951         NULL check for vectype.
8952
8953 2016-01-28  Richard Biener  <rguenther@suse.de>
8954
8955         PR tree-optimization/69466
8956         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
8957         Account for PHIs we couldn't duplicate.
8958
8959 2016-01-28  Martin Liska  <mliska@suse.cz>
8960
8961         PR pch/68758
8962         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
8963         instead of ENABLE_VALGRIND_CHECKING.
8964
8965 2016-01-27  Richard Henderson  <rth@redhat.com>
8966
8967         PR rtl-opt/69447
8968         * lra-remat.c (subreg_regs): New.
8969         (dump_candidates_and_remat_bb_data): Dump it.
8970         (operand_to_remat): Reject if operand in subreg_regs.
8971         (set_bb_regs): Collect subreg_regs.
8972         (lra_remat): Init and free subreg_regs.  Compute
8973         calculate_local_reg_remat_bb_data before create_cands.
8974
8975 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
8976
8977         PR target/68986
8978         * config/i386/i386.c (ix86_update_stack_boundary): Don't
8979         change stack_alignment_needed for __tls_get_addr call.
8980
8981 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
8982
8983         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
8984
8985 2016-01-27  Jeff Law  <law@redhat.com>
8986
8987         PR tree-optimization/68398
8988         PR tree-optimization/69196
8989         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
8990         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
8991         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8992         Only count PHIs in the last block in the path.  The others will
8993         const/copy propagate away.  Add heuristic to allow more irreducible
8994         subloops to be created when it is likely profitable to do so.
8995
8996         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
8997         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
8998         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
8999
9000 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9001
9002         PR lto/69254
9003         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9004         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9005         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9006         * tree-streamer-in.c: Include asan.h.
9007         (streamer_get_builtin_tree): For builtins in sanitizer
9008         range call initialize_sanitizer_builtins and retry.
9009
9010 2016-01-27  Ian Lance Taylor  <iant@google.com>
9011
9012         * common.opt (fkeep-gc-roots-live): New undocumented option.
9013         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9014         -fkeep-gc-roots-live, skip pointers.
9015         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9016         NULL.
9017
9018 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9019
9020         PR target/69512
9021         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9022         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9023
9024 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9025
9026         PR target/68380
9027         * configure.ac: NetBSD provides SSP in its C library.
9028         * configure: Updated.
9029
9030 2016-01-27  Richard Biener  <rguenther@suse.de>
9031
9032         PR tree-optimization/69166
9033         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9034         reduction code for commutativity / associativity.
9035
9036 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9037
9038         PR tree-optimization/69355
9039         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9040         total_scalarization fails.
9041
9042 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9043
9044         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9045         power9.
9046
9047 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9048
9049         PR target/69245
9050         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9051         Move arm_reset_previous_fndecl and set_target_option_current_node in
9052         the conditional part.  Call save_restore_target_globals.
9053         * config/arm/arm.c (arm_set_current_function):
9054         Refactor to better support #pragma target and attribute mix.
9055         Call save_restore_target_globals.
9056         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9057
9058 2016-01-27  Martin Liska  <mliska@suse.cz>
9059
9060         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9061         reference for an HSA kernel and its host function.
9062
9063 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9064
9065         PR tree-optimization/69399
9066         * wide-int.h (wi::lrshift): For larger precisions, only
9067         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9068
9069 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9070
9071         * config/arc/predicates.md (proper_comparison_operator): Reject
9072         constant-constant comparison.
9073
9074 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9075
9076         PR tree-optimization/69110
9077         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9078         DR_NUM_DIMENSIONS == 0.
9079
9080 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9081             Sebastian Pop  <s.pop@samsung.com>
9082
9083         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9084         isl_ast_op_cond and isl_ast_op_select.
9085         (gcc_expression_from_isl_expr_op): Same.
9086
9087 2016-01-26  Jason Merrill  <jason@redhat.com>
9088
9089         PR c++/68782
9090         * tree.c (recompute_constructor_flags): Split out from
9091         build_constructor.
9092         (verify_constructor_flags): New.
9093         * tree.h: Declare them.
9094
9095 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9096
9097         PR rtl-optimization/69217
9098         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9099         are no TYPE_FIELDS set for the record type.
9100
9101 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9102
9103         PR target/68662
9104         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9105         toc_label_name unconditionally.
9106         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9107         SYMBOL_REF string.  Use toc_label_name instead of constructing
9108         LCTOC1.
9109         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9110         constructing LCTOC1.
9111
9112 2016-01-26  Martin Sebor  <msebor@redhat.com>
9113
9114         PR other/69477
9115         * doc/extend.texi (Common Type Attributes): Move text that talks about
9116         attribute packed from attribute aligned to the section discussing
9117         the former attribute for clarity.
9118
9119 2016-01-26  Richard Henderson  <rth@redhat.com>
9120
9121         PR middle-end/60908
9122         * trans-mem.c (tm_region_init): Mark entry block as visited.
9123
9124 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9125
9126         PR other/69006
9127         * diagnostic-show-locus.c (layout::print_source_line): Replace
9128         call to pp_newline with call to layout::print_newline.
9129         (layout::print_annotation_line): Likewise.
9130         (layout::move_to_column): Likewise.
9131         (layout::print_any_fixits): After printing any fixits, print a
9132         trailing newline, if necessary.
9133         (layout::print_newline): New method, resetting any colorization
9134         before a newline.
9135         (diagnostic_show_locus): Move the pp_newline to before the
9136         early bailout.  Remove dummy block enclosing the layout instance.
9137         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9138         of pp_newline_and_flush with pp_flush.
9139         (diagnostic_append_note): Delete use of pp_newline.
9140         (diagnostic_append_note_at_rich_loc): Delete.
9141         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9142         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9143         when newline characters are added to the buffer.
9144
9145 2016-01-26  Michael Matz  <matz@suse.de>
9146
9147         * configure.ac (ac_cv_std_swap_in_utility): New test.
9148         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9149         * configure: Regenerate.
9150         * config.in: Regenerate.
9151
9152 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9153
9154         * config/arc/arc.md (cstoresi4): Force operand into register.
9155         (arcset<code>): Fix predicate.
9156         (arcsetltu): Likewise.
9157         (arcsetgeu): Likewise.
9158         (arcsethi): Likewise.
9159         (arcsetls): Likewise.
9160
9161 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9162
9163         PR tree-optimization/69483
9164         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9165         if base has error_mark_node type.
9166
9167 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9168
9169         PR target/68620
9170         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9171         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9172         New helper macros.
9173         (vget_lane_f16): Handle big-endian.
9174         (vgetq_lane_f16): Likewise.
9175         (vset_lane_f16): Likewise.
9176         (vsetq_lane_f16): Likewise.
9177         * config/arm/iterators.md (VQXMOV): Add V8HF.
9178         (VDQ): Add V4HF and V8HF.
9179         (V_reg): Handle V4HF and V8HF.
9180         (Is_float_mode): Likewise.
9181         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9182         neon_vdup_nv8hf): New patterns.
9183         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9184         Use VD_LANE iterator.
9185         (neon_vld1_dup<mode>): Use VQ2 iterator.
9186
9187 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9188
9189         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9190         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9191         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9192         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9193         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9194         (oacc_validate_dims): Add LEVEL arg, don't return level.
9195         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9196         oacc_validate_dims.
9197         (execute_oacc_device_lower): Adjust, add more dump output.
9198         * tree-ssa-loop.c (gate_oacc_kernels): Use
9199         oacc_fn_attrib_kernels_p.
9200         * tree-parloops.c (create_parallel_loop): Adjust
9201         set_oacc_fn_attrib call.
9202
9203 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9204
9205         PR lto/69254
9206         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9207         (append_compiler_options): Handle -fcilkplus.
9208         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9209
9210 2016-01-26  Nick Clifton  <nickc@redhat.com>
9211
9212         PR target/66655
9213         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9214         been marked as DECL_ONE_ONLY but we do not the means to make it
9215         so, then do not allow it to bind locally.
9216
9217 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9218
9219         PR lto/69254
9220         * opts.h (parse_sanitizer_options): New prototype.
9221         * opts.c (sanitizer_opts): New array.
9222         (parse_sanitizer_options): New function.
9223         (common_handle_option): Use parse_sanitizer_options.
9224
9225 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9226
9227         PR target/68986
9228         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9229         alignment adjustment to ...
9230         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9231         __tls_get_addr.
9232         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9233         if __tls_get_addr is called.
9234
9235 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9236
9237         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9238
9239 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9240
9241         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9242
9243 2016-01-26  Richard Biener  <rguenther@suse.de>
9244
9245         PR middle-end/69467
9246         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9247
9248 2016-01-26  Richard Biener  <rguenther@suse.de>
9249
9250         PR tree-optimization/69452
9251         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9252         (move_computations_dom_walker::before_dom_children): Rename
9253         to ...
9254         (move_computations_worker): This.
9255         (move_computations): Perform an RPO rather than a DOM walk.
9256
9257 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9258
9259         PR target/69442
9260         * combine.c (combine_instructions): For REG_EQUAL note with
9261         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9262         to the underlying register.
9263         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9264         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9265
9266 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9267
9268         PR target/67896
9269         * config/aarch64/aarch64-builtins.c
9270         (aarch64_init_simd_builtin_types): Do not set structural
9271         equality to __Poly{8,16,64,128}_t types.
9272
9273 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9274
9275         PR tree-optimization/69400
9276         * wide-int.cc (wi_pack): Take the precision as argument and
9277         perform canonicalization here rather than in the callers.
9278         Use the main loop to handle all full-width HWIs.  Add a
9279         zero HWI if in_len isn't a full result.
9280         (wi::divmod_internal): Update accordingly.
9281         (wi::mul_internal): Likewise.  Simplify.
9282
9283 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9284             Sebastian Pop  <s.pop@samsung.com>
9285
9286         * graphite-poly.c (apply_poly_transforms): Simplify.
9287         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9288         (print_isl_map): Same.
9289         (print_isl_union_map): Same.
9290         (print_isl_schedule): New.
9291         (debug_isl_schedule): New.
9292         * graphite-dependences.c (scop_get_reads): Do not call
9293         isl_union_map_add_map that is undocumented isl functionality.
9294         (scop_get_must_writes): Same.
9295         (scop_get_may_writes): Same.
9296         (scop_get_original_schedule): Remove.
9297         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9298         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9299         (compute_deps): Remove.
9300         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9301         (debug_schedule_ast): New.
9302         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9303         set_separate_option.
9304         (graphite_regenerate_ast_isl): Add dump.
9305         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9306         from scop->transformed_schedule.
9307         (graphite_regenerate_ast_isl): Add more dump.
9308         * graphite-optimize-isl.c (optimize_isl): Set
9309         scop->transformed_schedule.  Check whether schedules are equal.
9310         (apply_poly_transforms): Move here.
9311         * graphite-poly.c (apply_poly_transforms): ... from here.
9312         (free_poly_bb): Static.
9313         (free_scop): Static.
9314         (pbb_number_of_iterations_at_time): Remove.
9315         (print_isl_ast): New.
9316         (debug_isl_ast): New.
9317         (debug_scop_pbb): New.
9318         * graphite-scop-detection.c (print_edge): Move.
9319         (print_sese): Move.
9320         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9321         (build_scop_scattering): Remove.
9322         (create_pw_aff_from_tree): Assert instead of bailing out.
9323         (add_condition_to_pbb): Remove unused code, do not fail.
9324         (add_conditions_to_domain): Same.
9325         (add_conditions_to_constraints): Remove.
9326         (build_scop_context): New.
9327         (add_iter_domain_dimension): New.
9328         (build_iteration_domains): Initialize pbb->iterators.
9329         Call add_conditions_to_domain.
9330         (nested_in): New.
9331         (loop_at): New.
9332         (index_outermost_in_loop): New.
9333         (index_pbb_in_loop): New.
9334         (outermost_pbb_in): New.
9335         (add_in_sequence): New.
9336         (add_outer_projection): New.
9337         (outer_projection_mupa): New.
9338         (add_loop_schedule): New.
9339         (build_schedule_pbb): New.
9340         (build_schedule_loop): New.
9341         (embed_in_surrounding_loops): New.
9342         (build_schedule_loop_nest): New.
9343         (build_original_schedule): New.
9344         (build_poly_scop): Call build_original_schedule.
9345         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9346         (free_poly_dr): Remove.
9347         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9348         (free_poly_bb): Remove.
9349         (debug_loop_vec): Remove.
9350         (print_isl_ast): Declare.
9351         (debug_isl_ast): Declare.
9352         (scop_do_interchange): Remove.
9353         (scop_do_strip_mine): Remove.
9354         (scop_do_block): Remove.
9355         (flatten_all_loops): Remove.
9356         (optimize_isl): Remove.
9357         (pbb_number_of_iterations_at_time): Remove.
9358         (debug_scop_pbb): Declare.
9359         (print_schedule_ast): Declare.
9360         (debug_schedule_ast): Declare.
9361         (struct scop): Remove schedule.  Add original_schedule,
9362         transformed_schedule.
9363         (free_gimple_poly_bb): Remove.
9364         (print_generated_program): Remove.
9365         (debug_generated_program): Remove.
9366         (unify_scattering_dimensions): Remove.
9367         * sese.c (print_edge): ... here.
9368         (print_sese): ... here.
9369         (debug_edge): ... here.
9370         (debug_sese): ... here.
9371         * sese.h (print_edge): Declare.
9372         (print_sese): Declare.
9373         (dump_edge): Declare.
9374         (dump_sese): Declare.
9375
9376 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9377             Sebastian Pop  <s.pop@samsung.com>
9378
9379         * Makefile.in: Set ISLVER in site.exp.
9380
9381 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9382
9383         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9384         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9385         through DECL_VALUE_EXPR for expansion.
9386
9387 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9388
9389         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9390         the frame info after reload completed.
9391
9392 2016-01-25  Jeff Law  <law@redhat.com>
9393
9394         PR tree-optimization/69196
9395         PR tree-optimization/68398
9396         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9397         tree-ssa-threadupdate.c.
9398         (determine_bb_domination_status): Prototype
9399         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9400         (determine_bb_domination_status): No longer static.
9401         (valid_jump_thread_path): Remove code to detect characteristics
9402         of the jump thread path not associated with correctness.
9403         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9404         Correct test for thread path length.  Count PHIs for real operands as
9405         statements that need to be copied.  Do not count ASSERT_EXPRs.
9406         Look at all the blocks in the thread path.  Compute and selectively
9407         filter thread paths based on threading through the latch, threading
9408         a multiway branch or crossing a multiway branch.
9409
9410 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9411
9412         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9413         decl with __attribute__ ((unused)) annotation.
9414
9415 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9416
9417         PR target/69421
9418         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9419         of operands is compatible with a statement vectype.
9420
9421 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9422
9423         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9424         improve wording for mixed storage order support.
9425
9426 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9427
9428         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9429         (vcvt_u64_f64): Likewise.
9430         (vcvta_s64_f64): Likewise.
9431         (vcvta_u64_f64): Likewise.
9432         (vcvtm_s64_f64): Likewise.
9433         (vcvtm_u64_f64): Likewise.
9434         (vcvtn_s64_f64): Likewise.
9435         (vcvtn_u64_f64): Likewise.
9436         (vcvtp_s64_f64): Likewise.
9437         (vcvtp_u64_f64): Likewise.
9438
9439 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9440
9441         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9442         (arc_init): Check validity mll64 option.
9443         (arc_save_restore): Use double load/store instruction.
9444         (arc_expand_movmem): Likewise.
9445         (arc_split_move): Don't split if we have double load/store
9446         instructions. Returns a boolean.
9447         (arc_process_double_reg_moves): Change function to return boolean
9448         instead of a sequence of instructions.
9449         (arc_dwarf_register_span): New function.
9450         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9451         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9452         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9453         (*movdf_insn): Likewise.
9454         * config/arc/arc.opt (mll64): New option.
9455         * config/arc/predicates.md (even_register_operand): New predicate.
9456         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9457
9458 2016-01-25  Richard Biener  <rguenther@suse.de>
9459
9460         PR lto/69393
9461         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9462         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9463         DECL_NAMELESS.
9464         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9465
9466 2016-01-25  Richard Biener  <rguenther@suse.de>
9467
9468         PR tree-optimization/69376
9469         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9470         flag.
9471         (VN_INFO_ANTI_RANGE_P): New inline.
9472         (VN_INFO_RANGE_TYPE): Likewise.
9473         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9474         SSA_NAME_ANTI_RANGE_P.
9475         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9476         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9477         Properly query VN_INFO_RANGE_TYPE.
9478
9479 2016-01-25  Nick Clifton  <nickc@redhat.com>
9480
9481         PR target/66655
9482         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9483
9484 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9485
9486         PR tree-optimization/69426
9487         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9488         removed clobber.
9489
9490 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9491
9492         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9493         "the the" with "the" in the comments.
9494         * ipa-devirt.c (build_type_inheritance_graph,
9495         update_type_inheritance_graph): Likewise.
9496         * tree.c (build_function_type_list_1): Likewise.
9497         * cfgloopmanip.c (scale_loop_profile): Likewise.
9498         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9499         * gimple-ssa-split-paths.c
9500         (find_block_to_duplicate_for_splitting_paths): Likewise.
9501         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9502         * expr.c (convert_move): Likewise.
9503         * var-tracking.c (vt_stack_adjustments): Likewise.
9504         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9505         * tree-vrp.c (test_for_singularity): Likewise.
9506
9507         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9508         directly instead of building a temporary tree.
9509
9510         PR bootstrap/69434
9511         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9512         remove <algorithm> include.
9513
9514 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9515
9516         PR target/69432
9517         * config/i386/i386.c: Include dojump.h.
9518         (expand_small_movmem_or_setmem,
9519         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9520         fixes.
9521         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9522         if dynamic_check != -1.
9523
9524 2016-01-21  Jeff Law  <law@redhat.com>
9525
9526         PR middle-end/69347
9527         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9528         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9529         into dominated_by_p.
9530         (cprop_into_successor_phis): Avoid unnecessary tests.
9531
9532 2016-01-22  Richard Henderson  <rth@redhat.com>
9533
9534         PR target/69416
9535         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9536         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9537
9538 2016-01-22  Michael Matz  <matz@suse.de>
9539
9540         * system.h (string, algorithm): Include only conditionally.
9541         (new): Include always under C++.
9542         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9543         * final.c (toplevel): Ditto.
9544         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9545         * genconditions.c (write_header): Make gencondmd.c define
9546         INCLUDE_STRING.
9547         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9548
9549         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9550         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9551
9552 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9553
9554         PR target/68674
9555         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9556
9557 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9558
9559         PR target/69403
9560         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9561         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9562         get assigned the same register.
9563
9564 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9565
9566         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9567
9568 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9569
9570         * config/arm/arm-c.c (arm_pragma_target_parse):
9571         Remove warn_builtin_macro_redefined overwrite.
9572
9573 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9574
9575         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9576         flag_non_call_exceptions compatibility.
9577
9578 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9579
9580         PR debug/66668
9581         * dwarf2out.c (add_child_die_after): New function.
9582         (dwarf_qual_info_t): New type.
9583         (dwarf_qual_info): New variable.
9584         (qualified_die_p): New function.
9585         (modified_type_die): For -fdebug-types-section, ensure
9586         canonical order of qualifiers.  Put qualified DIEs adjacent
9587         to the corresponding non-qualified type DIE and search there
9588         for existing qualified DIEs.
9589
9590 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9591
9592         * doc/extend.texi (scalar_storage_order type attribute): Document
9593         restriction on type punning and aliasing, and remove future tense.
9594
9595 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
9596
9597         PR target/69252
9598         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
9599         first stage.
9600
9601 2016-01-21  Jeff Law  <law@redhat.com>
9602
9603         PR middle-end/69347
9604         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
9605         useless call to record_temporary_equivalences.
9606         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
9607         allocate 10 slots in the bb_path vector and let it grow as needed.
9608         (fsm_find_control_statement_thread_paths): Similarly for the next_path
9609         vector.
9610
9611 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9612
9613         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
9614         Detangle.
9615         * configure: Regenerate.
9616
9617 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
9618
9619         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
9620         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
9621
9622 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9623
9624         PR middle-end/66178
9625         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
9626         drop EXPAND_INITIALIZER.
9627         * rtl.h (contains_symbolic_reference_p): Declare.
9628         * rtlanal.c (contains_symbolic_reference_p): New function.
9629         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
9630         a subtraction into a NOT if symbolic constants are involved.
9631
9632 2016-01-21  Anton Blanchard  <anton@samba.org>
9633             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9634
9635         PR target/63354
9636         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
9637         #define.
9638         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
9639         function.
9640
9641 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9642
9643         * config/microblaze/microblaze.c
9644         (get_branch_target): New.
9645         (insert_wic_for_ilb_runout): New.
9646         (insert_wic): New.
9647         (microblaze_machine_dependent_reorg): New.
9648         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
9649         * config/microblaze/microblaze.md
9650         (UNSPEC_IPREFETCH): Define.
9651         (iprefetch): New pattern
9652         * config/microblaze/microblaze.opt
9653         (mxl-prefetch): New flag.
9654
9655 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
9656
9657         * config/microblaze/microblaze.h
9658         (FIXED_REGISTERS): Update in macro.
9659         (CALL_USED_REGISTERS): Update in macro.
9660
9661 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
9662
9663         PR rtl-optimization/68920
9664         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
9665         moves.
9666
9667 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
9668
9669         PR rtl-optimization/68990
9670         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
9671         pseudo instead of inheritance ones.
9672
9673 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9674             Nick Clifton  <nickc@redhat.com>
9675
9676         PR target/69129
9677         PR target/69012
9678         * config/mips/mips.c (mips_compute_frame_info): Initialise
9679         args_size and hard_frame_pointer_offset fields of the frame
9680         structure before calling mips_global_pointer.
9681
9682 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9683
9684         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
9685         label reference.
9686         * configure: Regenerate.
9687
9688 2016-01-21  Richard Biener  <rguenther@suse.de>
9689
9690         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
9691
9692 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9693
9694         * config/s390/s390.c (s390_asm_declare_function_size): Add code
9695         to actually emit the .size directive.
9696
9697 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
9698              Jakub Jelinek  <jakub@redhat.com>
9699
9700         PR target/69187
9701         PR target/65624
9702         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
9703         args array size by one to avoid buffer overflow.
9704
9705 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
9706
9707         * config/s390/s390.md (pool_section_start): Use switch_to_section
9708         to select proper read-only data section instead of hardcoding
9709         .rodata.
9710         (pool_section_end): Use switch_to_section to match the above.
9711
9712 2016-01-21  Richard Biener  <rguenther@suse.de>
9713
9714         PR tree-optimization/69378
9715         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
9716         (set_ssa_val_to): Use it for dominance checks taking into
9717         account not executable edges.
9718
9719 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
9720
9721         PR c++/69355
9722         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
9723         for bitsize instead of GET_MODE_PRECISION (mode).
9724
9725 2016-01-20  Martin Sebor  <msebor@redhat.com>
9726
9727         PR c/52291
9728         * extend.texi (__sync Builtins): Clarify the semantics of
9729         __sync_fetch_and_OP built-ins on pointers.
9730         (__atomic Builtins): Same.
9731
9732 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9733             Sebastian Pop  <s.pop@samsung.com>
9734
9735         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
9736         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
9737         (is_valid_rename): Same.
9738         (translate_isl_ast_to_gimple::get_rename): Same.
9739         (translate_isl_ast_to_gimple::rename_all_uses): Same.
9740         (translate_isl_ast_to_gimple::rename_uses): Same.
9741         (get_new_name): Check for close_phi nodes.
9742         (copy_loop_phi_args): Use phi_node_kind.
9743         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
9744         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
9745
9746 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9747             Sebastian Pop  <s.pop@samsung.com>
9748
9749         Revert commit r229783.
9750         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
9751         Remove use of parameter_rename_map.
9752         (copy_def): Remove.
9753         (copy_internal_parameters): Remove.
9754         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
9755         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
9756         (free_sese_info): Do not free parameter_rename_map.
9757         (set_rename): Do not use parameter_rename_map.
9758         (rename_uses): Update call to set_rename.
9759         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
9760         * sese.h (parameter_rename_map_t): Remove.
9761         (struct sese_info_t): Remove field parameter_rename_map.
9762
9763 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9764             Sebastian Pop  <s.pop@samsung.com>
9765
9766         * graphite-isl-ast-to-gimple.c: Fix comment.
9767         * graphite-scop-detection.c (defined_in_loop_p): New.
9768         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
9769         names defined in loop.
9770
9771 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9772             Sebastian Pop  <s.pop@samsung.com>
9773
9774         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
9775         Discard unstructured if-then-else regions.
9776
9777 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9778             Sebastian Pop  <s.pop@samsung.com>
9779
9780         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
9781         (cleanup_loop_iter_dom): Remove.
9782         (build_loop_iteration_domains): Remove.
9783         (build_scop_context): Remove.
9784         (build_scop_iteration_domain): Remove.
9785         (add_loop_constraints): New.
9786         (build_iteration_domains): New.
9787         (build_poly_scop): Call build_iteration_domains.
9788
9789 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9790             Sebastian Pop  <s.pop@samsung.com>
9791
9792         * graphite-scop-detection.c
9793         (scop_detection::harmful_loop_in_region): Free dom and loops.
9794         (scop_detection::loop_body_is_valid_scop): Free bbs.
9795
9796 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9797             Sebastian Pop  <s.pop@samsung.com>
9798
9799         * graphite-scop-detection.c (record_loop_in_sese): New.
9800         (gather_bbs::before_dom_children): Call record_loop_in_sese.
9801         (build_scops): Remove call to build_sese_loop_nests.
9802         * sese.c (sese_record_loop): Remove.
9803         (build_sese_loop_nests): Remove.
9804         (new_sese_info): Remove region->loops.
9805         (free_sese_info): Same.
9806         * sese.h (sese_contains_loop): Same.
9807         (build_sese_loop_nests): Remove.
9808         (sese_contains_loop): Remove.
9809
9810 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9811             Sebastian Pop  <s.pop@samsung.com>
9812
9813         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
9814         loop_is_valid_in_scop.
9815         (scop_detection::harmful_stmt_in_region): Renamed
9816         harmful_loop_in_region.
9817         Call loop_is_valid_in_scop.
9818
9819 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9820             Sebastian Pop  <s.pop@samsung.com>
9821
9822         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
9823         isl_ast_node_mark.
9824
9825 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9826             Sebastian Pop  <s.pop@samsung.com>
9827
9828         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
9829         * graphite.h (struct poly_bb): Remove field is_reduction.
9830         (PBB_IS_REDUCTION): Remove.
9831
9832 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
9833             Sebastian Pop  <s.pop@samsung.com>
9834
9835         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
9836         (add_pdr_constraints): Same.
9837         (scop_get_reads): Same.
9838         (scop_get_must_writes): Same.
9839         (scop_get_may_writes): Same.
9840         (scop_get_original_schedule): Same.
9841         (extend_schedule): Same.
9842         (apply_schedule_on_deps): Same.
9843         (carries_deps): Same.
9844         (compute_deps): Same.
9845         (scop_get_dependences): Same.
9846         * graphite-isl-ast-to-gimple.c
9847         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
9848         * graphite-optimize-isl.c (get_schedule_for_band): Same.
9849         (get_schedule_for_band_list): Same.
9850         (get_schedule_map): Same.
9851         (apply_schedule_map_to_scop): Same.
9852         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
9853         (build_loop_iteration_domains): Same.
9854         (add_condition_to_pbb): Same.
9855         (add_param_constraints): Same.
9856         (pdr_add_memory_accesses): Same.
9857         (pdr_add_data_dimensions): Same.
9858
9859 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
9860
9861         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
9862         requirements.
9863
9864 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
9865
9866         * common.opt (feliminate-dwarf2-dups): Replace references to
9867         "DWARF 2" with just "DWARF".
9868         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
9869         * doc/extend.texi: Likewise.
9870         * doc/cpp.texi: Likewise.
9871         * doc/invoke.texi: Likewise.
9872         (Option Summary): Add -gdwarf to list of Debugging Options.
9873         (Debugging Options): Document -gdwarf.
9874         * doc/contrib.texi: Spell "DWARF" like that.
9875
9876 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
9877
9878         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
9879         warning.  Fix up formatting.
9880
9881         PR middle-end/67653
9882         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
9883         attempt to mark memory input operand addressable and
9884         call prepare_gimple_addressable in that case.  Don't adjust
9885         input_location for diagnostics, use error_at instead.
9886
9887 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
9888
9889         * config/rs6000/ppc-auxv.h: New file.
9890         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
9891         (cpu_is): Likewise.
9892         (cpu_supports): Likewise.
9893         * config/rs6000/rs6000.c: include "ppc-auxv.h".
9894         (cpu_is_info): New variable.
9895         (cpu_supports_info): Likewise.
9896         (tcb_verification_symbol): Likewise.
9897         (cpu_builtin_p): Likewise.
9898         (cpu_expand_builtin): New function.
9899         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
9900         (rs6000_init_builtins): Likewise.
9901         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
9902         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
9903         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
9904         * configure: Regenerate.
9905         * config.in: Likewise.
9906         * doc/extend.texi (PowerPC Built-in Functions): Document
9907         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
9908
9909 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
9910
9911         PR target/68609
9912         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
9913         domain check.
9914         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
9915         for V4SFmode.
9916
9917 2016-01-20  Richard Henderson  <rth@redhat.com>
9918
9919         PR bootstrap/69343
9920         PR bootstrap/69339
9921         PR tree-opt/68964
9922         Revert:
9923         * tree.c (tm_define_builtin): New.
9924         (find_tm_vector_type): New.
9925         (build_tm_vector_builtins): New.
9926         (build_common_builtin_nodes): Call it.
9927
9928 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
9929
9930         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
9931         (arm_fp_ok): Likewise.
9932         (arm_fp): Likewise.
9933         (arm_crypto): Likewise.
9934
9935 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
9936             Richard Biener  <rguenther@suse.de>
9937
9938         PR tree-optimization/69328
9939         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
9940         vectors have same number of elements.
9941         (vectorizable_condition): Fix masked version recognition.
9942
9943 2016-01-20  Richard Biener  <rguenther@suse.de>
9944
9945         PR tree-optimization/69345
9946         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
9947         (VN_INFO_PTR_INFO): Likewise.
9948         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
9949         info when it is equal between non-dominating SSA names.
9950         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9951         Make sure to look at original SSA infos.
9952
9953 2016-01-20  Jeff Law  <law@redhat.com>
9954
9955         PR target/25114
9956         * config/m68k/predicates.md (pow2_m1_operand): New predicate
9957         extracted from ...
9958         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
9959         (pc_or_label_operand): New predicate.
9960         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
9961         tests for small integers that are 2^n - 1.
9962
9963 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
9964
9965         * doc/invoke.texi (Options Summary): Add '.' after @xref.
9966
9967 2016-01-19  Jeff Law  <law@redhat.com>
9968
9969         PR middle-end/69347
9970         * tree-ssa-threadbackwards.c
9971         (fsm_find_control_statement_thread_paths): Do not try to lookup
9972         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
9973
9974 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
9975
9976         * doc/lto.texi: Remove text that says only Gold has linker plugin
9977         support.
9978
9979 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
9980
9981         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
9982         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
9983         the DIE accordingly.
9984         (modified_type_die): Add REVERSE parameter and pass it recursively,
9985         as well as to base_type_die.  Adjust presence check accordingly.
9986         (base_type_for_mode): Adjust call to modified_type_die.
9987         (add_type_attribute): Add REVERSE parameter and pass it to
9988         modified_type_die.
9989         (generic_parameter_die): Adjust call to add_type_attribute.
9990         (add_scalar_info): Likewise.
9991         (add_subscript_info): Likewise.
9992         (gen_array_type_die): Likewise.
9993         (gen_descr_array_type_die): Likewise.
9994         (gen_entry_point_die): Likewise.
9995         (gen_enumeration_type_die): Likewise.
9996         (gen_formal_parameter_die): Likewise.
9997         (gen_subprogram_die): Likewise.
9998         (gen_variable_die ): Likewise.
9999         (gen_const_die): Likewise.
10000         (gen_field_die): Likewise.
10001         (gen_pointer_type_die): Likewise.
10002         (gen_reference_type_die): Likewise.
10003         (gen_ptr_to_mbr_type_die): Likewise.
10004         (gen_inheritance_die): Likewise.
10005         (gen_subroutine_type_die): Likewise.
10006         (gen_typedef_die): Likewise.
10007         (force_type_die): Adjust call to modified_type_die.
10008
10009 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10010
10011         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10012         flow throughout the file.  Fix broken link to Objective-C 2.0
10013         documentation.
10014         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10015         errors.
10016
10017 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10018
10019         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10020
10021 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10022
10023         PR ipa/66223
10024         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10025         (maybe_record_node): Record cxa_pure_virtual as the only possible
10026         target if there are not ohter candidates.
10027         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10028
10029 2016-01-19  Richard Biener  <rguenther@suse.de>
10030
10031         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10032         (get_memory_order): Likewise.
10033
10034 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10035
10036         * tree-vect-stmts.c (vectorizable_store): Check
10037         rhs vectype.
10038
10039 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10040
10041         PR jit/68446
10042         * gcc.c (driver::decode_argv): Add call to
10043         init_opts_obstack before init_options_struct.
10044         * opts.c (init_opts_obstack): Remove idempotency.
10045         (init_options_struct): Replace call to init_opts_obstack
10046         with a gcc_assert to verify that it has already been called.
10047         * toplev.c (toplev::main): Add call to init_opts_obstack before
10048         calls to init_options_struct.
10049         (toplev::finalize): Move cleanup of opts_obstack next to
10050         cleanup of save_decoded_options, clearing the latter, and
10051         save_decoded_options_count.
10052
10053 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10054
10055         PR target/69135
10056         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10057         attribute to unconditional.  Remove %? from output template.
10058
10059 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10060             Jiong Wang  <jiong.wang@arm.com>
10061
10062         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10063         generated from different expand order.
10064
10065 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10066
10067         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10068         Add support for CCMP costing.
10069
10070 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10071
10072         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10073         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10074         (fccmpe<mode>): Likewise.
10075         (fcmp): Rename to fcmp and globalize pattern.
10076         (fcmpe): Likewise.
10077         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10078         (aarch64_gen_ccmp_next): Add FP support.
10079
10080 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10081
10082         * target.def (gen_ccmp_first): Update documentation.
10083         (gen_ccmp_next): Likewise.
10084         * doc/tm.texi (gen_ccmp_first): Update documentation.
10085         (gen_ccmp_next): Likewise.
10086         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10087         expand_ccmp_expr_1.  Improve comments.
10088         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10089         (ccmp_ior<mode>): Remove pattern.
10090         (cmp<mode>): Remove expand.
10091         (cmp): Globalize pattern.
10092         (cstorecc4): Use cc_register.
10093         (mov<mode>cc): Remove ccmp_cc_register check.
10094         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10095         Simplify after removal of CC_DNE/* modes.
10096         (aarch64_ccmp_mode_to_code): Remove.
10097         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10098         In 'k' case use integer as condition.
10099         (aarch64_nzcv_codes): Remove inverted cases.
10100         (aarch64_code_to_ccmode): Remove.
10101         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10102         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10103         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10104         pattern.  Return the comparison with CC register.  Invert conditions
10105         when bitcode is OR.
10106         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10107         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10108
10109 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10110
10111         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10112         instrumented_version.
10113
10114 2016-01-19  Richard Biener  <rguenther@suse.de>
10115
10116         PR tree-optimization/69336
10117         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10118         handled components with get_ref_base_and_extent.
10119         (equal_mem_array_ref_p): Adjust.
10120
10121 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10122
10123         PR debug/65779
10124         * shrink-wrap.c: Include valtrack.h.
10125         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10126         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10127         in between insn and where it will be moved to.  Call
10128         dead_debug_insert_temp.
10129         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10130         first and dead_debug_local_finish at the end.
10131         For uses and defs bitmap, handle all regs in between REGNO and
10132         END_REGNO, not just the first one.
10133
10134 2016-01-19  Richard Biener  <rguenther@suse.de>
10135
10136         PR tree-optimization/69352
10137         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10138         (equal_mem_array_ref_p): Constrain size and max size properly.
10139         Compare the reverse flag.
10140
10141 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10142
10143         * ira.c (ira): Update regstat data if we deleted insns.
10144
10145 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10146
10147         PR rtl-optimization/68955
10148         PR rtl-optimization/64557
10149         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10150         here.  Fix up formatting.
10151         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10152
10153 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10154
10155         PR lto/69133
10156         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10157         assume that the node has body.
10158         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10159         check.
10160
10161 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10162
10163         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10164         thunks.
10165
10166 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10167
10168         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10169         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10170
10171 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10172             Martin Liska  <mliska@suse.cz>
10173             Michael Matz  <matz@suse.de>
10174
10175         * Makefile.in (OBJS): Add new source files.
10176         (GTFILES): Add hsa.c.
10177         * common.opt (disable_hsa): New variable.
10178         (-Whsa): New warning.
10179         * config.in (ENABLE_HSA): New.
10180         * configure.ac: Treat hsa differently from other accelerators.
10181         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10182         $enable_offloading.
10183         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10184         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10185         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10186         --with-hsa-kmt-lib.
10187         * doc/invoke.texi (-Whsa): Document.
10188         (hsa-gen-debug-stores): Likewise.
10189         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10190         to invoke offload compiler for hsa acclerator.
10191         * opts.c (common_handle_option): Determine whether HSA offloading
10192         should be performed.
10193         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10194         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10195         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10196         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10197         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10198         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10199         GF_OMP_FOR_KIND_GRID_LOOP.
10200         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10201         (pp_gimple_stmt_1): Likewise.
10202         * gimple-walk.c (walk_gimple_stmt): Likewise.
10203         * gimple.c (gimple_build_omp_grid_body): New function.
10204         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10205         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10206         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10207         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10208         GF_OMP_TEAMS_GRID_PHONY.
10209         (gimple_statement_omp_single_layout): Updated comments.
10210         (gimple_build_omp_grid_body): New function.
10211         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10212         (gimple_omp_for_grid_phony): New function.
10213         (gimple_omp_for_set_grid_phony): Likewise.
10214         (gimple_omp_parallel_grid_phony): Likewise.
10215         (gimple_omp_parallel_set_grid_phony): Likewise.
10216         (gimple_omp_teams_grid_phony): Likewise.
10217         (gimple_omp_teams_set_grid_phony): Likewise.
10218         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10219         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10220         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10221         (BUILT_IN_GOMP_TARGET): Updated type.
10222         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10223         (adjust_for_condition): New function.
10224         (get_omp_for_step_from_incr): Likewise.
10225         (extract_omp_for_data): Moved parts to adjust_for_condition and
10226         get_omp_for_step_from_incr.
10227         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10228         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10229         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10230         (scan_omp_parallel): Do not create child functions for phony
10231         constructs.
10232         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10233         (scan_omp_1_op): Checking assert we are not remapping to
10234         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10235         (parallel_needs_hsa_kernel_p): New function.
10236         (expand_parallel_call): Register apprpriate parallel child
10237         functions as HSA kernels.
10238         (grid_launch_attributes_trees): New type.
10239         (grid_attr_trees): New variable.
10240         (grid_create_kernel_launch_attr_types): New function.
10241         (grid_insert_store_range_dim): Likewise.
10242         (grid_get_kernel_launch_attributes): Likewise.
10243         (get_target_argument_identifier_1): Likewise.
10244         (get_target_argument_identifier): Likewise.
10245         (get_target_argument_value): Likewise.
10246         (push_target_argument_according_to_value): Likewise.
10247         (get_target_arguments): Likewise.
10248         (expand_omp_target): Call get_target_arguments instead of looking
10249         up for teams and thread limit.
10250         (grid_expand_omp_for_loop): New function.
10251         (grid_arg_decl_map): New type.
10252         (grid_remap_kernel_arg_accesses): New function.
10253         (grid_expand_target_kernel_body): New function.
10254         (expand_omp): Call it.
10255         (lower_omp_for): Do not emit phony constructs.
10256         (lower_omp_taskreg): Do not emit phony constructs but create for them
10257         a temporary variable receiver_decl.
10258         (lower_omp_taskreg): Do not emit phony constructs.
10259         (lower_omp_teams): Likewise.
10260         (lower_omp_grid_body): New function.
10261         (lower_omp_1): Call it.
10262         (grid_reg_assignment_to_local_var_p): New function.
10263         (grid_seq_only_contains_local_assignments): Likewise.
10264         (grid_find_single_omp_among_assignments_1): Likewise.
10265         (grid_find_single_omp_among_assignments): Likewise.
10266         (grid_find_ungridifiable_statement): Likewise.
10267         (grid_target_follows_gridifiable_pattern): Likewise.
10268         (grid_remap_prebody_decls): Likewise.
10269         (grid_copy_leading_local_assignments): Likewise.
10270         (grid_process_kernel_body_copy): Likewise.
10271         (grid_attempt_target_gridification): Likewise.
10272         (grid_gridify_all_targets_stmt): Likewise.
10273         (grid_gridify_all_targets): Likewise.
10274         (execute_lower_omp): Call grid_gridify_all_targets.
10275         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10276         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10277         (tree_omp_clause): Added union field dimension.
10278         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10279         * tree.c (omp_clause_num_ops): Added number of arguments of
10280         OMP_CLAUSE__GRIDDIM_.
10281         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10282         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10283         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10284         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10285         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10286         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10287         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10288         * tree-pass.h (make_pass_gen_hsail): Declare.
10289         (make_pass_ipa_hsa): Likewise.
10290         * ipa-hsa.c: New file.
10291         * lto-section-in.c (lto_section_name): Add hsa section name.
10292         * lto-streamer.h (lto_section_type): Add hsa section.
10293         * timevar.def (TV_IPA_HSA): New.
10294         * hsa-brig-format.h: New file.
10295         * hsa-brig.c: New file.
10296         * hsa-dump.c: Likewise.
10297         * hsa-gen.c: Likewise.
10298         * hsa.c: Likewise.
10299         * hsa.h: Likewise.
10300         * toplev.c (compile_file): Call hsa_output_brig.
10301         * hsa-regalloc.c: New file.
10302
10303 2016-01-18  Jeff Law  <law@redhat.com>
10304
10305         PR tree-optimization/69320
10306         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10307         ranged object, do nothing if the RHS constant is not [0..1].
10308         (optimize_stmt): Comparing a boolean ranged object against a
10309         constant outside [0..1] results in a compile-time constant.
10310
10311         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10312         test.
10313
10314 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10315
10316         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10317         (Option Summary): Update to reflect new section and moved options.
10318         (C++ Dialect Options): Move -fstats to new section.
10319         (Debugging Options): Move all dump, statistics, and other GCC
10320         developer options to new section.  Rewrite section introduction
10321         and re-order remaining options to put the more basic ones first.
10322         (Optimization Options): Move -fira-verbose and -flto-report* to
10323         new section.
10324         (Developer Options): New section incorporating moved options.
10325         * doc/cppopts.texi (-dM): Update cross-reference.
10326
10327 2016-01-18  Richard Henderson  <rth@redhat.com>
10328
10329         PR target/69176
10330         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10331         operands to pseudo only if CSE is expected.  Split long immediate
10332         operands only after reload, and for the stack pointer.
10333         (*add<GPI>3_pluslong): Remove.
10334         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10335         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10336         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10337         (*add<GPI>3 peepholes): New.
10338         (*add<GPI>3 splitters): New.
10339         * config/aarch64/constraints.md (Upl): New.
10340         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10341
10342 2016-01-18  Richard Biener  <rguenther@suse.de>
10343
10344         PR tree-optimization/69297
10345         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10346         stmt at most once.
10347         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10348
10349 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10350
10351         PR middle-end/68542
10352         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10353         of mixind vector and scalar types.
10354         (fold_relational_const): Add handling of vector
10355         comparison with boolean result.
10356         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10357         comparison of vector operands with boolean result for EQ/NE only.
10358         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10359         (verify_gimple_cond): Likewise.
10360         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10361         valid type of VAL.
10362
10363 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10364
10365         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10366         !TARGET_OCTEON.
10367
10368 2016-01-18  Richard Biener  <rguenther@suse.de>
10369
10370         PR middle-end/69308
10371         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10372
10373 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10374
10375         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10376
10377 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10378
10379         * omp-low.c (set_oacc_fn_attrib): Make extern.
10380         * omp-low.h (set_oacc_fn_attrib): Declare.
10381         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10382         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10383         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10384         Add and handle function parameter oacc_kernels_p.
10385         (find_reduc_addr, get_omp_data_i_param): New function.
10386         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10387         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10388         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10389         Calculate dominance info.  Skip loops that are not in a kernels region
10390         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10391         (pass_parallelize_loops::execute): Call parallelize_loops with
10392         oacc_kernels_p argument.
10393         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10394         New member function.
10395         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10396         * passes.def: Add argument to pass_parallelize_loops instantation.
10397
10398 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10399
10400         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10401         pass_parallelize_loops to be run outside the loop pipeline.
10402
10403 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10404
10405         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10406         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10407
10408 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10409
10410         PR target/63679
10411         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10412         using get_ref_base_and_extent.
10413         (equal_mem_array_ref_p): New.
10414         (hashable_expr_equal_p): Add call to previous.
10415
10416 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10417
10418         PR target/63679
10419         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10420         (sra_initialize): Allocate disqualified_constants.
10421         (sra_deinitialize): Free disqualified_constants.
10422         (disqualify_candidate): Update disqualified_constants when appropriate.
10423         (create_access): Scan for constant-pool entries as we go along.
10424         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10425         (maybe_add_sra_candidate): Allow constant-pool entries.
10426         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10427         (initialize_constant_pool_replacements): New.
10428         (sra_modify_assign): Avoid mangling assignments created by previous,
10429         and don't generate writes into constant pool.
10430         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10431
10432 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10433
10434         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10435         andnot instruction.
10436         (scalar_chain::convert_op): Likewise.
10437         * config/i386/i386.md (*andndi3_doubleword): New.
10438
10439 2016-01-18  Richard Biener  <rguenther@suse.de>
10440
10441         PR tree-optimization/69170
10442         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10443         building a vector from scalar results of a pattern stmt.
10444
10445 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10446
10447         * haifa-sched.c (autopref_multipass_init): Work around
10448         -Wmaybe-uninitialized warning.
10449
10450 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10451
10452         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10453         against the constant 0.
10454
10455 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10456
10457         PR tree-optimization/68799
10458         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10459         look up phi candidates in the statement-candidate map.
10460         (phi_add_costs): Likewise.
10461         (record_phi_increments): Likewise.
10462         (phi_incr_cost): Likewise.
10463         (ncd_with_phi): Likewise.
10464         (all_phi_incrs_profitable): Likewise.
10465
10466 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10467
10468         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10469         -Wmaybe-uninitialized warning.
10470
10471 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10472
10473         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10474         (Option Summary): Update to reflect new section and moved options.
10475         (C++ Dialect Options): Move -fvtable-verify and related options.
10476         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10477         and profiling-related options.
10478         (Optimization Options): Move profile generation options and
10479         -fstack-protector and related options.
10480         (Instrumentation Options): New section incorporating moved options.
10481         (Code Generation Options): Move -finstrument-functions and
10482         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10483
10484 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10485
10486         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10487
10488 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10489
10490         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10491
10492 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10493
10494         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10495         that checks whether the table is already empty.  Rename the
10496         original implementation to...
10497         (hash_table::empty_slot): ...this new private function.
10498
10499 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10500
10501         PR diagnostic/68899
10502         * diagnostic-show-locus.c (layout::print_source_line): Move x
10503         offset of line until after call to
10504         get_line_width_without_trailing_whitespace.
10505
10506 2016-01-15  Jeff Law  <law@redhat.com>
10507
10508         PR tree-optimization/69270
10509         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10510         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10511         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10512         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10513         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10514         ssa_name_has_boolean_range and constant_boolean_node.
10515
10516 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10517
10518         PR rtl-optimization/69030
10519         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10520         returning bool.
10521         (spill_pseudos): Delete debug insn for dead pseudo.
10522         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10523
10524 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10525
10526         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10527         New.
10528         (TYPES_UNOPUS): Likewise.
10529         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10530         builtin type, from UNOP to UNOPUS.
10531         (lbtruncuv4sf): Likewise.
10532         (lbtruncuv2df): Likewise.
10533         (lrounduv2sf): Likewise.
10534         (lrounduv4sf): Likewise.
10535         (lrounduv2df): Likewise.
10536         (lroundusf): Likewise.
10537         (lroundusf): Likewise.
10538         (lceiluv2sf): Likewise.
10539         (lceiluv4sf): Likewise.
10540         (lceiluv2df): Likewise.
10541         (lceilusf): Likewise.
10542         (lceiludf): Likewise.
10543         (lflooruv2sf): Likewise.
10544         (lflooruv4sf): Likewise.
10545         (lflooruv2df): Likewise.
10546         (lfloorusf): Likewise.
10547         (lfloorudf): Likewise.
10548         (lfrintnuv2sf): Likewise.
10549         (lfrintnuv4sf): Likewise.
10550         (lfrintnuv2df): Likewise.
10551         (lfrintnusf): Likewise.
10552         (lfrintnudf): Likewise.
10553         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10554         conversion.
10555         (vcvtq_u32_f32): Likewise.
10556         (vcvtq_u64_f64): Likewise.
10557         (vcvta_u32_f32): Likewise.
10558         (vcvtaq_u32_f32): Likewise.
10559         (vcvtaq_u64_f64): Likewise.
10560         (vcvtm_u32_f32): Likewise.
10561         (vcvtmq_u32_f32): Likewise.
10562         (vcvtmq_u64_f64): Likewise.
10563         (vcvtn_u32_f32): Likwise.
10564         (vcvtnq_u32_f32): Likewise.
10565         (vcvtnq_u64_f64): Likewise.
10566         (vcvtp_u32_f32): Likewise.
10567         (vcvtpq_u32_f32): Likewise.
10568         (vcvtpq_u64_f64): Likewise.
10569         (vcvtmd_u64_f64): Likewise.
10570         (vcvtms_u32_f32): Likewise.
10571         (vcvtad_u64_f64): Likewise.
10572         (vcvtas_u32_f32): Likewise.
10573         (vcvtnd_u64_f64): Likewise.
10574         (vcvtns_u32_f32): Likewise.
10575         (vcvtpd_u64_f64): Likewise.
10576         (vcvtps_u32_f32): Likewise.
10577
10578 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10579
10580         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10581         CSEL of zero_extended registers.
10582
10583 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10584
10585         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10586         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
10587
10588 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10589
10590         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
10591         false when argument string is not found in the attributes table
10592         at all.
10593
10594 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
10595
10596         PR target/68609
10597         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
10598         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
10599         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
10600         precision estimate.
10601
10602 2016-01-15  Richard Biener  <rguenther@suse.de>
10603
10604         PR tree-optimization/66856
10605         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
10606         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
10607         (vect_create_new_slp_node): Increment stmt reference count.
10608         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
10609         an SLP tree before swapping operands.
10610         (vect_build_slp_tree): Likewise.
10611         (destroy_bb_vec_info): Free stmt info after SLP instances.
10612         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
10613         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
10614         (STMT_VINFO_NUM_SLP_USES): New macro.
10615
10616 2016-01-15  Richard Biener  <rguenther@suse.de>
10617
10618         PR debug/69137
10619         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
10620         (add_linkage_name): ... here.
10621         (gen_typedef_die): Use add_linkage_name_raw instead of
10622         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
10623         if necessary.
10624
10625 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
10626
10627         * gimplify.c (oacc_default_clause): Decode reference and pointer
10628         types for both kernels and parallel regions.
10629
10630 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
10631
10632         PR middle-end/69246
10633         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
10634
10635 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10636
10637         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
10638         (convert_scalars_to_vector): Likewise.
10639
10640 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
10641
10642         * doc/extend.texi (Type Traits): Fix grammar.
10643
10644 2016-01-15  Martin Jambor  <mjambor@suse.cz>
10645
10646         * tree-inline.c (remap_decl): Use existing dclarations if
10647         remapping a type and prevent_decl_creation_for_types.
10648         (replace_locals_stmt): Do an initial remapping of non-VLA typed
10649         decls first.  Do real remapping with
10650         prevent_decl_creation_for_types set.
10651         * tree-inline.h (copy_body_data): New field
10652         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
10653         padding.
10654
10655 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10656
10657         * config/s390/s390.opt (mmvcle): More verbose help text.
10658
10659 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10660
10661         * config/s390/s390.opt: Add period to -mzvector option text.
10662
10663 2016-01-15  Richard Biener  <rguenther@suse.de>
10664
10665         PR tree-optimization/68961
10666         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
10667         of invariants in stores again.
10668
10669 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
10670
10671         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
10672
10673 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
10674
10675         * config/i386/i386.c (ix86_expand_branch): Don't split
10676         DI mode xor instruction to SI mode.
10677
10678 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10679
10680         PR ipa/68148
10681         * ipa-icf.c (sem_function::merge): Virtual functions may become
10682         reachable even if they address is not taken and there are no
10683         idrect calls.
10684
10685 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
10686
10687         * lto-streamer-out.c (subtract_estimated_size): New function.
10688         (get_symbol_initial_value): Use it.
10689
10690 2016-01-15  Christian Bruel  <christian.bruel@st.com>
10691
10692         PR target/65837
10693         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
10694         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
10695         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
10696         use add_builtin_function_ext_scope instead of add_builtin_function.
10697         (neon_set_p, neon_crypto_set_p): Remove.
10698         (arm_init_builtins): Always call arm_init_neon_builtins and
10699         arm_init_crypto_builtins.
10700         (arm_expand_builtin): Check that builtins are allowed for the arch.
10701         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
10702         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
10703         arm_init_neon_builtins call.
10704
10705 2016-01-15  Richard Biener  <rguenther@suse.de>
10706
10707         PR tree-optimization/69117
10708         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
10709         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
10710         of the leader conservatively.
10711         (free_scc_vn): Restore original SSA name infos.
10712
10713 2016-01-14  Jeff Law  <law@redhat.com>
10714
10715         PR tree-optimization/69270
10716         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
10717         single bit of precision, verify it's also unsigned.
10718         (record_edge_info): Use constant_boolean_node rather than fold_convert
10719         to convert boolean_true/boolean_false to the right type.
10720
10721 2016-01-14  Richard Henderson  <rth@redhat.com>
10722
10723         PR rtl-opt/69014
10724         * loop-doloop.c (record_reg_sets): New.
10725         (doloop_optimize): Reject the transform if the sequence
10726         clobbers registers live at the end of the loop block.
10727         (doloop_optimize_loops): Enable df_live if needed.
10728
10729 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10730
10731         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
10732         * gcc/config/rs6000/rs6000.c: Likewise.
10733         * gcc/config/rs6000/rs6000.h: Likewise.
10734         * gcc/config/rs6000/rs6000.md: Likewise.
10735         * gcc/doc/extend.texi: Likewsie.
10736
10737 2016-01-14  Jeff Law  <law@redhat.com>
10738
10739         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
10740         typo.
10741
10742 2016-01-14  Richard Henderson  <rth@redhat.com>
10743
10744         PR c/69272
10745         PR tree-opt/68964
10746         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
10747         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
10748         instead of builtin_decl_declared_p to test for declaration.
10749
10750 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
10751
10752         * doc/loop.texi (Loop Analysis and Representation): Document
10753         loop_depth function.
10754
10755 2016-01-14  Tom de Vries  <tom@codesourcery.com>
10756
10757         PR tree-optimization/68773
10758         * omp-low.c (expand_omp_target): Don't set force_output.
10759         * varpool.c (varpool_node::get_create): Same.
10760         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
10761         offload_funcs with force_output.
10762
10763 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10764
10765         PR debug/69244
10766         * lra-eliminations.c (move_plus_up): Don't change anything if either
10767         the outer or inner subreg mode is not MODE_INT.
10768         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
10769         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
10770
10771 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
10772
10773         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
10774         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
10775         reduc_uplus_@var{m}): Remove.
10776         * expr.c (expand_expr_real_2): Remove expansion path for
10777         reduc_[us](min|max|plus) optabs.
10778         * optabs-tree.c (scalar_reduc_to_vector): Remove.
10779         * optabs-tree.h (scalar_reduc_to_vector): Remove.
10780         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
10781         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
10782         * tree-vect-loop.c (vectorizable_reduction): Remove test for
10783         reduc_[us](min|max|plus) optabs.
10784
10785 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
10786
10787         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
10788         (reduc_plus_scal_v2sf): New.
10789         (reduc_smax_v2sf): Rename to...
10790         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
10791         (reduc_smin_v2sf): Rename to...
10792         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
10793
10794 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
10795
10796         * alias.c (compare_base_symbol_refs): New function.
10797         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
10798         it.
10799
10800 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10801
10802         PR middle-end/68146
10803         PR tree-optimization/69155
10804         * tree-complex.c: Include cfganal.h.
10805         (phis_to_revisit): New variable.
10806         (extract_component): Add phiarg_p argument.  Assert that returned
10807         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
10808         (update_phi_components): Partly rewrite to use loop over real/imag
10809         components instead of code duplication.  If extract_component returns
10810         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
10811         create_tmp_reg into the PHI node instead, and mention the phi triplet
10812         in phis_to_revisit.
10813         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
10814         in phis_to_revisit at the end.
10815
10816 2016-01-14  Richard Biener  <rguenther@suse.de>
10817
10818         PR tree-optimization/68060
10819         * tree-vect-loop.c (vect_is_simple_reduction): Check the
10820         outer loop reduction is only used in the inner loop before
10821         detecting a double reduction.
10822
10823 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
10824
10825         PR target/68269
10826         * combine.c (expand_field_assignment): Punt if compute_mode is
10827         unsupported scalar mode.
10828
10829 2016-01-14  Richard Biener  <rguenther@suse.de>
10830
10831         PR tree-optimization/66856
10832         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
10833         SLP node only if it built successfully.
10834         (vect_analyze_slp_instance): Adjust.
10835
10836 2016-01-14  Jeff Law  <law@redhat.com>
10837
10838         PR tree-optimization/69270
10839         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
10840         (record_edge_info): Use it.  Convert boolean_{true,false}_node
10841         to the type of op0.
10842
10843 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
10844
10845         PR ipa/66487
10846         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
10847         use block_ultimate_origin
10848         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
10849
10850 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
10851
10852         * doc/invoke.texi (Submodel Options): Rename section to
10853         "Machine-Dependent Options" to better reflect its content.
10854         Rewrite introductory text to remove archaic CPU names.
10855         Update references.
10856
10857 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
10858
10859         * doc/invoke.texi (Code Gen Options): Move section up in file,
10860         before target-specific options.  Update menu and option summary
10861         to reflect the new section ordering.
10862
10863 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
10864
10865         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
10866         (C++ Dialect Options): Add cross-reference to -std option.
10867         * doc/standards.texi (C++ Language): Document C++14 support.
10868
10869 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
10870
10871         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
10872         for pack/unpack functions for __ibm128.
10873         (PACK_IF): Likewise.
10874         (UNPACK_IF): Likewise.
10875
10876         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
10877         support for __ibm128 pack/unpack functions.
10878         (rs6000_invalid_builtin): Likewise.
10879         (rs6000_init_builtins): Likewise.
10880         (rs6000_opt_masks): Likewise.
10881
10882         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
10883         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
10884         functions
10885         (RS6000_BTM_COMMON): Likewise.
10886
10887         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
10888         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
10889         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
10890         128-bit floating point.  Add support for the double values to be
10891         in Altivec registers for TF/IF packing and unpacking, but restrict
10892         TD packing sub-fields to be FPR registers.  Don't allow overlapped
10893         register support for packing.  Allow pack inputs to be memory
10894         locations.  Don't build generator functions for unpack<mode>_dm
10895         and unpack<mode>_nodm.
10896         (unpack<mode>_dm): Likewise.
10897         (unpack<mode>_nodm): Likewise.
10898         (pack<mode>): Likewise.
10899
10900         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
10901         built-in functions to pack/unpack explicit __ibm128 values.
10902         (__builtin_unpack_ibm128): Likewise.
10903
10904         * doc/extend.texi (PowerPC Built-in Functions): Document
10905         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
10906
10907 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
10908
10909         PR c/66208
10910         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
10911         Add new arg loc and pass it down as context.
10912         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
10913         to the location to use for the warning.
10914         (check_function_arguments): New arg loc.  All callers changed.  Pass
10915         it to check_function_nonnull.
10916         * c-common.h (check_function_arguments): Adjust declaration.
10917
10918 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
10919
10920         PR tree-optimization/69156
10921         * gimple.c (validate_type): Removed.
10922         (gimple_builtin_call_types_compatible_p): Use
10923         useless_type_conversion_p instead of validate_type.
10924         * value-prof.c (gimple_stringop_fixed_value): Fold
10925         icall_size to correct type.
10926
10927 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
10928
10929         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
10930         effects.
10931
10932 2016-01-13  Richard Henderson  <rth@redhat.com>
10933
10934         PR tree-opt/68964
10935         * target.def (builtin_tm_load, builtin_tm_store): Remove.
10936         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
10937         (ix86_builtin_tm_store): Remove.
10938         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
10939         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
10940         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
10941         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
10942         * doc/tm.texi: Rebuild.
10943
10944         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
10945         (BUILT_IN_TM_MEMCPY_RTWN): New.
10946         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
10947         fallback from vector to integer helpers.
10948         (build_tm_load): Handle vector types directly, instead of
10949         via target hook.
10950         (build_tm_store): Likewise.
10951         (expand_assign_tm): Prepare for register types not handled by
10952         the above.  Copy them to memory and use memcpy.
10953         * tree.c (tm_define_builtin): New.
10954         (find_tm_vector_type): New.
10955         (build_tm_vector_builtins): New.
10956         (build_common_builtin_nodes): Call it.
10957
10958 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
10959
10960         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
10961         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
10962
10963 2016-01-13  Tom de Vries  <tom@codesourcery.com>
10964
10965         PR tree-optimization/69169
10966         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
10967         handled_struct_type param.
10968         (create_variable_info_for, intra_create_variable_infos): Call
10969         create_variable_info_for_1 with extra arg.
10970
10971 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
10972
10973         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
10974         and "armv8.1-a+crc" entries.
10975
10976 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
10977
10978         PR target/69228
10979         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
10980         Change first operand predicate from register_or_constm1_operand
10981         to register_operand.
10982         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
10983         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
10984         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
10985         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
10986         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
10987         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
10988         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
10989         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
10990         comparison with constm1_rtx from vec_prefetch_gen part.
10991
10992 2016-01-13  Richard Biener  <rguenther@suse.de>
10993
10994         PR tree-optimization/69013
10995         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
10996         Exchange assert for a test.
10997
10998 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10999
11000         PR target/69247
11001         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11002
11003 2016-01-13  Richard Biener  <rguenther@suse.de>
11004
11005         PR tree-optimization/69242
11006         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11007         assert with a check.
11008
11009 2016-01-13  Richard Biener  <rguenther@suse.de>
11010
11011         PR tree-optimization/69186
11012         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11013         Properly guard vect_update_misalignment_for_peel call.
11014
11015 2016-01-12  Jeff Law  <law@redhat.com>
11016
11017         PR tree-optimization/pr67755
11018         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11019         "need_profile_correction".
11020         (thread_block_1): Initialize new field to false by default.  If we
11021         have multiple thread paths through a common joiner to different
11022         final targets, then set new field to true.
11023         (compute_path_counts): Only do count adjustment when it's really
11024         needed.
11025
11026 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11027
11028         * doc/invoke.texi (Spec Files): Move section down in file, past
11029         all command-line option descriptions.
11030
11031 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11032
11033         PR middle-end/54809
11034         * doc/gty.texi: Remove documentation of mark_hook.
11035         * gengtype.c (struct write_types_data): Remove code to support
11036         mark_hook attribute.
11037         (walk_type): Likewise.
11038         (write_func_for_structure): Likewise.
11039
11040 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11041
11042         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11043         Directory Options, and -specs= to Overall Options.
11044         (Overall Options): Adjust similarly.  Reorder to group related
11045         options together.  Make -specs= cross-reference the spec file details.
11046         (Directory Options): Adjust similarly.
11047
11048 2016-01-12  Jeff Law  <law@redhat.com>
11049
11050         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11051
11052 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11053
11054         * gcc.c (spec_undefvar_allowed): New global.
11055         (process_command): Set to true when running for --version or --help,
11056         alone or together.
11057         (getenv_spec_function): When the variable is not defined, use the
11058         variable name as the variable value if we're allowed not to issue
11059         a fatal error.
11060
11061 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11062
11063         PR tree-optimization/68911
11064         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11065         information computed for expression "init + nit * step".
11066
11067 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11068
11069         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11070         about name of GCC executable.  Remove deleted node from menu.
11071         (Directory Options) <-B>: Remove cross-reference to deleted node.
11072         (Target Options): Delete section.
11073
11074 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11075
11076         PR target/69180
11077         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11078         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11079
11080 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11081
11082         PR target/69198
11083         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11084         aligned_mem is properly set for AVX512-VL floating point masked
11085         stores.
11086
11087         PR target/69175
11088         * ifcvt.c (cond_exec_process_if_block): When removing the last
11089         insn from then_bb, remove also any possible barriers that follow it.
11090
11091 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11092
11093         PR target/68456
11094         PR target/69226
11095         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11096         (PTRDIFF_TYPE): Likewise.
11097         (WCHAR_TYPE): Likewise.
11098         (WCHAR_TYPE_SIZE): Likewise.
11099         (STDINT_LONG32): Likewise.
11100
11101 2016-01-12  Richard Biener  <rguenther@suse.de>
11102
11103         PR tree-optimization/69053
11104         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11105         convert initial value for cond reductions.
11106
11107 2016-01-12  Richard Biener  <rguenther@suse.de>
11108
11109         PR tree-optimization/69007
11110         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11111         widen_sum after dot_prod and sad.
11112
11113 2016-01-12  Richard Biener  <rguenther@suse.de>
11114
11115         PR tree-optimization/69168
11116         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11117         pattern stmt SLP type.
11118         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11119         end up unused so cope with that case.
11120
11121 2016-01-12  Richard Biener  <rguenther@suse.de>
11122
11123         PR tree-optimization/69157
11124         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11125         stmts def type only during analyze phase.
11126         (vectorizable_call): Likewise.
11127         (vectorizable_simd_clone_call): Likewise.
11128         (vectorizable_conversion): Likewise.
11129         (vectorizable_assignment): Likewise.
11130         (vectorizable_shift): Likewise.
11131         (vectorizable_operation): Likewise.
11132         (vectorizable_store): Likewise.
11133         (vectorizable_load): Likewise.
11134
11135 2016-01-12  Richard Biener  <rguenther@suse.de>
11136
11137         PR tree-optimization/69174
11138         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11139         space.
11140         (vectorizable_load): Properly compute the number of loads needed
11141         for permuted strided SLP loads and do not spuriously assign
11142         to SLP_TREE_VEC_STMTS.
11143
11144 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11145
11146         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11147         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11148         (MD_EXEC_PREFIX): Remove.
11149         (MD_STARTFILE_PREFIX) Removee.
11150         (FILE_NAME_ABSOLUTE_P): Remove.
11151         (CPP_SPEC): Do not read macros from sys/version.h.
11152         (LINK_COMMAND_SPEC): Remove.
11153         (LOCAL_INCLUDE_DIR): Remove.
11154         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11155         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11156         (POST_LINK_SPEC): Define to invoke stubify after linker
11157         (LIBSTDCXX): Remove define
11158         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11159         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11160         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11161         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11162         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11163         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11164         (i386_djgpp_asm_named_section): Add propotype of new procedure
11165
11166         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11167         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11168         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11169         in config/i386/djgpp.h).
11170         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11171         STANDARD_STARTFILE_PREFIX_1.
11172         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11173         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11174         installation errors.
11175         (MAX_OFILE_ALIGNMENT): Define to 128.
11176         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11177
11178         * config/i386/djgpp.c: New file. Add implementation of
11179         i386_djgpp_asm_named_section.
11180
11181         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11182
11183         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11184         Add rule for building djgpp.o.
11185
11186 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11187
11188         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11189         (rtx_is_swappable_p): Reductions are swappable.
11190         (insn_is_swappable_p): V2DF reductions are swappable.
11191
11192 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11193
11194         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11195         reloads for other unsupported memory operands.
11196
11197 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11198             Jim Wilson  <jim.wilson@linaro.org>
11199
11200         PR target/69194
11201         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11202         copy_to_mode_reg instead of force_reg.
11203
11204 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11205
11206         PR target/69225
11207         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11208         TARGET_80387 is true.
11209
11210 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11211
11212         PR target/69071
11213         * lra-eliminations.c (move_plus_up): Only move plus up
11214         if subreg of the constant can be simplified into constant
11215         and use the simplified subreg of the constant instead of
11216         the original constant.
11217
11218         * fold-const.c (fold_convertible_p): Don't return true
11219         for conversion of VECTOR_TYPE to same sized integral type.
11220         (fold_convert_loc): Fix up formatting.  Fold conversion of
11221         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11222         instead of NOP_EXPR.
11223
11224         PR tree-optimization/69214
11225         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11226         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11227         Formatting fix.
11228
11229         PR tree-optimization/69207
11230         * tree-vect-slp.c (vect_get_constant_vectors): For
11231         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11232         fold_convertible_p to vector_type's element type, and always
11233         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11234
11235 2016-01-11  Richard Biener  <rguenther@suse.de>
11236
11237         PR tree-optimization/69173
11238         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11239         fixup the cycle if all stmts are in a pattern.
11240
11241 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11242
11243         PR middle-end/68999
11244         * alias.c (base_alias_check): Move check for addresses with
11245         alignment ANDs before the call for compare_base_decls.
11246         (memrefs_conflict_p): Return -1 for different decls
11247         that went through alignment adjustments.
11248
11249 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11250
11251         PR rtl-optimization/68796
11252         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11253         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11254         and QImode comparisons against zero with CC_NZmode.
11255         * config/aarch64/iterators.md (short_mask): New mode_attr.
11256
11257 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11258
11259         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11260         (<avx512>_store<mode>_mask): Likewise.
11261
11262 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11263             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11264
11265         PR rtl-optimization/68841
11266         * ifcvt.c (struct noce_if_info): Add orig_x field.
11267         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11268         Don't record conflicts on to_rename if it's present.
11269         Allow memory destinations in sets.
11270         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11271         blocks, passing orig_x to the checks.
11272         (noce_process_if_block): Set if_info->orig_x appropriately.
11273
11274 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11275
11276         PR tree-optimization/69069
11277         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11278
11279 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11280
11281         PR rtl-optimization/68920
11282         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11283         of conditional moves for  RTL if-conversion to 1 for
11284         TARGET_ONE_IF_CONV_INSN.
11285         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11286         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11287         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11288         parameter to restirct number of conditional moves for
11289         RTL if-conversion.
11290         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11291         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11292         conditionl moves.
11293
11294 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11295
11296         PR bootstrap/69123
11297         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11298         onepart vars.  Fix typo in comment.  Fix reversed condition in
11299         unshare test.
11300         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11301
11302         PR bootstrap/69123
11303         * var-tracking.c (dump_onepart_variable_differences): New.
11304         (dataflow_set_different): If a detailed dump is requested,
11305         delay early returns and dump differences between onepart
11306         variables present before and after, and added variables.
11307
11308 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11309
11310         PR target/69010
11311         * expr.c (expand_expr_real_1): For boolean vector constants
11312         with a scalar mode use const_scalar_mask_from_tree.
11313         (const_scalar_mask_from_tree): New.
11314         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11315         assigned to a mask type to handle constants.
11316
11317 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11318
11319         PR ipa/69044
11320         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11321         useless parameters if we cannot change function signature.
11322
11323 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11324
11325         PR ipa/66616
11326         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11327         flag.
11328
11329 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11330
11331         PR tree-optimization/69109
11332         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11333         latch with phi.
11334
11335 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11336
11337         PR tree-optimization/69108
11338         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11339         res is not used in a phi.
11340
11341 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11342
11343         PR 67425
11344         * common.opt (frandom-seed): Fix parameter name.
11345         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11346
11347 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11348
11349         PR tree-optimization/69058
11350         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11351         not supported.
11352
11353 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11354
11355         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11356         (mcode-density): Likewise.
11357
11358 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11359
11360         PR tree-optimization/69062
11361         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11362         (parallelize_loops): Don't paralelize loop that has phi with address
11363         arg.
11364
11365 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11366
11367         PR tree-optimization/69039
11368         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11369         phi for reduction.
11370
11371 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11372
11373         PR middle-end/68743
11374         * match.pd: Require target has function_c99_misc before doing
11375         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11376
11377 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11378
11379         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11380         use GMPINC.
11381         * configure: Regenerate.
11382
11383 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11384
11385         PR middle-end/50865
11386         PR tree-optimization/69097
11387         * fold-const.h (expr_not_equal_to): New prototype.
11388         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11389         (expr_not_equal_to): New function.
11390         * match.pd (X % -Y is the same as X % Y): Don't optimize
11391         unless X is known not to be equal to minimum or Y is known
11392         not to be equal to -1.
11393         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11394         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11395         (simplify_stmt_using_ranges): Adjust caller.
11396         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11397         substitute_and_fold.
11398
11399 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11400
11401         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11402         w/o DECL_NAME.
11403
11404 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11405
11406         PR tree-optimization/69167
11407         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11408         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11409         ops[0] comparison.
11410         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11411
11412 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11413             Richard Biener  <rguenther@suse.de>
11414
11415         PR tree-optimization/68707
11416         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11417         instances that can be handled via vect_load_lanes.
11418
11419 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11420
11421         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11422         if we can't determine address equivalence.
11423         * alias.c (compare_base_decl): Update for changed return value of
11424         symtab_node::equal_address_to.
11425
11426 2016-01-08  Jason Merrill  <jason@redhat.com>
11427
11428         PR c++/68983
11429         PR c++/67557
11430         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11431         * expr.c (store_field): Not here.
11432         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11433         call with TREE_ADDRESSABLE type.
11434         * tree-cfg.c (verify_gimple_call): Adjust.
11435
11436 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11437
11438         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11439         libc_internal.
11440
11441 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11442
11443         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11444         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11445         (reduc_smin_v2sf): Rename to...
11446         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11447         (reduc_splus_v2sf): Rename to...
11448         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11449
11450 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11451
11452         PR tree-optimization/69162
11453         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11454         valist argument in another argument.
11455         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11456         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11457         to determine the va_list type, build a MEM_REF instead of
11458         build_fold_indirect_ref.
11459
11460         PR tree-optimization/69172
11461         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11462         gimple_build.
11463
11464 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11465
11466         PR tree-optimization/67781
11467         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11468         and cmpnop in two steps: first the ones not accessed in original
11469         gimple expression in a endian independent way and then the ones not
11470         accessed in the final result in an endian-specific way.
11471
11472 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11473
11474         PR tree-optimization/69083
11475         * tree-vect-slp.c (vect_get_constant_vectors): For
11476         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11477         element type.  If op is fold_convertible_p to vector_type's element
11478         type, use NOP_EXPR instead of VCE.
11479
11480 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11481
11482         PR rtl-optimization/67778
11483         PR rtl-optimization/68634
11484         PR rtl-optimization/68909
11485         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11486         block from the stack until done with it.  Remove a superfluous
11487         bitmap set.  Remove a superfluous bitmap test.
11488
11489 2016-01-07  Martin Sebor  <msebor@redhat.com>
11490
11491         PR c/68966
11492         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11493         constraint on the type of arguments.
11494
11495 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11496
11497         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11498         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11499         unaligned_access on the gcc_options set.
11500         * config/arm/arm.c (arm_option_override_internal): Use
11501         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11502
11503 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11504
11505         PR target/69140
11506         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11507         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11508
11509 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11510
11511         Revert
11512         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11513
11514         PR target/69140
11515         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11516         depending on frame_pointer_needed before remaining integer and SSE
11517         registers are saved.
11518
11519 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11520
11521         PR 1078
11522         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11523
11524 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11525
11526         PR target/69171
11527         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11528         Use the "xBm" constraint.
11529         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11530         Likewise.
11531         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11532         (sse_cvtsi2ssq<round_name>): Likewise.
11533         (sse_cvtss2si<round_name>): Likewise.
11534         (sse_cvtss2siq<round_name>): Likewise.
11535         (sse2_cvtsi2sdq<round_name>): Likewise.
11536         (sse2_cvtsd2si<round_name>): Likewise.
11537         (sse2_cvtsd2siq<round_name>): Likewise.
11538         * config/i386/subst.md (round_nimm_scalar_predicate): New
11539         predicate.
11540
11541 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11542
11543         PR middle-end/67639
11544         * varasm.c (make_decl_rtl): Mark invalid register vars as
11545         DECL_EXTERNAL.
11546
11547         PR rtl-optimization/66206
11548         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11549         All callers changed.
11550
11551 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11552
11553         PR tree-optimization/69141
11554         * tree-ssa-pre.c: Include langhooks.h.
11555         (eliminate_dom_walker::before_dom_children): Use
11556         lang_hooks.decl_printable_name instead of
11557         cgraph_node::get ()->name ().
11558
11559         PR middle-end/68960
11560         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11561         it and DECL_ALIGN too.
11562
11563 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11564
11565         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11566
11567 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11568
11569         PR target/69140
11570         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11571         depending on frame_pointer_needed before remaining integer and SSE
11572         registers are saved.
11573
11574 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11575
11576         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11577         mode iterator with VSX_M2.
11578         (*p9_vecstore_<mode>): Likewise.
11579         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11580         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11581         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
11582         (define_split for VSX_LE128 stores): Likewise.
11583         (define_peephole2 for TImode LE swaps): Likewise.
11584         (define_split for VSX_LE128 post-reload stores): Likewise.
11585
11586 2016-01-06  Marek Polacek  <polacek@redhat.com>
11587
11588         PR sanitizer/69099
11589         * convert.c (convert_to_integer_1): Adjust call to
11590         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
11591         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
11592         EXPR instead of ARG.
11593         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
11594
11595 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11596
11597         PR 1078
11598         * doc/extend.texi (RL78 Variable Attributes): New section.
11599
11600 2016-01-05  Marek Polacek  <polacek@redhat.com>
11601
11602         PR c/69104
11603         * builtins.c (get_memmodel): Use expansion point location rather than
11604         the input location.  Call warning_at rather than warning.
11605         (expand_builtin_atomic_compare_exchange): Likewise.
11606         (expand_builtin_atomic_load): Likewise.
11607         (expand_builtin_atomic_store): Likewise.
11608         (expand_builtin_atomic_clear): Likewise.
11609
11610 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11611
11612         PR target/68991
11613         * config/i386/i386.c (ix86_expand_vector_logical_operator):
11614         Replace nonimmediate_operand with vector_operand.
11615         * config/i386/predicates.md (vector_operand): New predicate.
11616         (general_vector_operand): Replace nonimmediate_operand with
11617         vector_operand.
11618         * config/i386/sse.md: Replace nonimmediate_operand with
11619         vector_operand and m constraint with Bm constraint on SSE
11620         patterns with 16-byte memory operand.
11621         * config/i386/subst.md (round_nimm_predicate): Replace
11622         nonimmediate_operand with vector_operand.
11623         (round_saeonly_nimm_predicate): Likewise.
11624         (round_saeonly_nimm_scalar_predicate): New.
11625
11626 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11627
11628         PR target/68991
11629         * config/i386/constraints.md (Bm): New constraint.
11630         * config/i386/predicates.md (vector_memory_operand): New
11631         predicate.
11632         * config/i386/sse.md: Replace xm with xBm in plusminus and
11633         any_logic patterns.
11634
11635 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11636
11637         PR 1078
11638         * doc/extend.texi (V850 Function Attributes): New section.
11639         (V850 Variable Attributes): New section.
11640
11641 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11642
11643         PR 1078
11644         * doc/extend.texi (MicroBlaze Function Attributes): Document
11645         interrupt_handler and fast_interrupt attributes.
11646
11647 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
11648
11649         PR other/60465
11650         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
11651         for local symbolic operands.
11652         * config/ia64/predicates.md (local_symbolic_operand64): New
11653         predicate.
11654
11655 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11656
11657         PR rtl-optimization/68651
11658         * combine.c (combine_simplify_rtx): Canonicalize x + x into
11659         x << 1.
11660
11661 2016-01-05  Nathan Sidwell  <nathan@acm.org>
11662
11663         * alias.c (compare_base_decls): Use symtab_node::get.
11664
11665 2016-01-05  Nick Clifton  <nickc@redhat.com>
11666
11667         PR target/68770
11668         * ira-costs.c (copy_cost): Initialise the t_icode field of the
11669         secondary_reload_info structure.
11670
11671         PR target/66655
11672         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
11673         decls if weak support is available.
11674
11675 2016-01-04  Martin Sebor  <msebor@redhat.com>
11676
11677         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
11678
11679 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
11680
11681         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
11682         OPTION_MASK_P9_DFORM.
11683
11684         * config/rs6000/constraints.md (wo constraint): New constraint for
11685         ISA 3.0 (power9).
11686
11687         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
11688         for wo constraint.
11689         (rs6000_init_hard_regno_mode_ok): Likewise.
11690
11691         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
11692         wo constraint.
11693
11694         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
11695         expanders not to have constraints.  Add support for ISA 3.0 xxperm
11696         instruction.  Add support for fusing xxlor with xxperm.
11697         (altivec_vperm_<mode>_internal): Likewise.
11698         (altivec_vperm_v8hiv16qi): Likewise.
11699         (altivec_vperm_<mode>v16q): Likewise.
11700         (altivec_vperm_<mode>_uns): Likewise.
11701         (vperm_v8hiv4si): Likewise.
11702         (vperm_v16qiv8hi): Likewise.
11703
11704         * doc/md.texi (RS/6000 constraints): Document wo constraint.
11705
11706 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
11707
11708         Update copyright years.
11709
11710         * gcc.c (process_command): Update copyright notice dates.
11711         * gcov-dump.c (print_version): Ditto.
11712         * gcov.c (print_version): Ditto.
11713         * gcov-tool.c (print_version): Ditto.
11714         * gengtype.c (create_file): Ditto.
11715         * doc/cpp.texi: Bump @copying's copyright year.
11716         * doc/cppinternals.texi: Ditto.
11717         * doc/gcc.texi: Ditto.
11718         * doc/gccint.texi: Ditto.
11719         * doc/gcov.texi: Ditto.
11720         * doc/install.texi: Ditto.
11721         * doc/invoke.texi: Ditto.
11722
11723 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11724
11725         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
11726         modes larger than TImode as TImode if NEON is not enabled.
11727
11728 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11729
11730         PR target/69100
11731         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
11732         mode for %f0-%f31 only if TARGET_FPU.
11733
11734 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
11735
11736         PR target/69072
11737         * config/sparc/sparc.c (scan_record_type): Take into account subfields
11738         to compute the PACKED_P predicate.
11739         (function_arg_record_value): Minor tweaks.
11740
11741 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11742
11743         * doc/install.texi (--with-multilib-list): Describe the meaning of the
11744         option for arm*-*-* targets.
11745
11746 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
11747
11748         * doc/extend.texi (Common Function Attributes): Move docs for
11749         MSP430-specific attributes to....
11750         (MSP430 Function Attributes): ...here.  Delete the redundant
11751         entries and copy-edit the remaining text.
11752         (MSP430 Variable Attributes): Use uniform format for index
11753         entries and add a cross-reference to the corresponding function
11754         attribute docs.
11755
11756 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
11757
11758         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
11759         -finite-math typo.
11760         (x86 Options): Likewise.
11761
11762 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
11763
11764         PR 1078
11765
11766         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
11767         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
11768         to corresponding attribute.
11769
11770 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
11771
11772         * doc/extend.texi (Common Function Attributes) <noplt>: Move
11773         to correct alphabetization of table.  Copy-edit and correct
11774         markup.
11775         <stack_protect>: Likewise.
11776         <target_clones>: Likewise.
11777         <simd>: Likewise.
11778         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
11779         Correct punctuation.
11780         (Code Gen Options) <-fno-plt>: Copy-edit.
11781
11782 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11783
11784         PR target/68917
11785         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
11786         SI values.  Explicitly convert SI to DI and vice-versa.
11787
11788 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
11789
11790         PR tree-optimization/69070
11791         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
11792         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
11793
11794         PR sanitizer/69055
11795         * ubsan.c (ubsan_instrument_float_cast): Call
11796         initialize_sanitizer_builtins.
11797
11798         PR target/69015
11799         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
11800 \f
11801 Copyright (C) 2016 Free Software Foundation, Inc.
11802
11803 Copying and distribution of this file, with or without modification,
11804 are permitted in any medium without royalty provided the copyright
11805 notice and this notice are preserved.