i386. Extend static buffers. Fix SF mode operand constraint to `Yv' in storehpd pattern.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
2
3         * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4         array to 128 chars.
5         (define_insn "*andnottf3"): Ditto.
6         (define_insn "*<code><mode>3"/any_logic): Ditto.
7         (define_insn "*<code>tf3"/any_logic): Ditto.
8         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
9         operand to block AVX-512VL insn variant emit when it is not enabled.
10
11 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
12
13         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
14         constraint fot SF mode.
15
16 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
17             Kirill Yukhin  <kirill.yukhin@intel.com>
18
19         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
20         modifiers.
21         (define_insn "rsqrt14<mode>"): Ditto.
22         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
23         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
24         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
25         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
26         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
27         Ditto.
28         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
29         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
30         * config/i386/i386.c (ix86_print_operand): Expand check for size
31         override codes for Intel syntax.
32
33 2016-05-18  Richard Biener  <rguenther@suse.de>
34
35         PR tree-optimization/71168
36         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
37         initialization earlier.
38
39 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
40
41         * config/aarch64/aarch64-simd.md
42         (aarch64_reduc_plus_internal<mode>): Rename to...
43         (reduc_plus_scal): ...This, and remove previous implementation.
44
45 2016-05-18  Richard Biener  <rguenther@suse.de>
46
47         * passes.def: Put late dse and cd_dce in canonical order.
48
49 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
50
51         * ipa-inline-transform.c (preserve_function_body_p): Look for
52         first non-thunk clone.
53         (save_function_body): Save into first non-thunk.
54         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
55         up call stmt id.
56         (lto_output_node): Inline thunks don't need body in every
57         partition.
58         * lto-streamer-in.c: Do not fixup thunk clones.
59         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
60         thunks.
61         * tree-inline.c (copy_bb): Be prepared for target node to be new after
62         folding suceeds.
63
64 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
65
66         PR middle-end/63586
67         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
68         (reassociate_bb): Call transform_add_to_multiply.
69
70 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
71
72         * config/aarch64/aarch64.c (all_extensions): Removed unused static variable.
73
74 2016-05-17  Nathan Sidwell  <nathan@acm.org>
75
76         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
77         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
78
79 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
80
81         PR tree-optimization/54579
82         PR middle-end/55299
83         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
84
85 2016-05-17  Marek Polacek  <polacek@redhat.com>
86
87         PR ipa/71146
88         * tree-inline.c (expand_call_inline): Call
89         maybe_remove_unused_call_args.
90
91 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
92
93         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
94         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
95         * doc/md.texi (fmin@var{m}3): Likewise.
96
97 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
98
99         * match.pd (X & C): New transformation.
100
101 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
102
103         * match.pd (~X & Y): New transformation.
104
105 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
106
107         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
108         information for new SSA_NAME.
109         (simplify_conversion_using_ranges): Get range through get_range_info
110         instead of get_value_range.
111
112 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
113
114         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
115         Remove inline assembly.
116         (vmvn_s16): Likewise.
117         (vmvn_s32): Likewise.
118         (vmvn_u8): Likewise.
119         (vmvn_u16): Likewise.
120         (vmvn_u32): Likewise.
121         (vmvnq_s8): Likewise.
122         (vmvnq_s16): Likewise.
123         (vmvnq_s32): Likewise.
124         (vmvnq_u8): Likewise.
125         (vmvnq_u16): Likewise.
126         (vmvnq_u32): Likewise.
127         (vmvn_p8): Likewise.
128         (vmvnq_p16): Likewise.
129
130 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
131
132         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
133         Use builtin.
134         (vmul_n_s16): Likewise.
135         (vmul_n_s32): Likewise.
136         (vmul_n_u16): Likewise.
137         (vmul_n_u32): Likewise.
138         (vmulq_n_f32): Likewise.
139         (vmulq_n_f64): Likewise.
140         (vmulq_n_s16): Likewise.
141         (vmulq_n_s32): Likewise.
142         (vmulq_n_u16): Likewise.
143         (vmulq_n_u32): Likewise.
144
145 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
146
147         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
148         all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
149
150 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
151
152         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
153         to *aarch64_fma4_elt_from_dup<mode>.
154         (*aarch64_fnma4_elt_to_128df): Rename to
155         *aarch64_fnma4_elt_from_dup<mode>.
156         * config/aarch64/arm_neon.h (vfma_n_f64): New.
157         (vfms_n_f32): Likewise.
158         (vfms_n_f64): Likewise.
159         (vfmsq_n_f32): Likewise.
160         (vfmsq_n_f64): Likewise.
161
162 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
163
164         * wide-int.h: Change fixed_wide_int_storage from class to struct.
165         
166 2016-05-17  Richard Biener  <rguenther@suse.de>
167
168         PR tree-optimization/71132
169         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
170         Only add control dependences for blocks in the loop.
171         (build_rdg): Adjust.
172         (generate_code_for_partition): Return whether loop should
173         be destroyed and delay that.
174         (distribute_loop): Likewise.
175         (pass_loop_distribution::execute): Record loops to be destroyed
176         and perform delayed destroying of loops.
177
178 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
179
180         PR target/70809
181         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
182
183 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
184
185         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
186
187 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
188
189         PR target/71114
190         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
191         insertion point for instructions generated by validize_mem.
192
193 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
194
195         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
196         in brackets.
197
198 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
199
200         * config/aarch64/aarch64.c
201         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
202         rather than a macro.
203
204 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
205
206         * doc/invoke.texi (AArch64 Options): Various updates.
207
208 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
209
210         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
211         into instrumentation thunks.
212         * cif-code.def (CIF_CHKP): New.
213
214 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
215
216         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
217
218 2016-05-16  Martin Jambor  <mjambor@suse.cz>
219
220         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
221         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
222
223 2016-05-16  Marek Polacek  <polacek@redhat.com>
224
225         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
226         commentary.
227
228 2016-05-16  Martin Jambor  <mjambor@suse.cz>
229
230         PR hsa/70857
231         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
232         the outlined kernel function.
233
234 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
235
236         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
237         (ISA_HAS_DLSA): Ditto.
238
239 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
240
241         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
242
243 2016-05-16  Nathan Sidwell  <nathan@acm.org>
244
245         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
246         (nvptx_name_replacement): Restore.  Add comment.
247         (write_fn_proto, write_fn_proto_from_insn,
248         nvptx_output_call_insn): Restore
249         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
250
251 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
252
253         * config/aarch64/aarch64.md
254         (add<mode>3_compareC_cconly_imm): Remove use of %w.
255         (add<mode>3_compareC_imm): Likewise.
256         (<optab>si3_uxtw): Split into register and immediate variants.
257         (andsi3_compare0_uxtw): Likewise.
258         (and<mode>3_compare0): Likewise.
259         (and<mode>3nr_compare0): Likewise.
260         (stack_protect_test_<mode>): Don't use %x for memory operands.
261
262 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
263
264         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
265
266 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
267
268          * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
269         Split integer shifts into shift_reg and bfm.
270         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
271         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
272         (ror<mode>3_insn): Likewise.
273         (<optab>si3_insn_uxtw): Likewise.
274         (<optab><mode>3_insn): Change to rotate_imm.
275         (extr<mode>5_insn_alt): Likewise.
276         (extrsi5_insn_uxtw): Likewise.
277         (extrsi5_insn_uxtw_alt): Likewise.
278
279 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
280
281         * doc/tm.texi: Regenerate.
282         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
283         (TARGET_INVALID_RETURN_TYPE): Remove.
284         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
285         TARGET_INVALID_RETURN_TYPE.
286         * target.def (invalid_parameter_type): Remove.
287         (invalid_return_type): Remove.
288
289 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
290
291         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
292         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
293         calls from thunk.
294         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
295         gimple body.
296         (preserve_function_body_p): No need to preserve function body
297         * cif-codes.def (CIF_THUNK): Remove.
298         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
299
300 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
301
302         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
303
304 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
305
306         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
307         for thunks.
308
309 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
310
311         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
312         (inline_small_functions): Do not look for function symbol when
313         resetting caches.
314
315 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
316
317         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
318         of inline thunks
319
320 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
321             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
322             Jiong Wang  <jiong.wang@arm.com>
323
324         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
325         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
326         Define __ARM_FP16_ARGS when appropriate.
327         * config/arm/arm.c (arm_invalid_parameter_type): Remove
328         declaration.
329         (arm_invalid_return_type): Likewise.
330         (TARGET_INVALID_PARAMETER_TYPE): Remove.
331         (TARGET_INVALID_RETURN_TYPE): Remove.
332         (aapcs_vfp_sub_candidate): Allow HFmode.
333         (aapcs_vfp_allocate): Add comment.  Support HFmode.
334         (aapcs_vfp_allocate_return_reg): Likewise.
335         (struct aapcs_cp_arg_layout): Slightly reword comments for
336         is_return_candidate and allocate_return_reg.
337         (output_mov_vfp): Update assert.
338         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
339         condition.
340         (arm_invalid_parameter_type): Remove.
341         (amr_invalid_return_type): Remove.
342         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
343         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
344         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
345
346 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
347
348         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
349         * config/aarch64/arch64-protos.h
350         (aarch64_legitimize_reload_address): Remove.
351         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
352         Remove.
353
354 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
355
356         * configure.ac: Add ACX_NONCANONICAL_HOST.
357         * configure: Regenerate.
358         * Makefile.in: Set host_noncanonical.
359
360 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
361
362         PR target/71097
363         * config/i386/i386.md (*movtf_internal): Before register allocation,
364         do not allow FP constants for CM_MEDIUM memory model, allow only
365         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
366         (*movxf_internal): Ditto.
367         (*movdf_internal): Ditto.
368         (*movsf_internal): Ditto.
369
370 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
371
372         PR rtl-optimization/67483
373         * combine.c (make_compound_operation): Don't call extract_left_shift
374         with negative shift amounts.
375
376 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
377
378         PR bootstrap/71071
379         * fold-const.c (fold_checksum_tree): Allow modification
380         of TYPE_ALIAS_SET during folding.
381
382         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
383         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
384         (ix86_split_to_parts): Likewise.  Fix up formatting.
385
386 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
387
388         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
389         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
390         printf format.
391
392 2016-05-13  Nathan Sidwell  <nathan@acm.org>
393
394         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
395         (nvptx_name_replacement): Delete.
396         (write_fn_proto, write_fn_proto_from_insn,
397         nvptx_output_call_insn): Remove nvptx_name_replacement call.
398         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
399         * langhooks.c (add_builtin_funcction_common): Call
400         targetm.mangle_decl_assembler_name.
401
402         * config/nvptx/nvptx.c (write_fn_proto): Handle
403         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
404
405 2016-05-13  Martin Liska  <mliska@suse.cz>
406
407         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
408         and PRIu64 in printf format.
409
410 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
411
412         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
413         comment.
414
415 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
416
417         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
418         Change --param max-completely-peeled-times to
419         --param max-completely-peel-times in dump file printing.
420
421 2016-05-13  Richard Biener  <rguenther@suse.de>
422
423         PR tree-optimization/42587
424         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
425         (find_bswap_or_nop_1): Likewise.
426         (bswap_replace): Likewise.
427
428 2016-05-13  Martin Liska  <mliska@suse.cz>
429
430         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
431         Initialize a variable with default value.
432
433 2016-05-13  Martin Liska  <mliska@suse.cz>
434
435         * doc/invoke.texi: Enhance explanation of error recovery
436         of sanitizers.
437
438 2016-05-13  Martin Liska  <mliska@suse.cz>
439
440         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
441         (struct cost_pair): Change inv_expr_id (int) to inv_expr
442         (iv_inv_expr_ent *).
443         (struct iv_inv_expr_ent): Comment struct fields.
444         (sort_iv_inv_expr_ent): New function.
445         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
446         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
447         a hash_map between iv_inv_expr_ent and number of usages.
448         (niter_for_exit): Fix coding style.
449         (tree_ssa_iv_optimize_init): Use renamed variable.
450         (determine_base_object): Fix coding style.
451         (alloc_iv): Likewise.
452         (find_interesting_uses_outside): Likewise.
453         (add_candidate_1): Likewise.
454         (add_standard_iv_candidates): Likewise.
455         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
456         (prepare_decl_rtl): Fix coding style.
457         (get_address_cost): Likewise.
458         (get_shiftadd_cost): Likewise.
459         (force_expr_to_var_cost): Likewise.
460         (compare_aff_trees): Likewise.
461         (get_expr_id): Restructure the function.
462         (get_loop_invariant_expr_id): Renamed to
463         get_loop_invariant_expr.
464         (get_computation_cost_at): Replace usage of inv_expr_id with
465         inv_expr.
466         (get_computation_cost): Likewise.
467         (determine_group_iv_cost_generic): Likewise.
468         (determine_group_iv_cost_address): Likewise.
469         (iv_period): Fix coding style.
470         (iv_elimination_compare_lt): Likewise.
471         (may_eliminate_iv): Likewise.
472         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
473         inv_expr.
474         (determine_group_iv_costs): Dump invariant expressions.
475         (iv_ca_recount_cost): Use the newly added hash_map.
476         (iv_ca_set_remove_invariants): Fix coding style.
477         (iv_ca_set_add_invariants): Fix coding style.
478         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
479         invariants.
480         (iv_ca_set_cp): Likewise.
481         (iv_ca_new): Initialize the newly added hash_map and remove
482         initialization of fields.
483         (iv_ca_free): Delete the hash_map.
484         (iv_ca_dump): Dump invariant expressions.
485         (iv_ca_extend): Fix coding style.
486         (try_add_cand_for): Likewise.
487         (create_new_ivs): Dump information about # of avg iterations and
488         # of used invariant expressions.
489         (rewrite_use_compare): Fix coding style.
490         (free_loop_data): Set default value for max_inv_expr_id.
491
492 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
493
494         * cse.c (rest_of_handle_cse): Use cleanup_cfg
495         returned value cse_cfg_altered computation.
496         (rest_of_handle_cse2): Likewise.
497         (rest_of_handle_cse_after_global_opts): Likewise.
498
499 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
500
501         PR target/53440
502         * config/arm/arm.c (arm32_output_mi_thunk): New.
503         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
504         to split Thumb1 vs TARGET_32BIT functionality.
505         (arm_thumb1_mi_thunk): New.
506
507 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
508
509         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
510         to true.
511
512 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
513
514         PR target/71080
515         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
516
517 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
518
519         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
520         (expand_builtin_trap): Emit a regular call.
521         (set_builtin_user_assembler_name): Remove obsolete cases.
522         * dse.c (scan_insn): Adjust.
523         * except.c: Include calls.h.
524         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
525         emit a regular call to setjmp.
526         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
527         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
528         (emit_block_move_via_libcall): Delete.
529         (block_move_fn): Delete.
530         (init_block_move_fn): Likewise.
531         (emit_block_move_libcall_fn): Likewise.
532         (emit_block_op_via_libcall): New function.
533         (set_storage_via_libcall): Tidy up and use memset builtin.
534         (block_clear_fn): Delete.
535         (init_block_clear_fn): Likewise.
536         (clear_storage_libcall_fn): Likewise.
537         (expand_assignment): Call emit_block_move_via_libcall.
538         Do not include gt-expr.h.
539         * expr.h (emit_block_op_via_libcall): Declare.
540         (emit_block_copy_via_libcall): New inline function.
541         (emit_block_move_via_libcall): Likewise.
542         (emit_block_comp_via_libcall): Likewise.
543         (block_clear_fn): Delete.
544         (init_block_move_fn): Likewise.
545         (init_block_clear_fn): Likewise.
546         (emit_block_move_via_libcall): Likewise.
547         (set_storage_via_libcall): Add default parameter value.
548         * libfuncs.h (enum libfunc_index): Remove obsolete values.
549         (abort_libfunc): Delete.
550         (memcpy_libfunc): Likewise.
551         (memmove_libfunc): Likewise.
552         (memcmp_libfunc): Likewise.
553         (memset_libfunc): Likewise.
554         (setbits_libfunc): Likewise.
555         (setjmp_libfunc): Likewise.
556         (longjmp_libfunc): Likewise.
557         (profile_function_entry_libfunc): Likewise.
558         (profile_function_exit_libfunc): Likewise.
559         (gcov_flush_libfunc): Likewise.
560         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
561         and DECL_VISIBILITY on the declaration.
562         (init_optabs): Do not initialize obsolete libfuncs.
563         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
564         * tree-core.h (ECF_RET1): Define.
565         (ECF_TM_PURE): Adjust.
566         (ECF_TM_BUILTIN): Likewise.
567         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
568         (build_common_builtin_nodes): Initialize abort builtin.
569         Add ECF_RET1 on memcpy, memmove and memset builtins.
570         Pass final flags for alloca and alloca_with_align builtins.
571         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
572         obsolete builtins.
573         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
574         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
575         set_storage_via_libcall and call emit_block_copy_via_libcall.
576
577 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
578
579         * config/i386/i386.md (*call_got_x32): Change operand 0 to
580         DImode before it is passed to ix86_output_call_operand.
581         (*call_value_got_x32): Ditto for operand 1.
582
583 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
584
585         PR rtl-optimization/70904
586         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
587         reload for wide mode.
588
589 2016-05-12  Marek Polacek  <polacek@redhat.com>
590
591         PR c/70756
592         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
593         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
594         * langhooks.h (incomplete_type_error): Likewise.
595         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
596         parameter, pass it down to incomplete_type_error.
597         * tree.h (size_in_bytes): New inline overload.
598         (size_in_bytes_loc): Renamed from size_in_bytes.
599
600 2016-05-12  Richard Biener  <rguenther@suse.de>
601
602         PR tree-optimization/71059
603         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
604         nary before looking up or entering the expression into the VN
605         hashes.
606         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
607         Make sure to re-use NARYs without result as inserted by
608         phi-translation.
609
610 2016-05-12  Richard Biener  <rguenther@suse.de>
611
612         PR tree-optimization/71062
613         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
614         field.
615         * tree-ssa-structalias.c (set_uids_in_ptset): Set
616         vars_contains_restrict if the var is a restrict tag.
617         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
618         do not disambiguate pointers against it.
619         (dump_points_to_solution): Re-structure and adjust for new
620         vars_contains_restrict flag.
621         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
622
623 2016-05-12  Martin Liska  <mliska@suse.cz>
624
625         * doc/invoke.texi: Explain connection between
626         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
627
628 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
629
630         PR tree-optimization/71006
631         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
632         consider COND_EXPR as a mask producer.
633
634 2016-05-12  Marek Polacek  <polacek@redhat.com>
635
636         PR driver/71063
637         * opts.c (common_handle_option): Detect missing argument for --help^.
638
639 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
640
641         PR target/70830
642         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
643         when popping the PC and within an interrupt handler routine.
644         Add missing tab to output of "ldmfd".
645         (output_return_instruction): Output LDMFD with SP update rather
646         than POP when returning from interrupt handler.
647
648 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
649
650         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
651         TARGET_64BIT && TARGET_AVX512DQ.
652         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
653         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
654         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
655         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
656         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
657         (*vec_extractv4si_zext): Add avx512dq alternative.
658         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
659         use v instead of x constraint in other alternatives where possible.
660
661         * config/i386/sse.md (sse2_loadld): Use v instead of x
662         constraint in alternatives 0,1,4.
663
664         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
665         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
666         v constraints instead of x and <pinsr_evex_isa> isa attribute.
667
668         PR target/71019
669         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
670         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
671         is not emitted unless TARGET_AVX512BW.
672         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
673         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
674         for the result operand.
675
676         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
677         constraint instead of x in avx alternatives.  Use maybe_evex instead
678         of vex prefix.
679
680         * config/i386/constraints.md (Yv): New constraint.
681         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
682         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
683         * config/i386/i386.md (avx512fvecmode): New mode attr.
684         (*pushtf): Use v constraint instead of x.
685         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
686         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
687         (*absneg<mode>2): Use Yv constraint instead of x constraint.
688         (*absnegtf2_sse): Likewise.
689         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
690         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
691         avx512f alternatives.
692         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
693
694 2016-05-12  Richard Biener  <rguenther@suse.de>
695
696         PR tree-optimization/71060
697         * tree-data-ref.c (initialize_data_dependence_relation): Do not
698         require exact match of DR_BASE_OBJECT but only matching address and
699         type.
700
701 2016-05-12  Richard Biener  <rguenther@suse.de>
702
703         PR tree-optimization/70986
704         * cfganal.c: Include cfgloop.h.
705         (dfs_find_deadend): Prefer to take edges exiting loops.
706
707 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
708
709         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
710         compile and run time.
711
712 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
713
714         PR c/43651
715         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
716
717 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
718
719         * config/i386/i386.c (legitimize_pic_address): Use
720         copy_to_suggested_reg instead of gen_movsi.
721
722 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
723
724         * config/rs6000/predicates.md (quad_memory_operand): Move most of
725         the code into quad_address_p and call it to share code with
726         vsx_quad_dform_memory_operand.
727         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
728         d-form support.
729         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
730         bit instead of being a separate word.  Split -mpower9-dform into
731         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
732         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
733         for the register class supporting 128-bit quad word memory offsets.
734         (mode_supports_vsx_dform_quad): Helper function to return if the
735         register class uses quad word memory offsets.
736         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
737         (rs6000_debug_reg_global): Always print if we are using LRA or not.
738         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
739         instructions are enabled, set up the appropriate addr_masks for
740         128-bit types.
741         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
742         -mpower9-dform-scalar, instead of -mpower9-dform.
743         (rs6000_option_override_internal): Split -mpower9-dform into two
744         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
745         -mpower9-dform switch sets or clears both.  If we are not using
746         the LRA register allocator, do not enable -mpower9-dform-vector by
747         default.  If we are using LRA, enable -mpower9-dform-vector and
748         -mvsx-timode if it is appropriate.  Issue a warning if either
749         -mpower9-dform-vector or -mvsx-timode are explicitly used without
750         enabling LRA.
751         (quad_address_offset_p): New helper function to return if the
752         offset is legal for quad word memory instructions.
753         (quad_address_p): New function to determin if GPR or vector
754         register quad word memory addresses are legal.
755         (mem_operand_gpr): Validate quad word address offsets.
756         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
757         d-form (register + offset) instructions.
758         (offsettable_ok_by_alignment): Likewise.
759         (rs6000_legitimate_offset_address_p): Likewise.
760         (legitimate_lo_sum_address_p): Likewise.
761         (rs6000_legitimize_address): Likewise.
762         (rs6000_legitimize_reload_address): Add more debug statements for
763         -mdebug=addr.
764         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
765         d-form instructions.
766         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
767         d-form instructions.  Distinguish different cases in debug
768         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
769         d-form instructions.
770         (rs6000_preferred_reload_class): Likewise.
771         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
772         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
773         of the ISA 2.06 indexed memory instructions.
774         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
775         use them to save/restore the saved vector registers instead of
776         using Altivec instructions.
777         (rs6000_emit_epilogue): Likewise.
778         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
779         (rs6000_opt_masks): Split -mpower9-dform into
780         -mpower9-dform-scalar and -mpower9-dform-vector.
781         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
782         was not selected.
783         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
784         ISA 3.0 vector indexed memory instructions, and fold the code into
785         the normal mov<mode> patterns.
786         (p9_vecstore_<mode>): Likewise.
787         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
788         instructions.
789         (vsx_movti_64bit): Likewise.
790         (vsx_movti_32bit): Likewise.
791         * config/rs6000/constraints.md (wO constraint): New constraint for
792         ISA 3.0 vector d-form support.
793         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
794         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
795         include -mpower9-dform-vector until we switch over to LRA.
796         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
797         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
798         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
799         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
800         for -mpower9-dform and -mlra.
801         * doc/md.texi (wO constraint): Document wO constraint.
802
803 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
804
805         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
806         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
807         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
808         Move handling of non-insn arguments inline into the sole user:
809         (output_trans_func): ...here.
810         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
811         in emitted function prototype.
812         (output_internal_insn_latency_func): Ditto.  Simplify.
813         (output_internal_maximal_insn_latency_func): Ditto.  Delete
814         always-unused argument.
815         (output_insn_latency_func): Ditto.
816         (output_maximal_insn_latency_func): Ditto.
817
818 2016-05-11  Richard Biener  <rguenther@suse.de>
819
820         PR tree-optimization/71055
821         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
822         sth with precision not equal to access size verify we don't chop
823         off bits.
824
825 2016-05-11  Richard Biener  <rguenther@suse.de>
826
827         PR debug/71057
828         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
829         (dwarf2out_finish): Move retry_incomplete_types call ...
830         (dwarf2out_early_finish): ... here.
831
832 2016-05-11  Richard Biener  <rguenther@suse.de>
833
834         PR middle-end/71002
835         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
836         if the langhook insists on it.
837         * fold-const.c (make_bit_field_ref): Add arg for the original
838         reference and preserve its alias-set.
839         (decode_field_reference): Take exp by reference and adjust it
840         to the original memory reference.
841         (optimize_bit_field_compare): Adjust callers.
842         (fold_truth_andor_1): Likewise.
843         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
844
845 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
846
847         PR middle-end/70807
848         * cfgrtl.h (delete_insn_and_edges): Now return bool.
849         * cfgrtl.c (delete_insn_and_edges): Likewise.
850         * config/i386/i386.c (convert_scalars_to_vector): Remove
851         redundant code.
852         * cse.c (cse_insn): Compute cse_cfg_altered.
853         (delete_trivially_dead_insns): Likewise.
854         (cse_cc_succs): Likewise.
855         (rest_of_handle_cse): Free dominance info if required.
856         (rest_of_handle_cse2): Likewise.
857         (rest_of_handle_cse_after_global_opts): Likewise.
858
859 2016-05-11  Alan Modra  <amodra@gmail.com>
860
861         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
862         abi_v4_pass_in_fpr): New functions.
863         (rs6000_function_arg_boundary): Exclude complex IBM long double
864         from 64-bit alignment when ABI_V4.
865         (rs6000_function_arg, rs6000_function_arg_advance_1,
866         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
867
868 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
869
870         PR rtl-optimization/71028
871         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
872         jump with just a return in the fallthrough block if the branch
873         block contains just a return as well.
874
875 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
876
877         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
878         * match.pd ((X & Y) ^ Y): ... this.
879         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
880         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
881
882 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
883
884         * read-md.c (require_char_ws): New function.
885         (read_string): Simplify using require_char_ws.
886         (handle_constants): Likewise.
887         (handle_enum): Likewise.
888         (handle_file): Likewise.
889         * read-md.h (require_char_ws): New declaration.
890         * read-rtl.c (read_conditions): Simplify using require_char_ws.
891         (read_mapping): Likewise.
892         (read_rtx_code): Likewise.
893         (read_nested_rtx): Likewise.
894
895 2016-05-10  James Norris  <jnorris@codesourcery.com>
896
897         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
898         if offloading is enabled and -fopenacc or -fopenmp is specified.
899         (CRTOFFLOADEND): Likewise.
900         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
901         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
902
903 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
904
905         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
906         gotoff_operand code paths.  Use copy_to_suggested_regs and
907         expand_simple_binop where appropriate.  Cleanup.
908
909 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
910
911         PR target/70799
912         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
913         integer constants.
914         (dimode_scalar_chain::vector_const_cost): New.
915         (dimode_scalar_chain::compute_convert_gain): Handle constants.
916         (dimode_scalar_chain::convert_op): Likewise.
917         (dimode_scalar_chain::convert_insn): Likewise.
918
919 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
920
921         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
922         unary operation, not a binary one.
923
924 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
925
926         PR middle-end/70877
927         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
928         calls with type casted fndecl.
929
930 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
931
932         PR tree-optimization/70786
933         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
934         * gcc/calls.c (initialize_argument_information): Bind bounds
935         with corresponding args passed by reference.
936
937 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
938
939         PR target/70927
940         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
941         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
942         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
943         accordingly.
944
945 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
946
947         PR target/70963
948         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
949         code for a zero scale factor.
950         (vsx_xvcvdpuxds_scale): Likewise.
951
952 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
953
954         * diagnostic-show-locus.c (layout::layout): Call show_ruler
955         if show_ruler_p was set on the context.
956         (layout::show_ruler): New method.
957         * diagnostic.h (struct diagnostic_context): Add field
958         "show_ruler_p".
959
960 2016-05-10  Richard Biener  <rguenther@suse.de>
961
962         PR tree-optimization/71039
963         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
964         (chk_uses): New function.
965         (propagate_with_phi): Verify we can safely replicate the lhs of an
966         aggregate assignment on all incoming edges.
967
968 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
969
970         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
971         Forward declare.
972         (rx_atomic_sequence): New class.
973         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
974         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
975         non-inline.
976         (rx_atomic_sequence::rx_atomic_sequence,
977         rx_atomic_sequence::~rx_atomic_sequence): New functions.
978         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
979         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
980         CTRLREG_INTB): New constants.
981         (FETCHOP): New code iterator.
982         (fethcop_name, fetchop_name2): New iterator code attributes.
983         (QIHI): New mode iterator.
984         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
985         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
986         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
987
988 2016-05-10  Martin Liska  <mliska@suse.cz>
989
990         * tree-inline.c (remap_dependence_clique): Do not remap
991         debugging statements.
992
993 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
994
995         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
996         ("*fixuns_truncdfdi2_z13")
997         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
998         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
999         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
1000
1001 2016-05-10  Richard Biener  <rguenther@suse.de>
1002
1003         PR tree-optimization/70497
1004         PR tree-optimization/28367
1005         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
1006         split out from ...
1007         (visit_reference_op_load): ... here.
1008         (vn_reference_lookup_3): Use it to handle subreg-like accesses
1009         with simplified BIT_FIELD_REFs.
1010         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
1011         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
1012         correctly.
1013
1014 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
1015
1016         * dwarf2out.c (add_abstract_origin_attribute): Adjust
1017         documentation comment.  For BLOCK nodes, add a
1018         DW_AT_abstract_origin attribute that points to the DIE generated
1019         for the origin BLOCK.
1020         (gen_lexical_block_die): Call add_abstract_origin_attribute for
1021         blocks from inlined functions.
1022
1023 2016-05-10  Alan Modra  <amodra@gmail.com>
1024
1025         PR target/70947
1026         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
1027         regrename modifying insns saving lr before __morestack call.
1028         * config/rs6000/rs6000.md (split_stack_return): Similarly for
1029         insns restoring lr after __morestack call.
1030
1031 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
1032
1033         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
1034         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
1035         expanders.
1036         * config/i386/sse.md (vec_interleave_high<mode>,
1037         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
1038         <avx512>_vpermt2var<mode>3_maskz): Likewise.
1039
1040 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1041
1042         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
1043         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
1044         parallel reassociation for power8 and forward.
1045
1046 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
1047
1048         * config/i386/i386.md (absneg splitters with general regs): Use
1049         general_reg_operand predicate.
1050         (btsq peephole2): Use x86_64_immediate_operand to check if new
1051         value is suitable for immediate operand.  Generate emitted insn
1052         using RTL expressions.
1053         (btcq peephole2): Ditto.
1054         (btrq peephole2): Ditto.  Generate correct immediate operand
1055         for AND masking.
1056
1057 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1058
1059         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
1060         bitpos.
1061
1062 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1063
1064         * tree-affine.c (wide_int_constant_multiple_p): Add missing
1065         pointer dereference.
1066
1067 2016-05-09  Richard Biener  <rguenther@suse.de>
1068
1069         PR tree-optimization/70985
1070         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
1071         op0 isn't a gimple register.
1072
1073 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
1074
1075         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
1076         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
1077         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
1078         (i6400_fpu_mult): New cpu units.
1079         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
1080         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
1081         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
1082         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
1083         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
1084         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
1085         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
1086         (i6400_msa_long_float4, i6400_msa_long_float5)
1087         (i6400_msa_long_float8, i6400_msa_fdiv_df)
1088         (i6400_msa_fdiv_sf): New reservations.
1089         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
1090         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
1091         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
1092         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
1093         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
1094         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
1095         (msa_short_cmp, msa_short_float2, msa_short_logic3)
1096         (msa_short_store4, msa_long_load, msa_short_store)
1097         (msa_long_logic, msa_long_float2, msa_long_float4)
1098         (msa_long_float5, msa_long_float8, msa_long_mult)
1099         (msa_long_fdiv, msa_long_div): New reservations.
1100
1101 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
1102             Sameera Deshpande  <sameera.deshpande@imgtec.com>
1103             Matthew Fortune  <matthew.fortune@imgtec.com>
1104             Graham Stott  <graham.stott@imgtec.com>
1105             Chao-ying Fu  <chao-ying.fu@imgtec.com>
1106
1107         * config.gcc: Add MSA header file for mips*-*-* target.
1108         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
1109         (Ubv8i, Urv8):  New constraints.
1110         * config/mips/mips-ftypes.def: Add function types for MSA
1111         builtins.
1112         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
1113         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
1114         * config/mips/mips-msa.md: New file.
1115         * config/mips/mips-protos.h
1116         (mips_split_128bit_const_insns): New prototype.
1117         (mips_msa_idiv_insns): Likewise.
1118         (mips_split_128bit_move): Likewise.
1119         (mips_split_128bit_move_p): Likewise.
1120         (mips_split_msa_copy_d): Likewise.
1121         (mips_split_msa_insert_d): Likewise.
1122         (mips_split_msa_fill_d): Likewise.
1123         (mips_expand_msa_branch): Likewise.
1124         (mips_const_vector_same_val_p): Likewise.
1125         (mips_const_vector_same_bytes_p): Likewise.
1126         (mips_const_vector_same_int_p): Likewise.
1127         (mips_const_vector_shuffle_set_p): Likewise.
1128         (mips_const_vector_bitimm_set_p): Likewise.
1129         (mips_const_vector_bitimm_clr_p): Likewise.
1130         (mips_msa_vec_parallel_const_half): Likewise.
1131         (mips_msa_output_division): Likewise.
1132         (mips_ldst_scaled_shift): Likewise.
1133         (mips_expand_vec_cond_expr): Likewise.
1134         * config/mips/mips.c (enum mips_builtin_type): Add
1135         MIPS_BUILTIN_MSA_TEST_BRANCH.
1136         (mips_gen_const_int_vector_shuffle): New prototype.
1137         (mips_const_vector_bitimm_set_p): New function.
1138         (mips_const_vector_bitimm_clr_p): Likewise.
1139         (mips_const_vector_same_val_p): Likewise.
1140         (mips_const_vector_same_bytes_p): Likewise.
1141         (mips_const_vector_same_int_p): Likewise.
1142         (mips_const_vector_shuffle_set_p): Likewise.
1143         (mips_symbol_insns): Forbid loading symbols via immediate for
1144         MSA.
1145         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
1146         stores.
1147         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
1148         MSA.
1149         (mips_lx_address_p): Add support load indexed address for MSA.
1150         (mips_address_insns): Add calculation of instructions needed for
1151         stores and loads for MSA.
1152         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
1153         CONST_VECTOR for MSA and let it fall through.
1154         (mips_ldst_scaled_shift): New function.
1155         (mips_subword_at_byte): Likewise.
1156         (mips_msa_idiv_insns): Likewise.
1157         (mips_legitimize_move): Validate MSA moves.
1158         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
1159         calculation of costs for MSA division.
1160         (mips_split_move_p): Check if MSA moves need splitting.
1161         (mips_split_move): Split MSA moves if necessary.
1162         (mips_split_128bit_move_p): New function.
1163         (mips_split_128bit_move): Likewise.
1164         (mips_split_msa_copy_d): Likewise.
1165         (mips_split_msa_insert_d): Likewise.
1166         (mips_split_msa_fill_d): Likewise.
1167         (mips_output_move): Handle MSA moves.
1168         (mips_expand_msa_branch): New function.
1169         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
1170         Reinstate 'y' modifier.
1171         (mips_file_start): Add MSA .gnu_attribute.
1172         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
1173         FPRs.
1174         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
1175         (mips_class_max_nregs): Add register size for MSA supported mode.
1176         (mips_cannot_change_mode_class): Allow conversion between MSA
1177         vector modes and TImode.
1178         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
1179         instruction.
1180         (mips_secondary_reload_class): Force MSA loads/stores via memory.
1181         (mips_preferred_simd_mode): Add preffered modes for MSA.
1182         (mips_vector_mode_supported_p): Add MSA supported modes.
1183         (mips_autovectorize_vector_sizes): New function.
1184         (mips_msa_output_division): Likewise.
1185         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
1186         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
1187         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
1188         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
1189         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
1190         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
1191         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
1192         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
1193         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
1194         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
1195         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
1196         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
1197         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
1198         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
1199         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
1200         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
1201         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
1202         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
1203         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
1204         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
1205         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
1206         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
1207         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
1208         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
1209         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
1210         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
1211         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
1212         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
1213         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
1214         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
1215         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
1216         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
1217         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
1218         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
1219         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
1220         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
1221         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
1222         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
1223         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
1224         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
1225         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
1226         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
1227         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
1228         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
1229         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1230         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1231         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1232         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1233         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1234         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1235         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1236         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1237         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
1238         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
1239         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
1240         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
1241         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
1242         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
1243         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
1244         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
1245         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
1246         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
1247         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
1248         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
1249         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
1250         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
1251         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
1252         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
1253         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
1254         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
1255         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
1256         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
1257         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
1258         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
1259         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
1260         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
1261         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
1262         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
1263         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
1264         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
1265         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
1266         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
1267         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
1268         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
1269         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
1270         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
1271         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
1272         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
1273         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
1274         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
1275         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
1276         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
1277         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
1278         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
1279         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
1280         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
1281         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
1282         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
1283         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
1284         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
1285         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
1286         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
1287         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
1288         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
1289         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
1290         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
1291         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
1292         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
1293         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
1294         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
1295         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
1296         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
1297         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
1298         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
1299         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
1300         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
1301         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
1302         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
1303         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
1304         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
1305         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
1306         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
1307         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
1308         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
1309         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
1310         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
1311         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
1312         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
1313         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
1314         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
1315         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
1316         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
1317         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
1318         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
1319         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
1320         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
1321         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
1322         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
1323         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
1324         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
1325         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
1326         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
1327         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
1328         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
1329         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
1330         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
1331         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
1332         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
1333         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
1334         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
1335         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
1336         move_v builtins.
1337         (mips_get_builtin_decl_index): New array.
1338         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
1339         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
1340         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
1341         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
1342         (mips_init_builtins): Initialize mips_get_builtin_decl_index
1343         array.
1344         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1345         hook.
1346         (mips_expand_builtin_insn): Prepare operands for
1347         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
1348         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
1349         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
1350         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
1351         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
1352         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
1353         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
1354         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
1355         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
1356         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
1357         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
1358         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
1359         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
1360         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
1361         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
1362         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
1363         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
1364         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
1365         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
1366         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
1367         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
1368         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1369         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1370         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1371         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1372         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1373         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1374         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1375         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1376         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1377         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1378         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1379         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1380         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1381         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1382         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1383         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1384         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1385         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1386         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1387         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1388         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1389         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1390         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1391         These are set implicitly and an error is reported if overridden.
1392         (mips_expand_builtin_msa_test_branch): New function.
1393         (mips_expand_msa_shuffle): Likewise.
1394         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1395         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1396         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1397         (mips_expand_vec_unpack): Add support for MSA.
1398         (mips_expand_vector_init): Likewise.
1399         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1400         instead of const0_rtx.
1401         (mips_msa_vec_parallel_const_half): New function.
1402         (mips_gen_const_int_vector): Likewise.
1403         (mips_gen_const_int_vector_shuffle): Likewise.
1404         (mips_expand_msa_cmp): Likewise.
1405         (mips_expand_vec_cond_expr): Likewise.
1406         * config/mips/mips.h
1407         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1408         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1409         specified.
1410         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1411         (ISA_HAS_MSA): New macro.
1412         (UNITS_PER_MSA_REG): Likewise.
1413         (BITS_PER_MSA_REG): Likewise.
1414         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1415         (MSA_REG_FIRST): New macro.
1416         (MSA_REG_LAST): Likewise.
1417         (MSA_REG_NUM): Likewise.
1418         (MSA_REG_P): Likewise.
1419         (MSA_REG_RTX_P): Likewise.
1420         (MSA_SUPPORTED_MODE_P): Likewise.
1421         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1422         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1423         * config/mips/mips.md: Include mips-msa.md.
1424         (alu_type): Add simd_add.
1425         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1426         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1427         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1428         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1429         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1430         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1431         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1432         simd_move, simd_load, simd_store.  Choose "multi" for moves
1433         for "qword_mode".
1434         (qword_mode): New attribute.
1435         (insn_count): Add instruction count for quad moves.
1436         Increase the count for MIPS SIMD division.
1437         (UNITMODE): Add UNITMODEs for vector types.
1438         (addsub): New code iterator.
1439         * config/mips/mips.opt (mmsa): New option.
1440         * config/mips/msa.h: New file.
1441         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1442         specified.
1443         * config/mips/mti-linux.h: Likewise.
1444         * config/mips/predicates.md
1445         (const_msa_branch_operand): New constraint.
1446         (const_uimm3_operand): Likewise.
1447         (const_uimm4_operand): Likewise.
1448         (const_uimm5_operand): Likewise.
1449         (const_uimm8_operand): Likewise.
1450         (const_imm5_operand): Likewise.
1451         (aq10b_operand): Likewise.
1452         (aq10h_operand): Likewise.
1453         (aq10w_operand): Likewise.
1454         (aq10d_operand): Likewise.
1455         (const_m1_operand): Likewise.
1456         (reg_or_m1_operand): Likewise.
1457         (const_exp_2_operand): Likewise.
1458         (const_exp_4_operand): Likewise.
1459         (const_exp_8_operand): Likewise.
1460         (const_exp_16_operand): Likewise.
1461         (const_vector_same_val_operand): Likewise.
1462         (const_vector_same_simm5_operand): Likewise.
1463         (const_vector_same_uimm5_operand): Likewise.
1464         (const_vector_same_uimm6_operand): Likewise.
1465         (const_vector_same_uimm8_operand): Likewise.
1466         (par_const_vector_shf_set_operand): Likewise.
1467         (reg_or_vector_same_val_operand): Likewise.
1468         (reg_or_vector_same_simm5_operand): Likewise.
1469         (reg_or_vector_same_uimm6_operand): Likewise.
1470         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1471         section.
1472         * doc/invoke.texi (-mmsa): Document new option.
1473
1474 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1475
1476         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1477         * configure: Regenerate.
1478         * config.in: Regenerate.
1479         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1480         on -fvtable-verify.
1481         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1482         (ENDFILE_VTV_SPEC): Define.
1483
1484 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1485
1486         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1487         registers in all interrupt handlers if necessary.
1488         (rl78_option_override): Add warning.
1489         (MUST_SAVE_MDUC_REGISTERS): New macro.
1490         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1491         * config/rl78/rl78.c (check_mduc_usage): New function.
1492         (mduc_regs): New structure to hold MDUC register data.
1493         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1494         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1495         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1496         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1497         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1498         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1499
1500 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1501
1502         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1503         (tree-ssa-loop-niter.h): Ditto.
1504         (idx_within_array_bound, ref_within_array_bound): New functions.
1505         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1506         Factor out check on writable base object to ...
1507         (base_object_writable): ... here.
1508
1509 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1510
1511         * config/arm/arm.md (probe_stack): Add modes to set source
1512         and destination.
1513
1514 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1515
1516         * regrename.c (base_reg_class_for_rename): New static function.
1517         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1518
1519 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1520
1521         * cgraph.c (thunk_adjust): Export.
1522         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1523         * cgraphunit.c (thunk_adjust): Export.
1524         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1525         thunks.
1526         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1527         inlinable.
1528         * tree-inline.c (expand_call_inline): Expand thunks inline.
1529
1530 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1531
1532         PR target/70998
1533         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1534         (*sse2_vd_cvtss2sd): Ditto.
1535         * config/i386/i386.md
1536         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1537         Generate *sse2_vd_cvtsd2ss pattern.
1538         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1539         Generate *sse2_vd_cvtss2sd pattern.
1540
1541 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1542
1543         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1544         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1545         users.
1546
1547 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1548
1549         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1550         * config/sh/sh.c: Define and declare variables on first use throughout
1551         the file.
1552         (current_function_interrupt): Change to bool type.
1553         (frame_insn): Rename to emit_frame_insn and update users.
1554         (push_regs): Use bool for 'interrupt_handler' argument.
1555         (save_schedule_s): Remove.
1556         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1557         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1558         targetm.asm_out.unaligned_op.di.
1559         (gen_far_branch): Remove redundant forward declaration.
1560         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1561         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1562         (sh_set_return_address, sh_function_ok_for_sibcall,
1563         scavenge_reg): Update comments.
1564         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1565         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1566         (sh_attr_renesas_p): Remove unnecessary parentheses.
1567         (branch_dest): Simplify.
1568         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1569         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1570         (CUMULATIVE_ARGS): Change macro to typedef.
1571         (current_function_interrupt): Change to bool type.
1572         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1573         Surround with __cplusplus ifdef.
1574         (sh_compare_op0, sh_compare_op1): Remove.
1575         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1576
1577 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1578
1579         * config/arm/arm.md: (arch): Add neon.
1580         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1581         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1582         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1583         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1584         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1585         (thumb2_movdf_vfp): Likewise.
1586
1587 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1588
1589         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1590         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1591         (*andqi_1): Add preferred_for_speed attribute to disparage
1592         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1593         (*<code>qi_1): Ditto.
1594         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1595         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1596         (*ashlqi3_1): Ditto.
1597         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1598         Add preferred_for_size attribute to disparage alternative 0 and
1599         preferred_for_speed attribute to disparage alternative 1 for
1600         TARGET_PARTIAL_REG_STALL targets.
1601
1602 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1603
1604         PR tree-optimization/70956
1605         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1606         def.
1607
1608 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1609
1610         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1611         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1612         * config/sh/sh.md (branch_zero): Remove define_attr.
1613         (define_delay): Disable delay slot if branch distance is one insn.
1614
1615 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1616
1617         * config/i386/i386.md (LEAMODE): New mode attribute.
1618         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1619         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1620         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1621         operand 2 predicate.
1622         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1623         (*lea<mode>_general_3): Ditto.
1624         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1625
1626 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1627
1628         * genmddump.c (main): Convert argv from char ** to const char **.
1629
1630 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1631
1632         * coretypes.h (OVERRIDE): New macro.
1633         (FINAL): New macro.
1634
1635 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1636
1637         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1638         allow coalescing if the types are compatible.
1639
1640 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1641
1642         * pass_manager.h (pass_manager::register_pass_name): New method.
1643         (pass_manager::get_pass_by_name): New method.
1644         (pass_manager::create_pass_tab): New method.
1645         (pass_manager::m_name_to_pass_map): New field.
1646         * passes.c (name_to_pass_map): Delete global in favor of field
1647         "m_name_to_pass_map" of pass_manager.
1648         (register_pass_name): Rename from a function to...
1649         (pass_manager::register_pass_name): ...this method, updating
1650         for renaming of global "name_to_pass_map" to field
1651         "m_name_to_pass_map".
1652         (create_pass_tab): Rename from a function to...
1653         (pass_manager::create_pass_tab): ...this method, updating
1654         for renaming of global "name_to_pass_map" to field.
1655         (get_pass_by_name): Rename from a function to...
1656         (pass_manager::get_pass_by_name): ...this method.
1657         (enable_disable_pass): Convert use of get_pass_by_name to
1658         a method call, locating the pass_manager singleton.
1659
1660 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1661
1662         * genattr-common.c (main): Convert argv from char ** to const char **.
1663         * genattr.c (main): Likewise.
1664         * genattrtab.c (main): Likewise.
1665         * genautomata.c (initiate_automaton_gen): Likewise.
1666         (main): Likewise.
1667         * gencodes.c (main): Likewise.
1668         * genconditions.c (main): Likewise.
1669         * genconfig.c (main): Likewise.
1670         * genconstants.c (main): Likewise.
1671         * genemit.c (main): Likewise.
1672         * genenums.c (main): Likewise.
1673         * genextract.c (main): Likewise.
1674         * genflags.c (main): Likewise.
1675         * genmddeps.c (main): Likewise.
1676         * genopinit.c (main): Likewise.
1677         * genoutput.c (main): Likewise.
1678         * genpeep.c (main): Likewise.
1679         * genpreds.c (main): Likewise.
1680         * genrecog.c (main): Likewise.
1681         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1682         (init_rtx_reader_args): Likewise.
1683         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1684         (init_rtx_reader_args): Likewise.
1685         * gentarget-def.c (main): Likewise.
1686         * read-md.c (read_md_files): Likewise.
1687         * read-md.h (read_md_files): Likewise.
1688
1689 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1690
1691         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1692         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1693         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1694         Remove unused predicate.
1695         (register_and_not_fp_reg_operand): Ditto.
1696
1697 2016-05-06  Martin Liska  <mliska@suse.cz>
1698
1699         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1700         instead of vec as the vector is local to the function.
1701
1702 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1703
1704         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1705         avx512bw alternative.
1706
1707         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1708         before the ashr<mode>3 pattern.
1709
1710         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1711         v instead of x in vex or maybe_vex alternatives, use
1712         maybe_evex instead of vex in prefix.
1713
1714         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1715         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1716         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1717         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1718         in prefix.
1719
1720         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1721         v instead of x in vex or maybe_vex alternatives, use
1722         maybe_evex instead of vex in prefix.
1723
1724         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1725         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1726         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1727         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1728         alternatives, use maybe_evex instead of vex in prefix.
1729
1730         * config/i386/sse.md (vec_interleave_lowv4sf,
1731         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1732         v instead of x in vex or maybe_vex alternatives, use
1733         maybe_evex instead of vex in prefix.
1734
1735         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1736         v instead of x in vex or maybe_vex alternatives, use
1737         maybe_evex instead of vex in prefix.
1738
1739         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1740         v constraint instead of x.
1741
1742 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1745         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1746         equality first.
1747
1748 2016-05-06  Richard Biener  <rguenther@suse.de>
1749
1750         PR tree-optimization/70948
1751         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1752         Properly clobber all fields of va_list for __builtin_va_start.
1753
1754 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1755
1756         PR debug/70935
1757         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1758         loop latch destination.
1759
1760 2016-05-06  Martin Liska  <mliska@suse.cz>
1761
1762         * tree-ssa-uninit.c: Apply manual changes
1763         to the GNU coding style.
1764         (prune_uninit_phi_opnds): Rename from
1765         prune_uninit_phi_opnds_in_unrealizable_paths.
1766
1767 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1768
1769         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1770         mspace): Remove deprecated options.
1771         * doc/invoke.texi (SH options): Remove -mspace.
1772
1773 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1774
1775         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1776
1777 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1778
1779         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1780         corresponding combine split pattern.
1781
1782 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1783
1784         PR target/58219
1785         * config/sh/predicates.md (long_displacement_mem_operand): New.
1786         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1787         Add movi20, movi20s alternatives.  Adjust length attribute for
1788         alternatives.
1789         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1790         alternatives.
1791         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1792         attribute for alternatives.
1793         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1794         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1795         length attribute for alternatives.
1796
1797 2016-05-06  Richard Biener  <rguenther@suse.de>
1798
1799         PR tree-optimization/70960
1800         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1801
1802 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1803
1804         PR target/52933
1805         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1806         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1807
1808 2016-05-06  Marek Polacek  <polacek@redhat.com>
1809
1810         PR sanitizer/70875
1811         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1812
1813 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1814
1815         PR target/54089
1816         * config/sh/sh.md (*rotcr): Add another variant.
1817
1818 2016-05-06  Richard Biener  <rguenther@suse.de>
1819
1820         PR middle-end/70931
1821         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1822
1823 2016-05-06  Richard Biener  <rguenther@suse.de>
1824
1825         PR middle-end/70941
1826         * fold-const.c (split_tree): Always convert to the original type
1827         before negating.
1828
1829 2016-05-06  Richard Biener  <rguenther@suse.de>
1830
1831         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1832         (fwprop_addr): Likewise.
1833
1834 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1835
1836         PR target/70873
1837         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1838         New prototype.
1839         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1840         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1841         the splitter condition.
1842         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1843         the splitter condition.
1844         (FP float_extend load splitter): Ditto.
1845
1846 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1849         to REGNO in all peephole2 patterns.
1850         (post-reload splitters): Change true_regnum to REGNO in
1851         post-reload splitters.
1852         (zero_extend splitters): Use general_reg_operand and
1853         nonimmediate_gr_operand predicates.
1854
1855 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1856
1857         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1858         v constraint instead of x.
1859
1860 2016-05-05  Alan Modra  <amodra@gmail.com>
1861
1862         PR target/68662
1863         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1864         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1865         TARGET_NO_FP_IN_TOC for -mrelocatable.
1866         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1867         TARGET_RELOCATABLE test.
1868         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1869         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1870         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1871         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1872         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1873         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1874         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1875         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1876         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1877         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1878         Likewise.
1879         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1880         (rs6000_stack_info): Likewise.
1881         (rs6000_elf_asm_out_constructor): Likewise.
1882         (rs6000_elf_asm_out_destructor): Likewise.
1883         (rs6000_elf_declare_function_name): Likewise.
1884         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1885         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1886         Don't define.
1887
1888 2016-05-05  Alan Modra  <amodra@gmail.com>
1889
1890         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1891
1892 2016-05-05  Alan Modra  <amodra@gmail.com>
1893
1894         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1895         out-of-line gpr restore for one or two regs if that would add
1896         a save of lr.
1897
1898 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1899
1900         PR target/70873
1901         * config/i386/i386.md
1902         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1903         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1904         as operand 0 predicate.
1905         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1906         Ditto.
1907         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1908         Ditto.  Emit the pattern using RTX.
1909
1910         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1911         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1912         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1913         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1914         Ditto.
1915         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1916         sse_reg_operand as operand 0 predicate.
1917
1918         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1919         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
1920         instead of gen_rtx_REG.
1921         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
1922         Ditto.
1923
1924 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1925
1926         * function.c (emit_use_return_register_into_block): Delete.
1927         (gen_return_pattern): Delete.
1928         (emit_return_into_block): Delete.
1929         (active_insn_between): Delete.
1930         (convert_jumps_to_returns): Delete.
1931         (emit_return_for_exit): Delete.
1932         (thread_prologue_and_epilogue_insns): Delete all code dealing with
1933         simple_return for shrink-wrapped blocks.
1934         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
1935         end of blocks that need one.
1936         (get_unconverted_simple_return): Delete.
1937         (convert_to_simple_return): Delete.
1938         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
1939         (convert_to_simple_return): Ditto.
1940
1941 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1942
1943         * cfgcleanup.c (bb_is_just_return): New function.
1944         (try_optimize_cfg): Simplify jumps to return, branches to return,
1945         and branches around return.
1946
1947 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1948
1949         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
1950         branch to a return.
1951
1952 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1953
1954         PR c++/70906
1955         PR c++/70933
1956         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
1957         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
1958         assert flags & OEP_HASH_CHECK, instead of asserting it
1959         never happens.  Handle TARGET_EXPR.
1960         * fold-const.c (operand_equal_p): For hash verification,
1961         or in OEP_HASH_CHECK into flags.
1962
1963 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
1964
1965         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
1966         comment.
1967         (compute_samebase_partition_bases): Fix typo.
1968
1969 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
1970
1971         * config/i386/sse.md (vec_interleave_highv8sf,
1972         vec_interleave_lowv8sf, vec_interleave_highv4df,
1973         vec_interleave_lowv4df): Remove constraints from expanders.
1974
1975         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
1976
1977 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1978
1979         * tree-inline.c (expand_call_inline): Fix path dealing with
1980         making lhs of call statement undefined.
1981
1982 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
1983
1984         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
1985         Check availability on NODE, too.
1986         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
1987         (cgraph_node::call_for_symbol_and_aliases): Likewise.
1988         (varpool_node::call_for_symbol_and_aliase): Likewise.
1989         * ipa-pure-const.c (add_new_function): Analyze all bodies.
1990         (propagate_pure_const): Propagate across interposable functions, too.
1991         (skip_function_for_local_pure_const): Do not skip interposable bodies
1992         with aliases.
1993         (pass_local_pure_const::execute): Update.
1994
1995 2016-05-04  Marek Polacek  <polacek@redhat.com>
1996
1997         * doc/invoke.texi: Document -Wdangling-else.
1998
1999 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2000
2001         * config.gcc: Error out when conflicting multilib is detected.  Do not
2002         loop over multilibs since no combination is legal.
2003
2004 2016-05-04  Alan Modra  <amodra@gmail.com>
2005
2006         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
2007         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
2008         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2009         Align .toc.
2010
2011 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
2012
2013         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
2014         Clean up p5600 comments.
2015
2016 2016-05-04  Richard Biener  <rguenther@suse.de>
2017
2018         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
2019         constructor simplifications.
2020         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
2021
2022 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
2023
2024         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
2025         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
2026         result.set_rtx is null instead of aborting.
2027         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
2028         Always enable.
2029         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
2030         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
2031         *mov<mode>_store_postinc): New patterns.
2032
2033 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
2034
2035         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
2036         as commutative.  Check both conversions are NOP.
2037         ((A & B) OP (C & B)): Remove.
2038
2039 2016-05-04  Alan Modra  <amodra@gmail.com>
2040
2041         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
2042
2043 2016-05-04  Alan Modra  <amodra@gmail.com>
2044
2045         PR target/70866
2046         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
2047         when cr2,3,4 are all fixed regs.
2048
2049 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
2050
2051         PR rtl-optimization/57193
2052         * opts.c (default_options_table): Revert OPT_frename_registers change.
2053         * doc/invoke.texi (-frename-registers, -O2): Likewise.
2054
2055 2016-05-03  Martin Sebor  <msebor@redhat.com>
2056
2057         PR c++/66561
2058         * builtins.c (fold_builtin_FILE): New function.
2059         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
2060         (fold_builtin_0): Call them.
2061         * gimplify.c (gimplify_call_expr): Remove the handling of
2062         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
2063
2064         PR c++/66561
2065         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
2066         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
2067         constants.
2068
2069         PR c++/66639
2070         * doc/extend.texi (Function Names as Strings): Update __func__,
2071         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
2072         constants.
2073
2074 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2075             Richard Biener  <rguenther@suse.de>
2076
2077         PR tree-optimization/70916
2078         * tree-if-conv.c: Include cfganal.h.
2079         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
2080         and remove_fake_exit_edges around the optimization pass.
2081
2082 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
2083
2084         * cgraph.c (symbol_table::create_edge): Set inline_failed.
2085         (cgraph_edge::make_direct): Likewise.
2086         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
2087         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
2088         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
2089         (CIF_THUNK): New code.
2090         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
2091         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
2092         (compute_inline_parameters): Set inline_failed for thunks.
2093         (inline_analyze_function): Cleanup.
2094         * ipa-inline.c (can_inline_edge_p): Do not deal with
2095         call_stmt_cannot_inline_p.
2096         (can_early_inline_edge_p): Likewise.
2097         (early_inliner): Initialize inline_failed.
2098         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
2099
2100 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
2101
2102         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
2103         from nonimm_ssenomem_operand.
2104         (nonimm_ssenomem_operand): New predicate.
2105         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
2106         as operand 0 predicate.
2107         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
2108         Disable unsupported alternatives using "enabled" attribute.
2109         Use register_ssemem_operand as operand 0 predicate.
2110         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
2111
2112 2016-05-03  Marek Polacek  <polacek@redhat.com>
2113
2114         PR c/70859
2115         * input.c (expansion_point_location): New function.
2116         * input.h (expansion_point_location): Declare.
2117
2118 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
2119
2120         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
2121         occurence with frame_offset_ ones.
2122
2123 2016-05-03  Alan Modra  <amodra@gmail.com>
2124
2125         PR rtl-optimization/70890
2126         * ira.c (combine_and_move_insns): When moving def_insn, remove
2127         equivs on use_insn.
2128
2129 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2130
2131         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
2132         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
2133         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
2134         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
2135
2136 2016-05-03  Alan Modra  <amodra@gmail.com>
2137
2138         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
2139         for SAVE_MULTIPLE/STORE_MULTIPLE.
2140
2141 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2142
2143         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
2144         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
2145
2146 2016-05-03  Richard Biener  <rguenther@suse.de>
2147
2148         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
2149         default true.
2150         (gimplify_arg): Likewise.
2151         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
2152         re-writing the result to a decl if required.
2153         (internal_get_tmp_var): Add allow_ssa parameter
2154         and override into_ssa with it.
2155         (get_formal_tmp_var): Adjust.
2156         (get_initialized_tmp_var): Add allow_ssa parameter.
2157         (gimplify_arg): Add allow_ssa parameter and avoid generating
2158         SSA names for the result false.
2159         (gimplify_call_expr): If the call may return twice do not
2160         gimplify parameters into SSA.
2161         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
2162         (gimplify_modify_expr): Adjust assert.  For noreturn calls
2163         with a SSA name LHS adjust its def.
2164         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
2165         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
2166         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
2167         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
2168         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
2169         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
2170         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
2171         (optimize_target_teams): Do not allow SSA names for clause operands.
2172         (gimplify_expr): Likewise for where we mark the result addressable.
2173         * passes.def (pass_init_datastructures): Remove.
2174         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
2175         (rewrite_stmt): Likewise.
2176         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
2177         (replace_locals_op): Replace SSA names.
2178         (copy_gimple_seq_and_replace_locals): Init src_cfun.
2179         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
2180         * cgraph.c (release_function_body): Free CFG annotations only
2181         when we have a CFG.  Simplify.
2182         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2183         force_gimple_operand instead of get_initialized_tmp_var.
2184         * tree-pass.h (make_pass_init_datastructures): Remove.
2185         * tree-ssa.c (execute_init_datastructures): Remove.
2186         (pass_data_init_datastructures): Likewise.
2187         (class pass_init_datastructures): Likewise.
2188         (make_pass_init_datastructures): Likewise.
2189         * omp-low.c (create_omp_child_function): Init SSA data structures.
2190         (grid_expand_target_grid_body): Likewise.
2191         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
2192         name before adding it to names_to_release.
2193         (remove_bb): Always release SSA defs.
2194         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
2195         before dereferencing it.
2196         * cgraphunit.c (init_lowered_empty_function): Always
2197         int SSA data structures.
2198         * tree-ssanames.c (release_defs): Remove assert that we are in
2199         SSA form.
2200         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
2201
2202 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2203             Uros Bizjak  <ubizjak@gmail.com>
2204
2205         PR rtl-optimization/70467
2206         * config/i386/predicates.md (x86_64_hilo_int_operand,
2207         x86_64_hilo_general_operand): New predicates.
2208         * config/i386/constraints.md (Wd): New constraint.
2209         * config/i386/i386.md (mode attr di): Use Wd instead of e.
2210         (general_hilo_operand): New mode attr.
2211         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
2212         instead of <general_operand>.
2213         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
2214         x86_64_hilo_general_operand instead of <general_operand>.
2215
2216 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2217
2218         PR tree-optimization/70916
2219         * tree-if-conv.c (constant_or_ssa_name): Removed.
2220         (fold_build_cond_expr): Use is_gimple_val instead of
2221         constant_or_ssa_name.
2222
2223         PR tree-optimization/70916
2224         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
2225         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
2226
2227         PR target/49244
2228         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
2229         (optimize_atomic_bit_test_and): New function.
2230         (pass_fold_builtins::execute): Use it.
2231         * optabs.def (atomic_bit_test_and_set_optab,
2232         atomic_bit_test_and_complement_optab,
2233         atomic_bit_test_and_reset_optab): New optabs.
2234         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
2235         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
2236         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
2237         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
2238         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
2239         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
2240         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
2241         * doc/md.texi (atomic_bit_test_and_set@var{mode},
2242         atomic_bit_test_and_complement@var{mode},
2243         atomic_bit_test_and_reset@var{mode}): Document.
2244         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
2245         atomic_bit_test_and_complement<mode>,
2246         atomic_bit_test_and_reset<mode>): New expanders.
2247         (atomic_bit_test_and_set<mode>_1,
2248         atomic_bit_test_and_complement<mode>_1,
2249         atomic_bit_test_and_reset<mode>_1): New insns.
2250
2251 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
2252
2253         PR rtl-optimization/70687
2254         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
2255         instead of unsigned HOST_WIDE_INT.
2256
2257 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
2258
2259         PR rtl-optimization/44281
2260         * hard-reg-set.h (struct target_hard_regs): New field
2261         x_fixed_nonglobal_reg_set.
2262         (fixed_nonglobal_reg_set): New macro.
2263         * reginfo.c (init_reg_sets_1): Initialize it.
2264         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
2265         of fixed_reg_set.
2266         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
2267
2268 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2269
2270         PR tree-optimization/56541
2271         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
2272         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
2273         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
2274         (any_complicated_phi): new static variable.
2275         (aggressive_if_conv): delete.
2276         (if_convertible_phi_p): support phis with more than two arguments.
2277         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
2278         critical pred edges.
2279         (ifcvt_split_critical_edges): support phis with more than two
2280         arguments by checking new parameter.  only split critical edges
2281         if needed.
2282         (tree_if_conversion): handle simd pragma marked loop using new
2283         local variable aggressive_if_conv.  check any_complicated_phi.
2284
2285 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2286
2287         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
2288         before using it.
2289
2290 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2291
2292         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
2293         cbase.
2294
2295 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2296
2297         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
2298         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
2299         define_insn_and_split.
2300         (mulsi3_i): New define_insn_and_split.
2301         (mulsi3_call): Convert to define_insn.
2302         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
2303         Remove constraints.
2304
2305 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2306
2307         * machmode.h (mode_complex): Add support to give the complex mode
2308         for a given mode.
2309         (GET_MODE_COMPLEX_MODE): Likewise.
2310         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2311         stored by build_complex_type and gfc_build_complex_type instead of
2312         trying to figure out the appropriate mode based on the size. Raise
2313         an assertion error, if the type was not set.
2314         * genmodes.c (struct mode_data): Add field for the complex type of
2315         the given type.
2316         (blank_mode): Likewise.
2317         (make_complex_modes): Remember the complex mode created in the
2318         base type.
2319         (emit_mode_complex): Write out the mode_complex array to map a
2320         type mode to the complex version.
2321         (emit_insn_modes_c): Likewise.
2322         * tree.c (build_complex_type): Set the complex type to use before
2323         calling layout_type.
2324         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2325         support for __float128 complex datatypes.
2326         (rs6000_hard_regno_mode_ok): Likewise.
2327         (rs6000_setup_reg_addr_masks): Likewise.
2328         (rs6000_complex_function_value): Likewise.
2329         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2330         __float128 and __ibm128 complex.
2331         (FLOAT128_IBM_P): Likewise.
2332         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2333         * doc/extend.texi (Additional Floating Types): Document that
2334         -mfloat128 must be used to enable __float128.  Document complex
2335         __float128 and __ibm128 support.
2336
2337 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2338
2339         PR target/49244
2340         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
2341         char/short arguments promoted to int because of promote_prototypes.
2342
2343 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2344
2345         * config/i386/predicates.md (register_ssemem_operand): New predicate.
2346         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
2347         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
2348         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
2349         alternatives using "enabled" attribute.  Use register_ssemem_operand
2350         as operand 1 predicate.
2351         (*cmpi<unord>xf_i387): Split XFmode pattern from
2352         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
2353         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
2354         *absneg<mode>2_i387.  Disable unsupported alternatives using
2355         "enabled" attribute.
2356         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
2357
2358 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2359
2360         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
2361         marker.
2362         (oacc_loop_process): Check mask for loop termination.
2363
2364 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2365
2366         * cif-code.def (CIF_THUNK): Add.
2367         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
2368         accidental change.
2369
2370 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2371
2372         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2373         (dump_inline_summary): Dump it.
2374         (fp_expression_p): New predicate.
2375         (estimate_function_body_sizes): Use it.
2376         (inline_merge_summary): Merge fp_expressions.
2377         (inline_read_section): Read fp_expressions.
2378         (inline_write_summary): Write fp_expressions.
2379         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2380         codegen boundary if either caller or callee is !fp_expressions.
2381         * ipa-inline.h (inline_summary): Add fp_expressions.
2382         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2383         to fp_expressions be sure the fp generation flags are updated.
2384
2385 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2386
2387         PR rtl-optimization/70467
2388         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2389
2390         PR rtl-optimization/70467
2391         * ipa-pure-const.c (check_call): Handle internal calls even in
2392         ipa mode like in local mode.
2393
2394 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2395
2396         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2397
2398 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2399
2400         * match.pd (X u< X, X u> X): New transformations.
2401
2402 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2403
2404         * flag-types.h (enum warn_strict_overflow_code): Move ...
2405         * coretypes.h: ... here.
2406         * fold-const.h (fold_overflow_warning): Declare.
2407         * fold-const.c (fold_overflow_warning): Make non-static.
2408         (fold_comparison): Move the transformation of X +- C1 CMP C2
2409         into X CMP C2 -+ C1 ...
2410         * match.pd: ... here.
2411         * gimple-fold.c (fold_stmt_1): Protect with
2412         fold_defer_overflow_warnings.
2413
2414 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2415
2416         * omp-low.c (struct oacc_loop): Add 'inner' field.
2417         (new_oacc_loop_raw): Initialize it to zero.
2418         (oacc_loop_fixed_partitions): Initialize it.
2419         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2420         available partitioning.
2421
2422 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2423
2424         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2425         register_operand.
2426         (umulsidi3): Likewise.
2427         (indirect_jump): Fix jump instruction assembly patterns.
2428
2429 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2430
2431         PR target/70860
2432         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2433         (nvptx_function_value): Assert non-NULL cfun.
2434
2435 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2436
2437         PR rtl-optimization/70886
2438         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2439
2440         * cselib.h (rtx_equal_for_cselib_1): Declare.
2441         (rtx_equal_for_cselib_p: New inline function.
2442         * cselib.c (rtx_equal_for_cselib_p): Delete.
2443         (rtx_equal_for_cselib_1): Make public.
2444
2445 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2446
2447         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2448         (register_mixssei387nonimm_operand): Remove predicate.
2449         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2450         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2451         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2452         for TARGET_MIX_SSE_I387 alternatives.
2453         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2454         Disable unsupported alternatives using "enabled" attribute.  Use
2455         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2456         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2457
2458 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2459
2460         * tree.c (cst_and_fits_in_hwi): Simplify.
2461
2462 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2463
2464         * tree.h (wi::to_wide): New function.
2465         * expr.c (expand_expr_real_1): Use wi::to_wide.
2466         * fold-const.c (int_const_binop_1): Likewise.
2467         (extract_muldiv_1): Likewise.
2468
2469 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2470
2471         * wide-int.h: Update offset_int and widest_int documentation.
2472         (WI_SIGNED_SHIFT_RESULT): New macro.
2473         (wi::binary_shift): Define signed_shift_result_type for
2474         shifts on offset_int- and widest_int-like types.
2475         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2476         * tree.h (int_bit_position): Use shift operators instead of wi::
2477          shifts.
2478         * alias.c (adjust_offset_for_component_ref): Likewise.
2479         * expr.c (get_inner_reference): Likewise.
2480         * fold-const.c (fold_comparison): Likewise.
2481         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2482         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2483         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2484         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2485         (stmt_kills_ref_p): Likewise.
2486         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2487         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2488         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2489         (ao_ref_init_from_vn_reference): Likewise.
2490
2491 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2492
2493         * wide-int.h: Update offset_int and widest_int documentation.
2494         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2495         (wi::binary_traits): Allow ordered comparisons between offset_int and
2496         offset_int, between widest_int and widest_int, and between either
2497         of these types and basic C types.
2498         (operator <, <=, >, >=): Define for the same combinations.
2499         * tree.h (tree_int_cst_lt): Use comparison operators instead
2500         of wi:: comparisons.
2501         (tree_int_cst_le): Likewise.
2502         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2503         (fold_nonarray_ctor_reference): Likewise.
2504         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2505         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2506         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2507         * tree-sra.c (completely_scalarize): Likewise.
2508         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2509         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2510         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2511         (check_for_binary_op_overflow): Likewise.
2512         (search_for_addr_array): Likewise.
2513         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2514
2515 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2516
2517         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2518         (arc_save_restore): Likewise.
2519         (arc_dwarf_register_span): Likewise.
2520         (arc_output_pic_addr_const): Initialize suffix variable.
2521
2522 2016-05-02  Martin Liska  <mliska@suse.cz>
2523
2524         * symbol-summary.h (function_summary::function_summary):
2525         Remove checking assert for all cgraph nodes.
2526         (function_summary::get): Check summary_uid.
2527         (symtab_insertion): Check summary_uid.
2528
2529 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2530
2531         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2532         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2533         bmaskn instruction.
2534         (arc_dwarf_register_span): Remove enum keyword.
2535         (compact_memory_operand_p): New function.
2536         * config/arc/arc.h (reg_class): Add code density register classes.
2537         (REG_CLASS_NAMES): Likewise.
2538         (REG_CLASS_CONTENTS): Likewise.
2539         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2540         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2541         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2542         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2543         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2544         constraints.
2545         (h, Rcd, Rsd, Rzd): New register constraints.
2546         (T): Use compact_memory_operand_p function.
2547         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2548
2549 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2550
2551         * config/sh/sh.md (*negnegt, *movtt): Remove.
2552
2553 2016-05-02  Marek Polacek  <polacek@redhat.com>
2554             Tom de Vries  <tom@codesourcery.com>
2555
2556         PR tree-optimization/70700
2557         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2558         bigger than FIRST_REF_NODE.
2559
2560 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2561
2562         PR target/52898
2563         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2564         TARGET_CMPEQDI_T.
2565         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2566         function is used when pseudos can be created.
2567         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2568         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2569         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2570         define_expand.  Allow it only when pseudos can be created.
2571         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2572
2573 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2574
2575         * config/i386/constraints.md (BC): Only allow -1 operands.
2576         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2577         Add "enabled" attribute.  Update XI mode attribute calculation.
2578         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2579         (*movoi_internal_avx): Update XI mode attribute calculation.
2580         (*movti_internal): Ditto.
2581
2582 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2583
2584         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2585         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2586
2587 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2588
2589         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2590         statement on instruction code.  Remove trailing spaces.
2591         (altivec_expand_stv_builtin): Likewise.
2592
2593 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2594
2595         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2596         (TARGET_FPU_DOUBLE): Simplify.
2597         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2598         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2599         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2600         with 'TARGET_FPU_DOUBLE'.
2601         * config/sh/sh.md: Likewise.
2602
2603 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2604
2605         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2606         SH_DIV_STR_FOR_SIZE): Remove.
2607         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2608         SH_DIV_STR_FOR_SIZE): Remove.
2609
2610 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2611
2612         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2613         logical_reg_operand): Delete.
2614         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2615         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2616         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2617         match_operand and match_test.
2618         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2619         variables on their first use.  Return bool values.
2620         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2621         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2622         arith_reg_operand for input operand.  Remove empty constraints.
2623         (xorsi3): Delete.
2624         (*xorsi3_compact): Rename to xorsi3.
2625         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2626         (*zero_extend<mode>si2_disp_mem): Update comment.
2627         (mov_nop): Delete.
2628
2629 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2630
2631         * config/sh/t-sh: Remove SH5 support.
2632         * config.gcc: Likewise.
2633         * configure: Likewise.
2634
2635 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2636
2637         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2638
2639 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2640
2641         * config/sh/sh.c (register_sh_passes, sh_option_override,
2642         sh_print_operand, prepare_move_operands,
2643         sh_can_follow_jump): Remove TARGET_SH1 checks.
2644         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2645         PROMOTE_MODE): Likewise.
2646         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2647         movdi): Likewise.
2648
2649 2016-04-30  Alan Modra  <amodra@gmail.com>
2650
2651         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2652         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2653         Check for user regs later to avoid unnecessary looping over regs.
2654         Merge user reg check with non-saved reg check.  Don't force
2655         inline VR restore when static chain used.
2656         (rs6000_frame_related): Omit eh_frame info for user regs when
2657         saving.
2658         (fixed_regs_p): Delete.
2659
2660 2016-04-30  Alan Modra  <amodra@gmail.com>
2661
2662         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2663         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2664         Update all uses.
2665
2666 2016-04-30  Alan Modra  <amodra@gmail.com>
2667
2668         PR target/69645
2669         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2670         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2671         Update all uses.
2672
2673 2016-04-30  Alan Modra  <amodra@gmail.com>
2674
2675         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2676         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2677         flag_pic test for Darwin.
2678
2679 2016-04-30  Alan Modra  <amodra@gmail.com>
2680
2681         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2682         throw_calls_crossed.
2683         (REG_FREQ_CALLS_CROSSED): Delete.
2684         (REG_N_THROWING_CALLS_CROSSED): Delete.
2685         * regstat.c (regstat_bb_compute_ri): Don't calculate
2686         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2687         (dump_reg_info): Don't print call cross frequency.
2688         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2689         and REG_N_THROWING_CALLS_CROSSED.
2690
2691 2016-04-30  Alan Modra  <amodra@gmail.com>
2692
2693         * regs.h (struct reg_info_t): Delete live_length.
2694         (REG_LIVE_LENGTH): Delete macro.
2695         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2696         local_live, local_processed and local_live_last_luid params.
2697         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2698         Formatting fixes.
2699         (regstat_compute_ri): Adjust for above.  Don't set
2700         REG_LIVE_LENGTH.
2701         (dump_reg_info): Don't print live length.
2702         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2703         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2704         Localize loop_depth var.
2705
2706 2016-04-30  Alan Modra  <amodra@gmail.com>
2707
2708         * ira.c (enum valid_equiv): New.
2709         (validate_equiv_mem): Return enum.
2710         (update_equiv_mem): Create replacement in more cases.
2711         (add_store_equivs): Update validate_equiv_mem call.
2712
2713 2016-04-30  Alan Modra  <amodra@gmail.com>
2714
2715         * ira.c (combine_and_move_insns): Rather than scanning insns,
2716         use DF infrastucture to find use and def insns.
2717
2718 2016-04-30  Alan Modra  <amodra@gmail.com>
2719
2720         ira.c (combine_and_move_insns): Move invariant conditions..
2721         (ira.c): ..to here.  Call combine_and_move_insns before
2722         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2723         req_equiv later using max_reg_num() rather than global max_regno.
2724         (contains_replace_regs): Delete.
2725         (add_store_equivs): Remove contains_replace_regs test.
2726
2727 2016-04-30  Alan Modra  <amodra@gmail.com>
2728
2729         * ira.c (struct equiv_mem_data): New.
2730         (equiv_mem, equiv_mem_modified): Delete static vars.
2731         (validate_equiv_mem_from_store): Use "data" param to communicate..
2732         (validate_equiv_mem): ..from here.
2733
2734 2016-04-30  Alan Modra  <amodra@gmail.com>
2735
2736         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2737         split out from..
2738         (update_reg_equivs): ..here.  Move allocation and freeing of
2739         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2740         end_alias_analysis to..
2741         (ira): ..here.
2742
2743 2016-04-30  Alan Modra  <amodra@gmail.com>
2744
2745         * ira.c (pdx_subregs): Delete.
2746         (struct equivalence): Add pdx_subregs field.
2747         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2748         pdx_subregs access.
2749         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2750         pdx_subregs access.
2751
2752 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2753
2754         * config/rs6000/altivec.h: Change definitions of vec_xl and
2755         vec_xst.
2756         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2757         (LD_ELEMREV_V2DI): New.
2758         (LD_ELEMREV_V4SF): New.
2759         (LD_ELEMREV_V4SI): New.
2760         (LD_ELEMREV_V8HI): New.
2761         (LD_ELEMREV_V16QI): New.
2762         (ST_ELEMREV_V2DF): New.
2763         (ST_ELEMREV_V2DI): New.
2764         (ST_ELEMREV_V4SF): New.
2765         (ST_ELEMREV_V4SI): New.
2766         (ST_ELEMREV_V8HI): New.
2767         (ST_ELEMREV_V16QI): New.
2768         (XL): New.
2769         (XST): New.
2770         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2771         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2772         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2773         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2774         (altivec_expand_builtin): Add handling for
2775         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2776         (rs6000_invalid_builtin): Add error-checking for
2777         RS6000_BTM_P9_VECTOR.
2778         (altivec_init_builtins): Define builtins used to implement vec_xl
2779         and vec_xst.
2780         (rs6000_builtin_mask_names): Define power9-vector.
2781         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2782         (RS6000_BTM_P9_VECTOR): Define.
2783         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2784         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2785         (vsx_ld_elemrev_v2df): Likewise.
2786         (vsx_ld_elemrev_v4sf): Likewise.
2787         (vsx_ld_elemrev_v4si): Likewise.
2788         (vsx_ld_elemrev_v8hi): Likewise.
2789         (vsx_ld_elemrev_v16qi): Likewise.
2790         (vsx_st_elemrev_v2df): Likewise.
2791         (vsx_st_elemrev_v2di): Likewise.
2792         (vsx_st_elemrev_v4sf): Likewise.
2793         (vsx_st_elemrev_v4si): Likewise.
2794         (vsx_st_elemrev_v8hi): Likewise.
2795         (vsx_st_elemrev_v16qi): Likewise.
2796         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2797         grammar.
2798
2799 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2800
2801         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2802         out into ...
2803         (simplify_control_stmt_condition_1): ... here.  Recurse into
2804         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2805
2806 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2807
2808         PR target/69810
2809         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2810         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2811         define_insn_and_split to define_insn.
2812         (zero_extendqi<mode>2_dot2): Same.
2813         (extendqi<mode>2_dot): Same.
2814         (extendqi<mode>2_dot2): Same.
2815
2816 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2817
2818         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2819         (probe_stack): New expander.
2820         (probe_stack_<mode>): New insn pattern.
2821
2822 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2823
2824         * config/i386/i386.md
2825         (operations with memory inputs setting flags peephole2):
2826         Remove uneeded REG_P checks.  Cleanup pattern generation.
2827
2828 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2829
2830         * tree-vect-loop.c (vect_transform_loop): Fix
2831         nb_iterations_upper_bound computation for vectorized loop.
2832
2833 2016-04-29  Marek Polacek  <polacek@redhat.com>
2834             Jakub Jelinek  <jakub@redhat.com>
2835
2836         PR sanitizer/70342
2837         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2838         TARGET_EXPR_SLOT as a base.
2839
2840 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2841
2842         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2843         with 'rCm2' constraints to limit possible immediate size.
2844         (*load_zeroextendqisi_update): Likewise.
2845         (*load_signextendqisi_update): Likewise.
2846         (*loadhi_update): Likewise.
2847         (*load_zeroextendhisi_update): Likewise.
2848         (*load_signextendhisi_update): Likewise.
2849         (*loadsi_update): Likewise.
2850         (*loadsf_update): Likewise.
2851
2852 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2853
2854         * config/i386/predicates.md (constm1_operand): Fix comparison.
2855
2856 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2857
2858         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2859
2860 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2861
2862         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2863         remaining SH5 related settings.
2864         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2865         shmedia_prepare_call_address): Delete.
2866         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2867         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2868         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2869         UNSUPPORTED_SH2A): Remove m5 checks.
2870         (sh_divide_strategy_e): Remove SH5 division strategies.
2871         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2872         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2873
2874 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2875
2876         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2877
2878 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2879
2880         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2881         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2882         Change lder to ldr.
2883         * config/s390/vector.md ("mov<mode>"): Likewise.
2884
2885 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2886
2887         * config/s390/constraints.md ("U", "W"): Invoke
2888         s390_mem_constraint with "ZR" and "ZT".
2889         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2890         addresses when using LRA.  Accept also short displacements for S
2891         and T constraints.  Do not check for long displacement target for
2892         S and T constraints.
2893         (s390_mem_constraint): Remove handling of U and W constraints.
2894         * config/s390/s390.md (various patterns): Remove the short
2895         displacement constraints (Q and R) if a long displacement
2896         constraint is present.  Add longdisp as required CPU capability.
2897         * config/s390/vector.md: Likewise.
2898         * config/s390/vx-builtins.md: Likewise.
2899
2900 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2901
2902         PR target/60040
2903         * reload1.c (reload): Call finish_spills before
2904         restarting reload loop. Skip select_reload_regs
2905         if update_eliminables_and_spill returns true.
2906
2907 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2908
2909         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2910         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2911         (umulhisi3_imm): Update predicates and constraint letters.
2912         (umulhisi3_reg): Declare instruction as commutative.
2913         * config/arc/constraints.md (J12, J16): New constraints.
2914         * config/arc/predicates.md (short_unsigned_const_operand): New
2915         predicate.
2916         (arc_short_operand): Likewise.
2917         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2918
2919 2016-04-29  Richard Biener  <rguenther@suse.de>
2920
2921         PR tree-optimization/13962
2922         PR tree-optimization/65686
2923         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
2924         * tree-ssa-alias.c (ptrs_compare_unequal): New function
2925         using PTA to compare pointers.
2926         * match.pd: Add pattern for pointer equality compare simplification
2927         using ptrs_compare_unequal.
2928
2929 2016-04-29  Richard Biener  <rguenther@suse.de>
2930
2931         * stor-layout.c (layout_type): Do not build a pointer-to-element
2932         type for arrays.
2933
2934 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2935
2936         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
2937         Use SWI mode iterator.  Use general_reg_operand predicate.
2938         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
2939         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
2940         predicates.
2941
2942 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
2943
2944         PR middle-end/70843
2945         * fold-const.c (operand_equal_p): Don't verify hash value equality
2946         if arg0 == arg1.
2947         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
2948         and OMP_CLAUSE.
2949
2950 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
2951
2952         PR target/70858
2953         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
2954         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
2955         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
2956         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
2957         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
2958
2959 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
2960
2961         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
2962         to info.  Don't initialize separate fields to 0.  Clean up
2963         formatting a bit.
2964
2965 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
2966
2967         * config/i386/i386.md (peephole2s for operations with memory inputs):
2968         Use SWI mode iterator.
2969         (peephole2s for operations with memory outputs): Ditto.
2970         Do not check for stack checking probe.
2971
2972         (probe_stack): Remove expander.
2973
2974 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2975             Andrew Burgess  <andrew.burgess@embecosm.com>
2976
2977         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
2978         operands as 32-bits.
2979
2980 2016-04-28  Jason Merrill  <jason@redhat.com>
2981
2982         * gdbinit.in: Skip line-map.h.
2983
2984 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
2985             Andrew Burgess  <andrew.burgess@embecosm.com>
2986
2987         * config/arc/arc.c (arc_conditional_register_usage): Take
2988         TARGET_RRQ_CLASS into account.
2989         (arc_print_operand): Support printing 'p' and 's' operands.
2990         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
2991         as 0.
2992         (TARGET_RRQ_CLASS): Define.
2993         (IS_POWEROF2_OR_0_P): Define.
2994         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
2995         alternatives.
2996         (*tst_movb): New define_insn.
2997         (*tst): Avoid recognition if it could prevent '*tst_movb'
2998         combination; replace c/CnL with c/Chs alternative.
2999         (*tst_bitfield_tst): New define_insn.
3000         (*tst_bitfield_asr): New define_insn.
3001         (*tst_bitfield): New define_insn.
3002         (andsi3_i): Add Rrq variant.
3003         (extzv): New define_expand.
3004         (insv): New define_expand.
3005         (*insv_i): New define_insn.
3006         (*movb): New define_insn.
3007         (*movb_signed): New define_insn.
3008         (*movb_high): New define_insn.
3009         (*movb_high_signed): New define_insn.
3010         (*movb_high_signed + 1): New define_split pattern.
3011         (*mrgb): New define_insn.
3012         (*mrgb + 1): New define_peephole2 pattern.
3013         (*mrgb + 2): New define_peephole2 pattern.
3014         * config/arc/arc.opt (mbitops): New option for nps400, uses
3015         TARGET_NPS_BITOPS_DEFAULT.
3016         * config/arc/constraints.md (q): Make register class conditional.
3017         (Rrq): New register constraint.
3018         (Chs): New constraint.
3019         (Clo): New constraint.
3020         (Chi): New constraint.
3021         (Cbf): New constraint.
3022         (Cbn): New constraint.
3023         (C18): New constraint.
3024         (Cbi): New constraint.
3025
3026 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3027
3028         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
3029         dst->popcount.
3030         (bitmap_intersection_of_preds): Ditto.
3031         (bitmap_union_of_succs): Ditto.
3032         (bitmap_union_of_preds): Ditto.
3033         * sbitmap.c (do_popcount): Delete.
3034         (BITMAP_DEBUGGING): Delete.
3035         (sbitmap_verify_popcount): Delete.
3036         (sbitmap_alloc): Don't initialize the popcount field.
3037         (sbitmap_alloc_with_popcount): Delete.
3038         (sbitmap_resize): Don't resize the popcount array.
3039         (sbitmap_vector_alloc): Don't initialize the popcount field.
3040         (bitmap_copy): Don't copy the popcount array.
3041         (bitmap_clear): Don't clear the popcount array.
3042         (bitmap_clear): Delete the popcount array handling.
3043         (bitmap_ior_and_compl): Delete the popcount assert.
3044         (bitmap_not): Ditto.
3045         (bitmap_and_compl): Ditto.
3046         (bitmap_and): Delete the popcount array handling.
3047         (bitmap_xor): Ditto.
3048         (bitmap_ior): Ditto.
3049         (bitmap_or_and): Delete the popcount assert.
3050         (bitmap_and_or): Ditto.
3051         (popcount_table): Delete.
3052         (sbitmap_elt_popcount): Delete.
3053         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
3054         (bitmap_set_bit): Delete the popcount assert.
3055         (bitmap_clear_bit): Ditto.
3056         (sbitmap_free): Don't free the popcount array.
3057         (sbitmap_alloc_with_popcount): Delete declaration.
3058         (sbitmap_popcount): Ditto.
3059
3060 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3061             Andrew Burgess  <andrew.burgess@embecosm.com>
3062
3063         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
3064         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
3065         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
3066         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
3067         * config/arc/arc.opt (mcmem): New option.
3068         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
3069         supply length for r/m alternative.
3070         (*extendqisi2_ac): Likewise.
3071         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
3072         r/Uex alternative.
3073         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
3074         (movhi_insn): Likewise.
3075         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
3076         (*zero_extendqihi2_i): Add r/Ucm alternative.
3077         (*zero_extendqisi2_ac): Likewise.
3078         (*zero_extendhisi2_i): Likewise.
3079         * config/arc/constraints.md (Uex): New memory constraint.
3080         (Ucm): New define_constraint.
3081         * config/arc/predicates.md (long_immediate_loadstore_operand):
3082         Return 0 for MEM with cmem_address address.
3083         (cmem_address_0): New predicates.
3084         (cmem_address_1): Likewise.
3085         (cmem_address_2): Likewise.
3086         (cmem_address): Likewise.
3087
3088 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3089
3090         * config/rs6000/rs6000.c (machine_function): Rename
3091         insn_chain_scanned_p to spe_insn_chain_scanned_p.
3092         (rs6000_stack_info): Adjust.
3093
3094 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3095             Andrew Burgess  <andrew.burgess@embecosm.com>
3096
3097         * config/arc/constraints.md (Usd): Convert to define_constraint.
3098         (Us<): Likewise.
3099         (Us>): Likewise.
3100
3101 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3102
3103         PR target/70821
3104         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
3105         Add new peephole2 where the first insn is *mov<mode>_or instead of
3106         *mov<mode>_internal.
3107
3108 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
3109
3110         * tracer.c (bb_seen): Make static.
3111
3112 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
3113
3114         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
3115         support, setup defaults.
3116         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
3117         * config/arc/arc.c (arc_init): Add NPS400 support.
3118         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
3119         (TARGET_ARC700): NPS400 is also an ARC700.
3120         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
3121
3122 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3123
3124         PR target/70668
3125         * config/nds32/nds32.md (casesi): Don't access the operands array
3126         out of bounds.
3127
3128 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3129
3130         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
3131         (or $-1,reg peephole2): Ditto.
3132         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
3133
3134 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3135
3136         * doc/extend.texi (Common Function Attributes) [optimize]:
3137         Discourage use of the optimize attribute.
3138
3139 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
3140
3141         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
3142         special case builtin.
3143         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3144         ALTIVEC_BUILTIN_VEC_ADDE.
3145         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3146         support for ALTIVEC_BUILTIN_VEC_ADDE.
3147         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3148         for __builtin_vec_adde.
3149
3150 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3151
3152         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
3153         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
3154
3155 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3156
3157         PR testsuite/70595
3158         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3159         attributes): Document cilkplus_runtime.
3160
3161 2016-04-28  Martin Jambor  <mjambor@suse.cz>
3162
3163         * tree-cfg.c (verify_expr): Verify that local declarations belong to
3164         this function.  Call verify_expr on MEM_REFs and bases of other
3165         handled_components.
3166
3167 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3168
3169         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
3170         for WORD_REGISTER_OPERATIONS to runtime check.
3171
3172 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3173
3174         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
3175
3176 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3177
3178         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
3179         big-endian compilation.
3180         * config/arc/arc.md (addf3): Likewise.
3181         (subdf3): Likewise.
3182         (muldf3): Likewise.
3183
3184 2016-04-28  Richard Biener  <rguenther@suse.de>
3185
3186         PR tree-optimization/70840
3187         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
3188         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
3189         Mark x * pow(x,c) -> pow(x,c+1) commutative.
3190         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
3191
3192 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3193
3194         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
3195         and explain why in a comment.
3196
3197 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3198
3199         * config/arc/arc.md (cpu_facility): Add fpx variant.
3200         (subdf3): Prohibit use reverse sub when assist operations option
3201         is enabled.
3202         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
3203         instructions only when FPX is enabled.
3204         * testsuite/gcc.target/arc/trsub.c: New test.
3205
3206 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3207
3208         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
3209         mult_operator when calculating "type" attribute.
3210         (*fop_<mode>_1_i387): Ditto.
3211         (*fop_xf_1_i387): Ditto.
3212         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
3213         Use std::swap to swap operands.  Use RTL expressions to generate
3214         converted pattern.
3215
3216 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3217             Joern Rennecke  <joern.rennecke@embecosm.com>
3218
3219         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
3220         declaration.
3221         (emit_pic_move): Remove.
3222         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
3223         * config/arc/arc.c (emit_pic_move): Removed.
3224         (TARGET_HAVE_TLS): Define.
3225         (arc_conditional_register_usage): Test for arc_tp_regno.
3226         (arc_print_operand, arc_print_operand_address): Handle TLS
3227         unspecs.
3228         (arc_needs_pcl_p): New function.
3229         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
3230         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
3231         (arc_raw_symbolic_reference_mentioned_p): Likewise.
3232         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
3233         (arc_legitimize_tls_address): Likewise.
3234         (DTPOFF_ZERO_SYM): Define.
3235         (arc_legitimize_pic_address): Make it static, handle TLS cases.
3236         (arc_output_pic_addr_const): Print TLS unspecs.
3237         (prepare_pic_move): New function, replaces emit_pic_move.
3238         (arc_legitimate_constant_p): Handle TLS unspecs.
3239         (arc_legitimate_address_p): Likewise.
3240         (arc_rewrite_small_data_p): Use assert for TLS constants.
3241         (prepare_move_operands): Use prepare_pic_move.
3242         (arc_legitimize_address): Legitimize tls addresses.
3243         (arc_epilogue_uses): Check for arc_tp_regno.
3244         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
3245         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
3246         Define.
3247         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
3248         Likewise.
3249         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
3250         %(arc_tls_extra_start_spec).
3251         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
3252         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
3253         (EH_USES): Define.
3254         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
3255         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
3256         (UNSPEC_TLS_OFF): Add.
3257         (R10_REG): Define.
3258         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
3259         (get_thread_pointersi): New patterns.
3260         * config/arc/arc.opt (mtp-regno): New option.
3261         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
3262         (move_dest_operand): Likewise.
3263         * configure: Regenerate.
3264         * configure.ac: Add arc*-*-* case to test for tls.
3265         * doc/invoke.texi (ARC options): Document mtp-regno.
3266
3267 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3268
3269         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
3270         the new ARC HS SIMD instructions.
3271         (arc_preferred_simd_mode): New function.
3272         (arc_autovectorize_vector_sizes): Likewise.
3273         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
3274         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3275         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
3276         (arc_init_builtins): Add new SIMD builtin types.
3277         (arc_split_move): Handle 64 bit vector moves.
3278         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
3279         (TARGET_PLUS_QMACW): Define.
3280         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
3281         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
3282         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
3283         (VSUBADD4H): New builtins.
3284         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
3285         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
3286
3287 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
3288             Matthias Klose  <doko@debian.org>
3289
3290         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
3291
3292 2016-04-28  Richard Biener  <rguenther@suse.de>
3293
3294         PR middle-end/70777
3295         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
3296         canonicalization.
3297
3298 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
3299
3300         * common/config/sh/sh-common.c: Remove SH5 support.
3301         * config/sh/constraints.md: Likewise.
3302         * config/sh/config/sh/elf.h: Likewise.
3303         * config/sh/linux.h: Likewise.
3304         * config/sh/netbsd-elf.h: Likewise.
3305         * config/sh/predicates.md: Likewise.
3306         * config/sh/sh-c.c: Likewise.
3307         * config/sh/sh-protos.h: Likewise.
3308         * config/sh/sh.c: Likewise.
3309         * config/sh/sh.h: Likewise.
3310         * config/sh/sh.md: Likewise.
3311         * config/sh/sh.opt: Likewise.
3312         * config/sh/sync.md: Likewise.
3313         * config/sh/sh64.h: Delete.
3314         * config/sh/shmedia.h: Likewise.
3315         * config/sh/shmedia.md: Likewise.
3316         * config/sh/sshmedia.h: Likewise.
3317         * config/sh/t-netbsd-sh5-64: Likewise.
3318         * config/sh/t-sh64: Likewise.
3319         * config/sh/ushmedia.h: Likewise.
3320
3321 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3322
3323         * config/i386/i386.md (sign_extend to memory peephole2s): Use
3324         general_reg_operand instead of register_operand predicate.
3325
3326 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3327
3328         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
3329
3330 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
3331
3332         * match.pd (A - B > A, A + B < A): New transformations.
3333
3334 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
3335
3336         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
3337         which defaults to true.  Emit an outer pair of parentheses only if
3338         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
3339         don't emit parentheses for the right-hand operand.
3340
3341 2016-04-27  Jeff Law  <law@redhat.com>
3342
3343         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
3344
3345 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3346
3347         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
3348         (altivec_lvx_<mode>_internal): Document.
3349         (altivec_lvx_<mode>_2op): New define_insn.
3350         (altivec_lvx_<mode>_1op): Likewise.
3351         (altivec_lvx_<mode>_2op_si): Likewise.
3352         (altivec_lvx_<mode>_1op_si): Likewise.
3353         (altivec_stvx_<mode>): Remove.
3354         (altivec_stvx_<mode>_internal): Document.
3355         (altivec_stvx_<mode>_2op): New define_insn.
3356         (altivec_stvx_<mode>_1op): Likewise.
3357         (altivec_stvx_<mode>_2op_si): Likewise.
3358         (altivec_stvx_<mode>_1op_si): Likewise.
3359         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3360         Expand vec_ld and vec_st during parsing.
3361         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
3362         changes.
3363         (altivec_expand_stvx_be): Likewise.
3364         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
3365         address-masking behavior in RTL.
3366         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
3367         address-masking behavior in RTL.
3368         (altivec_expand_builtin): Change builtin code arguments for calls
3369         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3370         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3371         presence of lvx/stvx patterns.
3372         (alignment_with_canonical_addr): New function.
3373         (alignment_mask): Likewise.
3374         (find_alignment_op): Likewise.
3375         (recombine_lvx_pattern): Likewise.
3376         (recombine_stvx_pattern): Likewise.
3377         (recombine_lvx_stvx_patterns): Likewise.
3378         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3379         stvx patterns from expand.
3380         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3381         expansions.
3382         (vector_altivec_store_<mode>): Likewise.
3383
3384 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3385
3386         * config/aarch64/aarch64.md
3387         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3388         remove the "fp" attributes.
3389         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3390         add the "simd" attributes.
3391         (*movdf_aarch64): Likewise.
3392         (*movtf_aarch64): Remove the "fp" attributes.
3393         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3394         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3395
3396 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3397
3398         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3399         rtx to rtx_code_label *.
3400         * rtl.h (maybe_set_first_label_num): Likewise.
3401
3402 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3403
3404         * df-core.c (df_add_problem): Make the problem param be const.
3405         (df_remove_problem): Make local "problem" be const.
3406         * df-problems.c (problem_RD): Make const.
3407         (problem_LR): Likewise.
3408         (problem_LIVE): Likewise.
3409         (problem_MIR): Likewise.
3410         (problem_CHAIN): Likewise.
3411         (problem_WORD_LR): Likewise.
3412         (problem_NOTE): Likewise.
3413         (problem_MD): Likewise.
3414         * df-scan.c (problem_SCAN): Likewise.
3415         * df.h (struct df_problem): Make field "dependent_problem" be
3416         const.
3417         (struct dataflow): Likewise for field "problem".
3418         (df_add_problem): Make param const.
3419
3420 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3421
3422         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3423         inter-unit moves to/from vector registers are enabled.  Do not disable
3424         for TARGET_MMX.
3425
3426 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3427
3428         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3429         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3430         #define to...
3431         (enum df_problem_id): ...this new enum.
3432         (struct df_problem): Convert field "id" from "int" to
3433         enum df_problem_id.
3434
3435 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3436
3437         * rtl.def: Update comment for "things in the instruction chain" to
3438         reflect the removal of the leading "i" field for INSN_UID in
3439         r210360.  Fix bogus apostrophe.
3440
3441 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3442
3443         * config/i386/i386.md
3444         (lea arith with mem operand + setcc peephole2): Set operator mode.
3445
3446 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3447
3448         PR target/70155
3449         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3450         (dimode_scalar_to_vector_candidate_p): This.
3451         (timode_scalar_to_vector_candidate_p): New function.
3452         (scalar_to_vector_candidate_p): Likewise.
3453         (timode_check_non_convertible_regs): Likewise.
3454         (timode_remove_non_convertible_regs): Likewise.
3455         (remove_non_convertible_regs): Likewise.
3456         (remove_non_convertible_regs): Renamed to ...
3457         (dimode_remove_non_convertible_regs): This.
3458         (scalar_chain::~scalar_chain): Make it virtual.
3459         (scalar_chain::compute_convert_gain): Make it pure virtual.
3460         (scalar_chain::mark_dual_mode_def): Likewise.
3461         (scalar_chain::convert_insn): Likewise.
3462         (scalar_chain::convert_registers): Likewise.
3463         (scalar_chain::add_to_queue): Make it protected.
3464         (scalar_chain::emit_conversion_insns): Likewise.
3465         (scalar_chain::replace_with_subreg): Likewise.
3466         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3467         (scalar_chain::convert_op): Likewise.
3468         (scalar_chain::convert_reg): Likewise.
3469         (scalar_chain::make_vector_copies): Likewise.
3470         (scalar_chain::convert_registers): New pure virtual function.
3471         (class dimode_scalar_chain): New class.
3472         (class timode_scalar_chain): Likewise.
3473         (scalar_chain::mark_dual_mode_def): Renamed to ...
3474         (dimode_scalar_chain::mark_dual_mode_def): This.
3475         (timode_scalar_chain::mark_dual_mode_def): New function.
3476         (timode_scalar_chain::convert_insn): Likewise.
3477         (dimode_scalar_chain::convert_registers): Likewise.
3478         (scalar_chain::compute_convert_gain): Renamed to ...
3479         (dimode_scalar_chain::compute_convert_gain): This.
3480         (scalar_chain::replace_with_subreg): Renamed to ...
3481         (dimode_scalar_chain::replace_with_subreg): This.
3482         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3483         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3484         (scalar_chain::make_vector_copies): Renamed to ...
3485         (dimode_scalar_chain::make_vector_copies): This.
3486         (scalar_chain::convert_reg): Renamed to ...
3487         (dimode_scalar_chain::convert_reg ): This.
3488         (scalar_chain::convert_op): Renamed to ...
3489         (dimode_scalar_chain::convert_op): This.
3490         (scalar_chain::convert_insn): Renamed to ...
3491         (dimode_scalar_chain::convert_insn): This.
3492         (scalar_chain::convert): Call convert_registers.
3493         (convert_scalars_to_vector): Change to scalar_chain pointer to
3494         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3495         in 32-bit mode.  Delete scalar_chain pointer.  Call
3496         free_dominance_info in 64-bit mode.
3497         (pass_stv::gate): Remove TARGET_64BIT check.
3498         (ix86_option_override): Put the 64-bit STV pass before the CSE
3499         pass.
3500
3501 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3502
3503         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3504         dw_loc_frame_offset field.
3505         * dwarf2out.c (new_loc_descr): Likewise.
3506         (resolve_args_picking_1): Turn the VISITED hash set into a
3507         FRAME_OFFSET hash map. Use it to associate a frame offset to
3508         visited nodes. Remove uses of the CHECKING_P macro.
3509         (resolve_args_picking): Update call to resolve_args_picking_1.
3510
3511 2016-04-27  Martin Liska  <mliska@suse.cz>
3512
3513         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3514         (free_loop_data): Release vuses of groups.
3515
3516 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3517
3518         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3519         instead of redundant use_id and boolean have_use_for.
3520         (struct iv_use): Change sub_id into group_id.  Remove field next.
3521         Move fields: related_cands, n_map_members, cost_map and selected
3522         to ...
3523         (struct iv_group): ... here.  New structure.
3524         (struct iv_common_cand): Use structure declaration directly.
3525         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3526         (MAX_CONSIDERED_USES): Rename macro to ...
3527         (MAX_CONSIDERED_GROUPS): ... here.
3528         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3529         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3530         (dump_uses): Rename to ...
3531         (dump_groups): ... here.  Update all uses.
3532         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3533         (find_induction_variables): Refactor format of dump information.
3534         (record_sub_use): Delete.
3535         (record_use): Update all uses.
3536         (record_group): New function.
3537         (record_group_use, find_interesting_uses_op): Call above functions.
3538         Update all uses.
3539         (find_interesting_uses_cond): Ditto.
3540         (group_compare_offset): New function.
3541         (split_all_small_groups): Rename to ...
3542         (split_small_address_groups_p): ... here.  Update all uses.
3543         (split_address_groups):  Update all uses.
3544         (find_interesting_uses): Refactor format of dump information.
3545         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3546         base and step.
3547         (add_candidate, record_common_cand): Remove redundant assert.
3548         (add_iv_candidate_for_biv): Update use.
3549         (add_iv_candidate_derived_from_uses): Update all uses.
3550         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3551         (alloc_use_cost_map): Ditto.
3552         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3553         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3554         (determine_use_iv_cost_generic): Ditto.
3555         (determine_group_iv_cost_generic): Ditto.
3556         (determine_use_iv_cost_address): Ditto.
3557         (determine_group_iv_cost_address): Ditto.
3558         (determine_use_iv_cost_condition): Ditto.
3559         (determine_group_iv_cost_cond): Ditto.
3560         (determine_use_iv_cost): Ditto.
3561         (determine_group_iv_cost): Ditto.
3562         (set_autoinc_for_original_candidates): Update all uses.
3563         (find_iv_candidates): Update all uses.  Refactor dump information.
3564         (determine_use_iv_costs): Ditto.
3565         (determine_iv_costs): Ditto.
3566         (iv_ca_cand_for_use): Rename to ...
3567         (iv_ca_cand_for_group): ... here.  Update all uses.
3568         (iv_ca_add_use, iv_ca_add_group): Ditto.
3569         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3570         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3571         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3572         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3573         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3574         (create_new_iv, adjust_iv_update_pos): Ditto.
3575         (rewrite_use_address): Delete.
3576         (rewrite_use_address_1): Rename to ...
3577         (rewrite_use_address): ... here.
3578         (rewrite_use_compare): Update all uses.
3579         (rewrite_use): Delete.
3580         (rewrite_uses): Rename to ...
3581         (rewrite_groups): ... here.  Update all uses.
3582         (remove_unused_ivs, free_loop_data): Update all uses.
3583         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3584
3585 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3586
3587         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3588         for WORD_REGISTER_OPERATIONS to runtime check.
3589
3590 2016-04-27  Richard Biener  <rguenther@suse.de>
3591
3592         PR ipa/70760
3593         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3594         aggregate_value_p to determine if a function result is
3595         returned by reference.
3596         (ipa_pta_execute): Functions having their address taken are
3597         not automatically nonlocal.
3598
3599 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3600
3601         PR sanitizer/70683
3602         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3603         * fold-const.c (operand_equal_p): If flag_checking and
3604         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3605         and if it returns non-zero, assert iterative_hash_expr on both
3606         args is the same.
3607
3608 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3609
3610         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3611
3612 2016-04-27  Nick Clifton  <nickc@redhat.com>
3613
3614         PR middle-end/49889
3615         * varasm.c (merge_weak): Generate an error if an attempt is made
3616         to convert a non-weak static function into a weak, public function.
3617
3618 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3619
3620         * params.def (MAX_PARTITION_SIZE): New param.
3621         * doc/invoke.texi: Document lto-max-partition.
3622
3623 2016-04-27  Richard Biener  <rguenther@suse.de>
3624
3625         PR ipa/70785
3626         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3627         function cummulating used_from_other_partition, externally_visible
3628         and force_output from aliases.
3629         (refered_from_nonlocal_var): Likewise.
3630         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3631         node flags properly.
3632
3633 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3634
3635         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3636         (-Wmemset-elt-size): New item.
3637
3638 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3639
3640         PR ada/70759
3641         * stor-layout.h (internal_reference_types): Delete.
3642         * stor-layout.c (reference_types_internal): Likewise.
3643         (internal_reference_types): Likewise.
3644         (layout_type) <REFERENCE_TYPE>: Adjust.
3645
3646 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3647
3648         PR sanitizer/70683
3649         * tree.h (inchash::add_expr): Add FLAGS argument.
3650         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3651         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3652         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3653         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3654         if swap_tree_comparison (code) is smaller than code, hash that
3655         and arguments in the other order.  Hash CONVERT_EXPR the same
3656         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3657         of ADDR_EXPR of decl as the decl itself.  Add or remove
3658         OEP_ADDRESS_OF from recursive flags as needed.  For
3659         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3660         operands commutatively and only the third one normally.
3661         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3662
3663 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3664
3665         * config/rtems.h (LIB_SPEC): Add -latomic.
3666
3667 2016-04-27  Joel Sherrill  <joel@rtems.org>
3668
3669         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3670         xilink.ld and flags not relevant to RTEMS.
3671
3672 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3673
3674         * toplev.c (backend_init_target): Avoid calling init_reload when using
3675         LRA.
3676
3677 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3678
3679         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3680         for loops rather than one for the whole function.
3681
3682 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3683
3684         * match.pd (X + CST CMP X): New transformation.
3685
3686 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3687
3688         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3689         * fold-const.c (fold_binary_loc): Remove 2 transformations
3690         superseded by match.pd.
3691         * match.pd (x+x -> x*2): Generalize to integers.
3692
3693 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3694
3695         * config/i386/i386.md (operation on memory peephole): Duplicate an
3696         existing peephole and adapt it to match lea rather than an operation
3697         that clobbers CC.
3698
3699         PR rtl-optimization/57193
3700         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3701         and above.
3702         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3703
3704 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3705
3706         * tree-if-conv.c (any_pred_load_store): New static variable.
3707         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3708         any_pred_load_store instead of and_mask_load_store.
3709         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3710         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3711         (combine_blocks, tree_if_conversion): Ditto.
3712
3713 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3714
3715         PR tree-optimization/70771
3716         PR tree-optimization/70775
3717         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3718         virtual PHI nodes.  Delete parameter.
3719         (if_convertible_loop_p_1): Delete argument to above function.
3720         (predicate_all_scalar_phis): Delete code handling single-argument
3721         PHIs.
3722         (tree_if_conversion): Mark and update virtual SSA.
3723
3724 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3725
3726         PR target/61821
3727         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3728         (x86_elf_aligned_common): Rename to ...
3729         (x86_elf_aligned_decl_common): ... this.
3730         Add decl arg.  Switch to .lbss for largecomm object.  Use
3731         LARGECOMM_SECTION_ASM_OP.
3732         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3733         renaming.
3734         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3735         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3736         Pass new decl arg.
3737         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3738         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3739
3740 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3741
3742         PR target/59407
3743         * config/i386/i386.c (SECTION_LARGE): Define.
3744         (x86_64_elf_select_section): Set it for large data/bss sections.
3745         Only clear SECTION_WRITE for .lrodata.
3746         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3747         data/bss sections.
3748         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3749         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3750         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3751         SECTION_MACH_DEP.
3752         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3753         * doc/tm.texi: Regenerate.
3754
3755 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3756
3757         PR bootstrap/70704
3758         * configure.ac (--enable-checking): Document extra flag, for
3759         non-release builds default to --enable-checking=yes,extra.
3760         If misc checking and extra checking, define CHECKING_P to 2 instead
3761         of 1.
3762         * common.opt (fchecking=): Add.
3763         * doc/invoke.texi (-fchecking=): Document.
3764         * doc/install.texi: Document --enable-checking changes.
3765         * configure: Regenerated.
3766         * config.in: Regenerated.
3767
3768 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3769
3770         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3771         attribute instead of which_alternative.
3772         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3773         Use EXT_REX_SSE_REG_P where appropriate.
3774
3775 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3776
3777         * config/i386/predicates.md (const0_operand): Do not match
3778         const_wide_int code.
3779         (const1_operand): Ditto.
3780
3781 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3782
3783         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3784         for SSE constm1 operands and TARGET_AVX512VL.
3785         (*movti_internal): Ditto.
3786         (*mov<mode>_or): Use constm1_operand predicate.
3787         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3788         for SSE vector_all_ones operands and TARGET_AVX512VL.
3789         * config/i386/predicates.md (constm1_operand): New predicate.
3790         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3791         emission of constant -1 load.
3792
3793 2016-04-25  Jason Merrill  <jason@redhat.com>
3794
3795         * gdbinit.in: Skip is-a.h.
3796
3797         * attribs.c (register_scoped_attributes): Fix logic.
3798         * attribs.h: Declare register_scoped_attributes.
3799
3800 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3801
3802         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3803         stxvd2x and stxvw4x built-in functions.
3804
3805 2016-04-25  DJ Delorie  <dj@redhat.com>
3806
3807         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3808         (ashrhi3): Likewise.
3809         (lshrhi3): Likewise.
3810
3811 2016-04-25  Richard Biener  <rguenther@suse.de>
3812
3813         PR tree-optimization/70780
3814         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3815         wasn't visited yet.
3816         (compute_antic): Mark blocks with abnormal preds as visited as
3817         they have a final empty antic-in solution already.
3818
3819 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3820
3821         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3822
3823 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3824
3825         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3826         mode is VQI to improve mixed mode vectorization.
3827         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3828         define_insn to match low half of signed vaddw.
3829         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3830         define_insn to match high half of signed vaddw.
3831         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3832         define_insn to match low half of unsigned vaddw.
3833         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3834         define_insn to match high half of unsigned vaddw.
3835         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3836         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3837         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3838         for new function.
3839         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3840         * config/arm/predicates.md (vect_par_constant_high): Support
3841         big endian and simplify by calling
3842         arm_simd_check_vect_par_cnst_half
3843         (vect_par_constant_low): Likewise.
3844
3845 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3846
3847         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3848         predicate for operand 2.
3849
3850 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3851             H.J. Lu  <hongjiu.lu@intel.com>
3852
3853         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3854         machine_mode argument.
3855         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3856         constm1_rtx operands.  For VOIDmode constants, get mode from
3857         pred_mode.  Check mode size if the mode is supported by ABI.
3858         (standard_sse_constant_opcode): Do not use standard_constant_p.
3859         Strictly check ABI support for all-ones operands.
3860         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3861         immediates. Update calls to standard_sse_constant_p.
3862         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3863         (ix86_rtx_costs): Ditto.
3864         * config/i386/i386.md (*movxi_internal_avx512f): Use
3865         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3866         Use (v,BC) alternative instead of (v,C). Use register_operand
3867         checks instead of MEM_P.
3868         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3869         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3870         isa attribute.  Use register_operand checks instead of MEM_P.
3871         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3872         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3873         alternative and corresponding sse2 isa attribute.
3874         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3875         to standard_sse_constant_p.
3876         (FP constant splitters): Ditto.
3877         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3878         (C): Ditto.
3879         * config/i386/predicates.md (constm1_operand): Remove.
3880         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3881         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3882         vector_all_ones_operand instead of constm1_operand.
3883
3884 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3885
3886         * print-rtl.c (print_rtx_insn_vec): New function.
3887         * print-rtl.h: New prototype.
3888         * store-motion.c (struct st_expr): Make avail_stores a vector.
3889         (st_expr_entry): Adjust.
3890         (free_st_expr_entry): Likewise.
3891         (print_store_motion_mems): Likewise.
3892         (find_moveable_store): Likewise.
3893         (compute_store_table): Likewise.
3894         (delete_store): Likewise.
3895         (build_store_vectors): Likewise.
3896
3897 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3898
3899         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3900
3901 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3902
3903         * vec.h (vec_safe_contains): New function.
3904         (vec::contains): Likewise.
3905         (vec::begin): Likewise.
3906         (vec::end): Likewise.
3907
3908 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3909
3910         PR sanitizer/70712
3911         * cfgexpand.c (expand_stack_vars): Fix typo.
3912
3913 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3914
3915         * system.h (list, map, set, vector): Include conditionally.
3916         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3917         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3918         * ipa-icf.c (INCLUDE_LIST): Define.
3919         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
3920         * config/sh/sh.c (INCLUDE_VECTOR): Define.
3921         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
3922         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
3923         * cp/logic.cc (INCLUDE_LIST): Define.
3924         * fortran/trans-common.c (INCLUDE_MAP): Define.
3925
3926 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3927
3928         * auto-profile.c: Remove <string.h> include.
3929         * ipa-icf-gimple.c: Remove <list> include.
3930         * diagnostic.c: Remove <new> include.
3931         * genmatch.c: Likewise.
3932         * pretty-print.c: Likewise.
3933         * toplev.c: Likewise
3934         * c/c-objc-common.c: Likewise.
3935         * cp/error.c: Likewise.
3936         * fortran/error.c: Likewise.
3937
3938 2016-04-22  Richard Biener  <rguenther@suse.de>
3939
3940         * lto-streamer-in.c (input_ssa_names): Do not allocate
3941         GIMPLE_NOP for all SSA names.
3942         * lto-streamer-out.c (output_ssa_names): Do not output
3943         SSA names that should have been released.
3944
3945 2016-04-22  Richard Biener  <rguenther@suse.de>
3946
3947         PR tree-optimization/70740
3948         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
3949         VDEF.
3950
3951 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
3952
3953         PR target/70750
3954         * config/i386/predicates.md (call_insn_operand): Replace
3955         sibcall_memory_operand with memory_operand.
3956
3957 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
3958
3959         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
3960         has_single_use() tests.
3961         (register_edge_assert_for_1): Likewise.
3962         (find_assert_locations_1): Check the liveness bitmap instead of
3963         checking has_single_use().
3964
3965 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
3966
3967         PR target/70728
3968         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
3969         Extract AVX-512BW constraint from AVX.
3970
3971 2016-04-21  Richard Biener  <rguenther@suse.de>
3972
3973         PR tree-optimization/70725
3974         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
3975         for phi_convertible_by_degenerating_args.
3976         (predicate_all_scalar_phis): Handle single-argument PHIs.
3977
3978 2016-04-21  Richard Biener  <rguenther@suse.de>
3979
3980         PR middle-end/70747
3981         * fold-const.c (fold_comparison): Return properly typed
3982         constant boolean.
3983
3984 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
3985
3986         PR tree-optimization/70715
3987         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
3988         after expanding BASE using expand_simple_operations.
3989
3990 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3991
3992         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
3993         New transformations.
3994
3995 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
3996
3997         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
3998
3999 2016-04-20  Jan Hubicka  <jh@suse.cz>
4000
4001         * ipa-inline.c (can_inline_edge_p): Pass caller info to
4002         ultiimate_alias_target.
4003         (update_callee_keys): Likewise.
4004         (lookup_recursive_calls): Likewise.
4005         (speculation_useful_p): Likewise.
4006
4007 2016-04-20  Jan Hubicka  <jh@suse.cz>
4008
4009         PR ipa/70018
4010         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
4011         (set_nothrow_flag_1): ... this; handle interposition correctly;
4012         recurse on aliases and thunks.
4013         (cgraph_node::set_nothrow_flag): New.
4014         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
4015         functions compiled with non-call exceptions that binds to current
4016         def.
4017         (propagate_nothrow): Be safe WRT interposition.
4018         * cgraph.h (set_nothrow_flag): Update prototype.
4019
4020 2016-04-18  Jan Hubicka  <jh@suse.cz>
4021
4022         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4023         max_loop_iterations_int.
4024         (tree_unswitch_outer_loop): Likewise.
4025
4026 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4027
4028         PR tree-optimization/69489
4029         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
4030         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
4031         Revise dump message.
4032         (if_convertible_bb_p): Remove check on edge count of basic block's
4033         predecessors.
4034
4035 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4036
4037         PR tree-optimization/56625
4038         PR tree-optimization/69489
4039         * tree-data-ref.h (DR_INNERMOST): New macro.
4040         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
4041         hashing struct innermost_loop_behavior.
4042         (ref_DR_map): Remove.
4043         (innermost_DR_map): New map.
4044         (baseref_DR_map): Revise comment.
4045         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
4046         to innermost_DR_map accroding to its innermost loop behavior.
4047         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
4048         to its innermost loop behavior.
4049         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
4050         Add initialization for innermost_DR_map.  Record memory reference
4051         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
4052         have innermost loop behavior.
4053         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
4054         innermost_DR_map.
4055
4056 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
4057
4058         * config/i386/i386.md (*lea<mode>_general_1): Rename from
4059         *lea_general_1.  Use explicit SWI12 mode interator.
4060         (*lea<mode>_general_2): Rename from *lea_general_2.
4061         Use explicit SWI12 mode interator.
4062         (*lea<mode>_general_3): Rename from *lea_general_3.
4063         Use explicit SWI12 mode interator.
4064         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
4065         Use explicit SWI12 mode interator.
4066         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
4067         Use explicit SWI48 mode interator.
4068
4069 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4070
4071         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4072         Short-cut unaligned load and store cases.  Handle all integer
4073         vector modes.
4074         (ix86_expand_vector_move_misalign): Short-cut unaligned load
4075         and store cases.  Call ix86_avx256_split_vector_move_misalign
4076         directly without checking mode class.
4077
4078 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4079             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4080
4081         PR target/64971
4082         * config/aarch64/aarch64.md (sibcall): Force call
4083         address to be DImode for ILP32.
4084         (sibcall_value): Likewise.
4085
4086 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4087
4088         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4089
4090 2016-04-20  Richard Biener  <rguenther@suse.de>
4091
4092         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
4093         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
4094         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
4095         (maybe_push_res_to_seq): Adjust.
4096         * gimple-fold.c (maybe_build_generic_op): Likewise.
4097
4098 2016-04-20  Marek Polacek  <polacek@redhat.com>
4099
4100         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4101         rather than true.
4102
4103 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
4104
4105         * config/i386/sse.md (vec_unpacks_lo_hi): Always
4106         use kmovw to support AVX512F target.
4107
4108 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4109
4110         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
4111
4112 2016-04-20  Marek Polacek  <polacek@redhat.com>
4113
4114         PR tree-optimization/70725
4115         * tree-if-conv.c (is_false_predicate): New function.
4116         (predicate_mem_writes): Use it.
4117
4118 2016-04-20  Richard Biener  <rguenther@suse.de>
4119
4120         PR tree-optimization/70726
4121         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4122         shift amounts from a pattern stmt operand.
4123
4124 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4125
4126         PR target/70674
4127         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4128         stack_restore_from_fpr pattern when restoring r15.
4129         (s390_optimize_prologue): Strip away the memory barrier in the
4130         parallel when trying to get rid of restore insns.
4131         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4132         definition for loading the stack pointer from an FPR.  Compared to
4133         the normal move insn this pattern includes a full memory barrier.
4134
4135 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4136
4137         PR middle-end/70680
4138         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4139         implicitly linear or lastprivate iterator on the outer context.
4140
4141 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4142
4143         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
4144         alignment check.
4145         * config/i386/i386.md (ssememalign): Removed.
4146         * config/i386/sse.md: Remove ssememalign attribute from patterns.
4147
4148 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4149
4150         PR target/69201
4151         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
4152         const short * to __builtin_ia32_loaddquhi512_mask.
4153         (_mm512_maskz_loadu_epi16): Likewise.
4154         (_mm512_mask_storeu_epi16): Pass short * to
4155         __builtin_ia32_storedquhi512_mask.
4156         (_mm512_mask_loadu_epi8): Pass const char * to
4157         __builtin_ia32_loaddquqi512_mask.
4158         (_mm512_maskz_loadu_epi8): Likewise.
4159         (_mm512_mask_storeu_epi8): Pass char * to
4160         __builtin_ia32_storedquqi512_mask.
4161         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
4162         const double * to __builtin_ia32_loadupd512_mask.
4163         (_mm512_mask_loadu_pd): Likewise.
4164         (_mm512_maskz_loadu_pd): Likewise.
4165         (_mm512_storeu_pd): Pass double * to
4166         __builtin_ia32_storeupd512_mask.
4167         (_mm512_mask_storeu_pd): Likewise.
4168         (_mm512_loadu_ps): Pass const float * to
4169         __builtin_ia32_loadups512_mask.
4170         (_mm512_mask_loadu_ps): Likewise.
4171         (_mm512_maskz_loadu_ps): Likewise.
4172         (_mm512_storeu_ps): Pass float * to
4173         __builtin_ia32_storeups512_mask.
4174         (_mm512_mask_storeu_ps): Likewise.
4175         (_mm512_mask_loadu_epi64): Pass const long long * to
4176         __builtin_ia32_loaddqudi512_mask.
4177         (_mm512_maskz_loadu_epi64): Likewise.
4178         (_mm512_mask_storeu_epi64): Pass long long *
4179         to __builtin_ia32_storedqudi512_mask.
4180         (_mm512_loadu_si512): Pass const int * to
4181         __builtin_ia32_loaddqusi512_mask.
4182         (_mm512_mask_loadu_epi32): Likewise.
4183         (_mm512_maskz_loadu_epi32): Likewise.
4184         (_mm512_storeu_si512): Pass int * to
4185         __builtin_ia32_storedqusi512_mask.
4186         (_mm512_mask_storeu_epi32): Likewise.
4187         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
4188         char * to __builtin_ia32_storedquqi256_mask.
4189         (_mm_mask_storeu_epi8): Likewise.
4190         (_mm256_mask_loadu_epi16): Pass const short * to
4191         __builtin_ia32_loaddquhi256_mask.
4192         (_mm256_maskz_loadu_epi16): Likewise.
4193         (_mm_mask_loadu_epi16): Pass const short * to
4194         __builtin_ia32_loaddquhi128_mask.
4195         (_mm_maskz_loadu_epi16): Likewise.
4196         (_mm256_mask_loadu_epi8): Pass const char * to
4197         __builtin_ia32_loaddquqi256_mask.
4198         (_mm256_maskz_loadu_epi8): Likewise.
4199         (_mm_mask_loadu_epi8): Pass const char * to
4200         __builtin_ia32_loaddquqi128_mask.
4201         (_mm_maskz_loadu_epi8): Likewise.
4202         (_mm256_mask_storeu_epi16): Pass short * to.
4203         __builtin_ia32_storedquhi256_mask.
4204         (_mm_mask_storeu_epi16): Pass short * to.
4205         __builtin_ia32_storedquhi128_mask.
4206         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
4207         const double * to __builtin_ia32_loadupd256_mask.
4208         (_mm256_maskz_loadu_pd): Likewise.
4209         (_mm_mask_loadu_pd): Pass onst double * to
4210         __builtin_ia32_loadupd128_mask.
4211         (_mm_maskz_loadu_pd): Likewise.
4212         (_mm256_mask_storeu_pd): Pass double * to
4213         __builtin_ia32_storeupd256_mask.
4214         (_mm_mask_storeu_pd): Pass double * to
4215         __builtin_ia32_storeupd128_mask.
4216         (_mm256_mask_loadu_ps): Pass const float * to
4217         __builtin_ia32_loadups256_mask.
4218         (_mm256_maskz_loadu_ps): Likewise.
4219         (_mm_mask_loadu_ps): Pass const float * to
4220         __builtin_ia32_loadups128_mask.
4221         (_mm_maskz_loadu_ps): Likewise.
4222         (_mm256_mask_storeu_ps): Pass float * to
4223         __builtin_ia32_storeups256_mask.
4224         (_mm_mask_storeu_ps): ass float * to
4225         __builtin_ia32_storeups128_mask.
4226         (_mm256_mask_loadu_epi64): Pass const long long * to
4227         __builtin_ia32_loaddqudi256_mask.
4228         (_mm256_maskz_loadu_epi64): Likewise.
4229         (_mm_mask_loadu_epi64): Pass const long long * to
4230         __builtin_ia32_loaddqudi128_mask.
4231         (_mm_maskz_loadu_epi64): Likewise.
4232         (_mm256_mask_storeu_epi64): Pass long long * to
4233         __builtin_ia32_storedqudi256_mask.
4234         (_mm_mask_storeu_epi64): Pass long long * to
4235         __builtin_ia32_storedqudi128_mask.
4236         (_mm256_mask_loadu_epi32): Pass const int * to
4237         __builtin_ia32_loaddqusi256_mask.
4238         (_mm256_maskz_loadu_epi32): Likewise.
4239         (_mm_mask_loadu_epi32): Pass const int * to
4240         __builtin_ia32_loaddqusi128_mask.
4241         (_mm_maskz_loadu_epi32): Likewise.
4242         (_mm256_mask_storeu_epi32): Pass int * to
4243         __builtin_ia32_storedqusi256_mask.
4244         (_mm_mask_storeu_epi32): Pass int * to
4245         __builtin_ia32_storedqusi128_mask.
4246         * config/i386/i386-builtin-types.def (PCSHORT): New.
4247         (PINT64): Likewise.
4248         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
4249         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
4250         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
4251         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
4252         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
4253         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
4254         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
4255         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
4256         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
4257         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
4258         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
4259         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
4260         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
4261         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
4262         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
4263         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
4264         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
4265         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
4266         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
4267         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
4268         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
4269         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
4270         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
4271         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
4272         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
4273         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
4274         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
4275         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
4276         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
4277         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
4278         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
4279         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
4280         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
4281         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
4282         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
4283         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
4284         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
4285         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
4286         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
4287         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
4288         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
4289         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
4290         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
4291         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
4292         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
4293         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
4294         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
4295         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
4296         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
4297         use UNSPEC_STOREU.
4298         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
4299         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
4300         load nor store.
4301         (ix86_expand_vector_move_misalign): Likewise.
4302         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
4303         to scalar function prototype for unaligned load/store builtins.
4304         (ix86_expand_special_args_builtin): Updated.
4305         * config/i386/sse.md (UNSPEC_LOADU): Removed.
4306         (UNSPEC_STOREU): Likewise.
4307         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
4308         (VI_ULOADSTORE_F_AVX512VL): Likewise.
4309         (ssescalarsize): Handle V4TI, V2TI and V1TI.
4310         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4311         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4312         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
4313         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
4314         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
4315         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
4316         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
4317         (<avx512>_storedqu<mode>_mask): Likewise.
4318         (*sse4_2_pcmpestr_unaligned): Likewise.
4319         (*sse4_2_pcmpistr_unaligned): Likewise.
4320         (*mov<mode>_internal): Renamed to ...
4321         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
4322         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
4323         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
4324         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
4325
4326 2016-04-19  Richard Biener  <rguenther@suse.de>
4327
4328         PR tree-optimization/70171
4329         * tree-ssa-phiprop.c: Include stor-layout.h.
4330         (phiprop_insert_phi): Handle the aggregate copy case.
4331         (propagate_with_phi): Likewise.
4332
4333 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
4334
4335         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
4336         instead of simplify_gen_subreg (... , 0).
4337         (ix86_delegitimize_address): Ditto.
4338         (ix86_split_divmod): Ditto.
4339         (ix86_split_copysign_const): Ditto.
4340         (ix86_split_copysign_var): Ditto.
4341         (ix86_expand_args_builtin): Ditto.
4342         (ix86_expand_round_builtin): Ditto.
4343         (ix86_expand_special_args_builtin): Ditto.
4344         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
4345         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
4346         (udivmodqi4): Ditto.
4347         (absneg splitters): Ditto.
4348         (*jcc_bt<mode>_1): Ditto.
4349
4350 2016-04-19  Richard Biener  <rguenther@suse.de>
4351
4352         PR tree-optimization/70724
4353         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4354         restoring out from ...
4355         (free_scc_vn): ... here.
4356         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4357         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4358         tail merging.
4359         (pass_fre::execute): Restore SSA info.
4360
4361 2016-04-19  Richard Biener  <rguenther@suse.de>
4362
4363         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
4364         * gimple-walk.c (walk_gimple_op): Initialize it.
4365         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
4366         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
4367         remapping SSA names of defs.
4368         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4369         adjustment.
4370
4371 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4372
4373         PR middle-end/70689
4374         * lra-constraints.c (equiv_substition_p): New.
4375         (process_alt_operands): Use it.
4376         (swap_operands): Swap it.
4377         (curr_insn_transform): Update it.
4378
4379 2016-04-18  Michael Matz  <matz@suse.de>
4380
4381         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4382         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4383         * tree-core.h (tree_type_common.align): Use bit-field.
4384         (tree_type_common.spare): New.
4385         (tree_decl_common.off_align): Make smaller.
4386         (tree_decl_common.align): Use bit-field.
4387
4388         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4389         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4390         (scan_sharing_clauses): Ditto.
4391         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4392         (omp_finish_file): Ditto.
4393         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4394         (layout_decl): Ditto.
4395         (relayout_decl): Ditto.
4396         (finalize_record_size): Use SET_TYPE_ALIGN.
4397         (finalize_type_size): Ditto.
4398         (finish_builtin_struct): Ditto.
4399         (layout_type): Ditto.
4400         (initialize_sizetypes): Ditto.
4401         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4402         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4403         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4404         (get_chain_field): Ditto.
4405         (get_trampoline_type): Ditto.
4406         (get_nl_goto_field): Ditto.
4407         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4408         SET_DECL_ALIGN.
4409         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4410         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4411         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4412         (build_qualified_type): Use SET_TYPE_ALIGN.
4413         (build_aligned_type, build_range_type_1): Ditto.
4414         (build_atomic_base): Ditto.
4415         (build_common_tree_nodes): Ditto.
4416         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4417         (expand_one_stack_var_at): Ditto.
4418         * coverage.c (build_var): Use SET_DECL_ALIGN.
4419         * except.c (init_eh): Ditto.
4420         * function.c (assign_parm_setup_block): Ditto.
4421         * symtab.c (increase_alignment_1): Ditto.
4422         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4423         * tree-vect-stmts.c (ensure_base_align): Ditto.
4424         * varasm.c (align_variable): Ditto.
4425         (assemble_variable): Ditto.
4426         (build_constant_desc): Ditto.
4427         (output_constant_def_contents): Ditto.
4428
4429         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4430         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4431         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4432         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4433         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4434
4435 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4436
4437         PR target/70708
4438         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4439         replace %vmovsd with "%vmovq".
4440         (vec_concatv2df): Likewise.
4441
4442 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4443
4444         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4445         (*vec_extractv2si_0): Ditto.
4446         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4447         (zero_extended_scalar_load_operand splitters): Ditto.
4448         (vec_extract splitters): Ditto.
4449         (*vec_extractv4si_0_zext): Ditto.
4450         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4451         and lowpart_subreg.
4452         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4453         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4454         (*sse4_1_extractps): Use lowpart_subreg.
4455         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4456
4457 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4458
4459         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4460         gld requirements.
4461         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4462         Mention Solaris 11 packaging changes.
4463         Update gas and gld requirements.
4464         Remove reference to pre-Solaris 10 bug.
4465         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4466         systems and bugs.
4467         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4468         with cc.
4469
4470 2016-04-17  Jan Hubicka  <jh@suse.cz>
4471
4472         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4473         max_loop_iterations_int.
4474
4475 2016-04-18  Richard Biener  <rguenther@suse.de>
4476
4477         PR tree-optimization/43434
4478         * tree-ssa-structalias.c (struct vls_data): New.
4479         (visit_loadstore): Handle all pointer-based accesses.
4480         (compute_dependence_clique): Compute a bitmap of restrict tags
4481         assigned bases and pass it to visit_loadstore.
4482
4483 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4484
4485         PR target/70711
4486         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4487         armv8.1-a and armv8.1-a+crc.
4488
4489 2016-04-18  Richard Biener  <rguenther@suse.de>
4490
4491         PR tree-optimization/70701
4492         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4493         references after translating through a memcpy.
4494
4495 2016-04-18  Richard Biener  <rguenther@suse.de>
4496
4497         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4498         (compute_antic): ... here.  For partial antic use regular
4499         postorder and scrap iteration.
4500         (compute_partial_antic_aux): Remove unused return value.
4501         (init_pre): Do not allocate postorder.
4502         (fini_pre): Do not free postorder.
4503
4504 2016-04-18  Richard Biener  <rguenther@suse.de>
4505
4506         PR middle-end/37870
4507         * expmed.c (extract_bit_field_1): Remove broken case
4508         using a wider MODE_INT mode.
4509
4510 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4511
4512         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4513         unless compiling with at least GCC-4.8.
4514
4515 2016-04-17  Jan Hubicka  <jh@suse.cz>
4516
4517         PR bootstrap/70706
4518         * graphite.c (graphite_finalize): Update call to
4519         tree_estimate_probability.
4520         * predict.h (tree_estimate_probability): Update prototype.
4521
4522 2016-04-17  Jan Hubicka  <jh@suse.cz>
4523
4524         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4525         (tree_estimate_probability): Likewise.
4526         (pass_profile::execute): Update.
4527         (report_predictor_hitrates): New function.
4528         * profile.c (compute_branch_probabilities): Use it.
4529         * predict.h (report_predictor_hitrates): Declare.
4530
4531 2016-04-17  Jan Hubicka  <jh@suse.cz>
4532
4533         PR ipa/70018
4534         * cgraph.h (cgraph_node::set_const_flag,
4535         cgraph_node::set_pure_flag): Update prototype to return bool;
4536         update comment.
4537         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4538         of interposable symbol are interposable, too.
4539         (cgraph_set_const_flag_1): Rename to ...
4540         (set_const_flag_1): ... this one; change to self recursive function
4541         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4542         clearnig the flag in all variants and also virtual thunks of const
4543         functions are pure; track if any change was done.
4544         (cgraph_node::set_const_flag): Update.
4545         (struct set_pure_flag_info): New struct.
4546         (cgraph_set_pure_flag_1): Rename to ...
4547         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4548         rather than pointer encoded flags; track if any changes was done;
4549         handle correctly clearning flag and setting flag of aliases already
4550         declared const.
4551         (cgraph_node::set_pure_flag): Update.
4552         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4553
4554 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4555
4556         PR other/70433
4557         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4558         backslash in label.
4559
4560 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4561
4562         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4563         '{}<> ' as escape-for-record.
4564
4565 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4566
4567         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4568         structure.
4569
4570 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4571
4572         PR other/70185
4573         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4574         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4575         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4576         * passes.c (finish_optimization_passes): Only call
4577         finish_graph_dump_file if dfi->graph_dump_initialized.
4578         (execute_function_dump, pass_init_dump_file): Use
4579         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4580
4581 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4582
4583         PR tree-optimization/70256
4584         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4585         (debug_varmap): New function.
4586
4587 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4588
4589         PR other/70183
4590         * passes.c (pass_manager::register_pass): Propagate pflags.
4591
4592 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4593
4594         PR other/68875
4595         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4596         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4597         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4598         check if it's equal to p_start.
4599         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4600
4601 2016-04-15  Jan Hubicka  <jh@suse.cz>
4602
4603         PR ipa/70018
4604         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4605         function does not bind to current def.
4606         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4607         handle conservatively calls to functions that does not need to bind
4608         to current def.
4609         (check_call): Update call of worse_state.
4610         (ignore_edge_for_nothrow): Update.
4611         (ignore_edge_for_pure_const): Likewise.
4612         (propagate_pure_const): Update calls to worse_state.
4613         (skip_function_for_local_pure_const): Reformat comments.
4614
4615 2016-04-15  Jan Hubicka  <jh@suse.cz>
4616
4617         PR ipa/70018
4618         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4619         (cgraph_node::function_symbol): Likewise.
4620         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4621         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4622         (symtab_node::ultimate_alias_target): Add REF parameter.
4623         (symtab_node::binds_to_current_def_p): Declare.
4624         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4625         (cgraph_node::function_symbol): Likewise.
4626         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4627         (cgraph_node::get_availability): Likewise.
4628         (cgraph_edge::binds_to_current_def_p): New inline function.
4629         (varpool_node::get_availability): Add REF parameter.
4630         (varpool_node::ultimate_alias_target): Likewise.
4631         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4632         (symtab_node::binds_to_current_def_p): Likewise.
4633         * varpool.c (varpool_node::get_availability): Likewise.
4634
4635 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4636
4637         PR target/70662
4638         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4639         Fix mode size check.
4640
4641 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4642
4643         * BASE-VER: Set to 7.0.0.
4644
4645 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4646
4647         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4648
4649 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4650
4651         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4652         architecture revisions.
4653
4654 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4655
4656         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4657         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4658         * config/i386/i386.md (stack decrement to push peepholes): Guard
4659         with !x86_using_red_zone ().
4660
4661 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4662
4663         PR c++/70675
4664         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4665         to dump_generic_node.
4666         (NIY): Pass also flags to do_niy.
4667
4668 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4669
4670         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4671         (simd_clone_vector_of_formal_parm_types)
4672         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4673         (simd_clone_mangle, simd_clone_create)
4674         (simd_clone_adjust_return_type, create_tmp_simd_array)
4675         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4676         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4677         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4678         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4679         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4680         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4681         * omp-simd-clone.c: ... this new file.
4682         (simd_clone_vector_of_formal_parm_types): Make it static.
4683         * Makefile.in (OBJS): Add omp-simd-clone.o.
4684
4685 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4686
4687         PR target/70662
4688         * config/i386/sse.md: Use proper memory operand modifiers.
4689
4690
4691 2016-04-15  Richard Biener  <rguenther@suse.de>
4692         Alan Modra  <amodra@gmail.com>
4693
4694         PR tree-optimization/70130
4695         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4696         when alignment stays not the same and no not use the realign
4697         scheme then.
4698
4699 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4700
4701         PR target/70669
4702         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4703         direct move handlers for KFmode. Change TFmode handlers test from
4704         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4705
4706 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4707
4708         PR c++/70594
4709         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4710         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4711         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4712         * tree-ssa-live.c (remove_unused_scope_block_p): When
4713         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4714         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4715         block_ultimate_origin is FUNCTION_DECL.
4716         (remove_unused_locals): If current_function_decl is
4717         polymorphic_ctor_dtor_p, pass initial true to
4718         remove_unused_scope_block_p' is_ctor_dtor_block.
4719
4720 2016-04-14  Martin Sebor  <msebor@redhat.com>
4721
4722         PR c++/69517
4723         PR c++/70019
4724         PR c++/70588
4725         * doc/extend.texi (Variable Length): Revert.
4726
4727 2016-04-14  Marek Polacek  <polacek@redhat.com>
4728             Jan Hubicka  <hubicka@ucw.cz>
4729
4730         PR c++/70029
4731         * tree.c (verify_type): Disable the canonical type of main variant
4732         check.
4733
4734 2016-04-14  Jason Merrill  <jason@redhat.com>
4735
4736         * cfgexpand.c, expr.c: Revert previous change.
4737
4738 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4739
4740         PR middle-end/70643
4741         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4742         when building a mem ref for the incoming reduction variable.
4743
4744 2016-04-14  Richard Biener  <rguenther@suse.de>
4745
4746         PR tree-optimization/70614
4747         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4748         loop if the evolution dropped to chrec_dont_know.
4749         (interpret_condition_phi): Likewise.
4750
4751 2016-04-14  Richard Biener  <rguenther@suse.de>
4752
4753         PR tree-optimization/70623
4754         * tree-ssa-pre.c (changed_blocks): Make global ...
4755         (compute_antic): ... local here.  Move and fix worklist
4756         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4757         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4758         worklist handling, dump when ANTIC_IN changed.
4759         (compute_partial_antic_aux): Remove worklist handling.
4760         (init_pre): Do not compute post dominators.  Add a comment about
4761         the CFG order chosen.
4762         (fini_pre): Do not free post dominators.
4763
4764 2016-04-13  Martin Sebor  <msebor@redhat.com>
4765
4766         PR c++/69517
4767         PR c++/70019
4768         PR c++/70588
4769         * doc/extend.texi (Variable Length): Document C++ specifics.
4770
4771 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4772
4773         PR c++/70641
4774         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4775         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4776         eh edges have been purged.
4777
4778         PR c++/70594
4779         * tree-sra.c (create_access_replacement,
4780         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4781         gets fancy name.
4782         * tree-pretty-print.c (dump_fancy_name): New function.
4783         (dump_decl_name, dump_generic_node): Use it.
4784
4785 2016-04-13  Jason Merrill  <jason@redhat.com>
4786
4787         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4788         * expr.c (expand_expr_real_1): Likewise.
4789
4790 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4791
4792         * config/i386/i386.md (kunpckhi): Swap operands.
4793         (kunpcksi): Likewise.
4794         (kunpckdi): Likewise.
4795         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4796         (vec_pack_trunc_<mode>): Likewise.
4797
4798 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4799
4800         PR debug/70628
4801         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4802
4803         PR middle-end/70633
4804         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4805         gimplification turns some element into non-constant.
4806
4807         PR debug/70628
4808         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4809         * explow.c (convert_memory_address_addr_space_1): No longer static,
4810         add NO_EMIT argument and don't call convert_modes if true, pass
4811         it down recursively, remove break after return.
4812         (convert_memory_address_addr_space): Adjust caller.
4813         * simplify-rtx.c (simplify_unary_operation_1): Call
4814         convert_memory_address_addr_space_1 instead of convert_memory_address,
4815         if it returns NULL, don't simplify.
4816
4817 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4818
4819         PR target/70630
4820         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4821
4822 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4823
4824         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4825         Bump the upper SIMDLEN limits, so that if the return type or
4826         characteristic type if the return type is void can be passed in
4827         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4828         allowed.
4829
4830 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4831
4832         PR target/70640
4833         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4834         Do not use "=" constraint on an input constraint.
4835         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4836         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4837         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4838         generates (neg (abs ...)) instead of (abs ...).
4839
4840 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4841
4842         PR rtl-optimization/70596
4843         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4844         just invalidate LRA data and reset them.  Adjust dump wording.
4845
4846 2016-04-12  Martin Liska  <mliska@suse.cz>
4847
4848         Revert
4849         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4850
4851         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4852         estimates here.
4853         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4854         max_loop_iterations_int.
4855         (tree_unswitch_outer_loop): Likewise.
4856         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4857         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4858
4859 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4860
4861         PR tree-optimization/68756
4862         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4863         instead of new_name.
4864
4865 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4866
4867         PR tree-optimization/70602
4868         * tree-sra.c (generate_subtree_copies): Don't write anything into
4869         constant pool decls.
4870
4871         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4872         regardless whether there are depend clauses or not.
4873
4874 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4875
4876         PR target/70381
4877         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4878         target attribute and pragma from changing the -mfloat128
4879         and -mfloat128-hardware options.
4880
4881         * doc/extend.texi (Additional Floating Types): Document PowerPC
4882         __float128 restrictions.
4883
4884 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4885
4886         PR target/70133
4887         * config/aarch64/driver-aarch64.c
4888         (aarch64_get_extension_string_for_isa_flags): New.
4889         (arch_extension): Rename to...
4890         (aarch64_arch_extension): ...This.
4891         (ext_to_feat_string): Rename to...
4892         (aarch64_extensions): ...This.
4893         (aarch64_core_data): Keep track of architecture extension flags.
4894         (cpu_data): Rename to...
4895         (aarch64_cpu_data): ...This.
4896         (aarch64_arch_driver_info): Keep track of architecture extension
4897         flags.
4898         (get_arch_name_from_id): Rename to...
4899         (get_arch_from_id): ...This, change return type.
4900         (host_detect_local_cpu): Update and reformat for renames, handle
4901         extensions through common infrastructure.
4902
4903 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4904
4905         PR target/70133
4906         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4907         track of a canonical flag name.
4908         (all_extensions): Likewise.
4909         (arch_to_arch_name): Also track extension flags enabled by the arch.
4910         (all_architectures): Likewise.
4911         (aarch64_parse_extension): Move to here.
4912         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4913         rework.
4914         (aarch64_rewrite_selected_cpu): Update for above change.
4915         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4916         are handled, such that the single explicit value enabled by an
4917         extension is kept seperate from the implicit values it also enables.
4918         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4919         to here.
4920         (aarch64_parse_extension): New.
4921         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4922         here to config/aarch64/aarch64-protos.h.
4923         (aarch64_parse_extension): Move from here to
4924         common/config/aarch64/aarch64-common.c.
4925         (aarch64_option_print): Update.
4926         (aarch64_declare_function_name): Likewise.
4927         (aarch64_start_file): Likewise.
4928         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4929         the canonical flag for extensions.
4930         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4931         flags.
4932
4933 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4934
4935         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4936         AARCH64_FL_CRC.
4937
4938 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4939
4940         PR tree-optimization/68953
4941         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4942         first to last subscript.
4943
4944 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4945
4946         PR tree-optimization/70586
4947         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4948         for any calls.
4949
4950 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
4951
4952         PR lto/70289
4953         PR ipa/70348
4954         PR tree-optimization/70373
4955         PR middle-end/70533
4956         PR middle-end/70534
4957         PR middle-end/70535
4958         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
4959         clauses for acc parallel reductions as necessary.  Error on those
4960         that are private.
4961         * omp-low.c (scan_sharing_clauses): Don't install variables which
4962         are used in acc parallel reductions.
4963         (lower_rec_input_clauses): Remove dead code.
4964         (lower_oacc_reductions): Add support for reference reductions.
4965         (lower_reduction_clauses): Remove dead code.
4966         (lower_omp_target): Don't remap variables appearing in acc parallel
4967         reductions.
4968         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
4969
4970 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
4971
4972         PR middle-end/70593
4973         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
4974         with multiple SSA_NAME defs, force the outputs other than first
4975         to be live before calling live_track_process_def on each output.
4976
4977         PR rtl-optimization/70574
4978         * fwprop.c (forward_propagate_and_simplify): Don't add
4979         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
4980         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
4981         paradoxical subregs within *loc.
4982
4983 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
4984
4985         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
4986         -ftree-parallelize-loops={0,1}.
4987         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
4988         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
4989         * config/ia64/hpux.h (LIB_SPEC): Likewise.
4990         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4991         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
4992
4993 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
4994
4995         PR sanitizer/70541
4996         * asan.c (instrument_derefs): If we get unknown location, extract it
4997         with EXPR_LOCATION.
4998         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
4999
5000 2016-04-08  Tom de Vries  <tom@codesourcery.com>
5001
5002         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
5003         implicit firstprivate clause.
5004
5005 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5006
5007         PR target/70566
5008         * config/arm/thumb2.md (tst + branch-> lsls + branch
5009         peephole below *orsi_not_shiftsi_si): Require that condition
5010         register is dead after the peephole.
5011         (second peephole after the above): Likewise.
5012
5013 2016-04-08  Alan Modra  <amodra@gmail.com>
5014
5015         PR target/70117
5016         * builtins.c (fold_builtin_classify): For IBM extended precision,
5017         look at just the high-order double to test for NaN.
5018         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
5019         test just the high double for Inf but both doubles for subnormal
5020         limit.
5021
5022 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
5023
5024         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
5025         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
5026         node->simdclone->mask_mode != VOIDmode masks.
5027         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
5028         earlier, use it instead of node->simdclone.
5029         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5030         Set clonei->mask_mode.
5031
5032 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5033
5034         PR c/70436
5035         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
5036         Pass it through to cp_parser_already_scoped_statement.
5037         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
5038         it through to cp_parser_statement.
5039         (cp_parser_statement): Pass IF_P through to
5040         cp_parser_iteration_statement.
5041         (cp_parser_pragma): Adjust call to
5042         cp_parser_iteration_statement.
5043
5044 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5045
5046         PR c/70436
5047         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
5048         resolve a future -Wparentheses warning.
5049         * omp-low.c (scan_sharing_clauses): Likewise.
5050         * tree-parloops.c (eliminate_local_variables): Likewise.
5051
5052 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
5053
5054         PR rtl-optimization/70398
5055         * lra-constraints.c (process_address_1): Check zero scale and code
5056         for reloading with zero scale.
5057
5058 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
5059
5060         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
5061         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
5062
5063 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
5064
5065         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5066         Add support for AVX512F clones, include them by default for
5067         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
5068         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
5069         up to 128.
5070
5071         PR middle-end/70550
5072         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
5073         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
5074         firstprivate clauses.
5075         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
5076         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
5077         (lower_omp_target): Set TREE_NO_WARNING for
5078         non-addressable possibly uninitialized vars which are copied into
5079         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
5080
5081 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
5082
5083         * config/pa/predicates.md (integer_store_memory_operand): Accept
5084         REG+D operands with a large offset when reload_in_progress is true.
5085         (floating_point_store_memory_operand): Likewise.
5086
5087 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5088
5089         PR c++/70336
5090         * match.pd (nested int casts): Limit to GIMPLE.
5091
5092 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
5093
5094         PR ipa/66223
5095         * ipa-devirt.c (maybe_record_node): Fix comment; use
5096         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
5097
5098 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5099
5100         PR rtl-optimization/70542
5101         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
5102         if there are any uses other than insn or debug insns.
5103
5104 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
5105             Jakub Jelinek  <jakub@redhat.com>
5106
5107         PR tree-optimization/70509
5108         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
5109         Shift HOST_WIDE_INT_1U instead of 1.
5110
5111 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5112
5113         PR tree-optimization/70509
5114         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5115         of the vector base type for index.
5116
5117 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5118
5119         PR target/70510
5120         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5121
5122 2016-04-05  Richard Biener  <rguenther@suse.de>
5123
5124         PR tree-optimization/70526
5125         * tree-sra.c (build_ref_for_offset): Use prev_base to
5126         extract the alias pointer type.
5127
5128 2016-04-05  Richard Biener  <rguenther@suse.de>
5129
5130         * dse.c (struct store_info): Remove alias_set member.
5131         (struct read_info_type): Likewise.
5132         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5133         spill_deleted, clear_alias_set_lookup): Remove.
5134         (get_group_info): Remove dead base == NULL_RTX case.
5135         (dse_step0): Remove initialization of removed variables.
5136         (delete_dead_store_insn): Reomve alias set dumping.
5137         (free_read_records): Remove alias_set handling.
5138         (canon_address): Remove alias_set_out parameter.
5139         (record_store): Remove spill_alias_set, it's always zero.
5140         (check_mem_read_rtx): Likewise.
5141         (dse_step2): Rename from ...
5142         (dse_step2_nospill): ... this.  Adjust.
5143         (scan_stores): Rename from ...
5144         (scan_stores_nospill): ... this.
5145         (scan_reads): Rename from ...
5146         (scan_reads_nospill): ... this.
5147         (scan_stores_spill, scan_reads_spill): Remove.
5148         (dse_step3_scan): Remove for_spills argument which is always false.
5149         (dse_step3): Likewise.
5150         (dse_step5): Rename from ...
5151         (dse_step5_nospill): ... this.  Remove alias_set handling.
5152         (rest_of_handle_dse): Adjust.
5153
5154 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5155
5156         PR target/70525
5157         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5158         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5159         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5160         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5161
5162 2016-04-05  Richard Biener  <rguenther@suse.de>
5163
5164         PR middle-end/70499
5165         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5166         non-register type temporaries into SSA.
5167
5168 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5169
5170         PR ipa/66223
5171         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5172         calls when sanitizing.
5173         (possible_polymorphic_call_target_p): Fix formatting.
5174
5175 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5176             Jakub Jelinek <jakub@redhat.com>
5177
5178         PR middle-end/70457
5179         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5180         to ensure a call statement is compatible with a built-in's
5181         prototype.
5182         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5183         Likewise.
5184
5185 2016-04-04  Richard Biener  <rguenther@suse.de>
5186
5187         PR rtl-optimization/70484
5188         * rtl.h (canon_output_dependence): Declare.
5189         * alias.c (canon_output_dependence): New function.
5190         * dse.c (record_store): Use canon_output_dependence rather
5191         than canon_true_dependence.
5192
5193 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5194
5195         PR ipa/68881
5196         * cgraph.h (symtab_node::copy_visibility_from): New function.
5197         * symtab.c (symtab_node::copy_visibility_from): New function.
5198         * ipa-visibility.c (optimize_weakref): New function.
5199         (function_and_variable_visibility): Use it.
5200
5201 2016-04-04  Martin Liska  <mliska@suse.cz>
5202
5203         PR hsa/70402
5204         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5205         value that is really in range handled by SBR instruction.
5206         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5207         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5208         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5209
5210 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5211
5212         PR target/70416
5213         PR target/67391
5214         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5215         set, but not for SP_REG operands.
5216
5217 2016-04-02  Martin Sebor  <msebor@redhat.com>
5218
5219         PR c++/67376
5220         * fold-const.c (maybe_nonzero_address): New function.
5221         (fold_comparison): Call it.  Fold equality and relational
5222         expressions involving null pointers.
5223         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5224
5225 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5226
5227         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5228         the "Y" constraint (scalar FP 0.0 immediate).
5229
5230         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5231         Add the "const_double" to the list of operand constraints.
5232
5233 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5234
5235         PR rtl-optimization/70467
5236         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5237         If low word of the last operand is 0, just emit addition/subtraction
5238         for the high word.
5239
5240 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5241
5242         PR target/70404
5243         * config/s390/s390.c (s390_expand_insv): Check for everything
5244         constant instead of just VOIDmode stuff.
5245
5246 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5247
5248         PR target/70496
5249         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5250
5251 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5252
5253         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5254
5255 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5256
5257         PR rtl-optimization/70461
5258         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5259         is necessary.
5260
5261 2016-03-31  Martin Liska  <mliska@suse.cz>
5262
5263         PR hsa/70399
5264         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5265         a tree value or an immediate integer value to a buffer
5266         that is eventually copied to a BRIG section.
5267         (emit_immediate_operand): Call the function here.
5268         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5269         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5270         of class' fields that are removed.
5271         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5272         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5273         m_brig_repr_size fields.
5274
5275 2016-03-31  Martin Liska  <mliska@suse.cz>
5276
5277         PR hsa/70391
5278         * hsa-gen.c (hsa_function_representation::update_dominance): New
5279         function.
5280         (convert_addr_to_flat_segment): Likewise.
5281         (gen_hsa_memory_set): New alignment argument.
5282         (gen_hsa_ctor_assignment): Likewise.
5283         (gen_hsa_insns_for_single_assignment): Provide alignment
5284         to gen_hsa_ctor_assignment.
5285         (gen_hsa_insns_for_direct_call): Add new argument.
5286         (expand_lhs_of_string_op): New function.
5287         (expand_string_operation_builtin): Likewise.
5288         (expand_memory_copy): New function.
5289         (expand_memory_set): New function.
5290         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5291         (convert_switch_statements): Change signature.
5292         (generate_hsa): Use a return value of the function.
5293         (pass_gen_hsail::execute): Do not call
5294         convert_switch_statements here.
5295         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5296         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5297         (hsa_function_representation::update_dominance): New function.
5298
5299 2016-03-31  Martin Liska  <mliska@suse.cz>
5300
5301         PR hsa/70391
5302         * hsa-brig.c (emit_directive_variable): Emit alignment
5303         according to hsa_symbol::m_align.
5304         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5305         (dump_hsa_symbol): Dump alignment of HSA symbols.
5306         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5307         (gen_hsa_addr_with_align): New function.
5308         (hsa_bitmemref_alignment): Use newly added function.
5309         (gen_hsa_insns_for_load): Likewise.
5310         (gen_hsa_insns_for_store): Likewise.
5311         (gen_hsa_memory_copy): New argument added.
5312         (gen_hsa_insns_for_single_assignment): Respect
5313         alignment for assignments processed via gen_hsa_memory_copy.
5314         (gen_hsa_insns_for_direct_call): Likewise.
5315         (gen_hsa_insns_for_return): Likewise.
5316         (gen_function_def_parameters): Set default alignment.
5317         * hsa.c (hsa_object_alignment): New function.
5318         (hsa_byte_alignment): Pasted function.
5319         * hsa.h (hsa_symbol::m_align): New field.
5320
5321 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5322
5323         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5324         scratch field for goto case.
5325
5326 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5327
5328         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5329
5330 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5331
5332         PR target/70442
5333         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5334         (scalar_chain::convert_insn): Call convert_op for reg
5335         moves to handle undefined registers.
5336
5337 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5338
5339         PR c++/70393
5340         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5341         Assert we don't want to move backwards.
5342
5343 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5344
5345         PR target/70453
5346         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5347
5348 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5349
5350         PR rtl-optimization/70460
5351         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5352         with operand from REG_LABEL_OPERAND, instead substitute
5353         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5354         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5355
5356 2016-03-31  Martin Liska  <mliska@suse.cz>
5357
5358         * passes.c (execute_one_pass): Do not call
5359         todo_after for a discarded function.
5360
5361 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5362
5363         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5364         (no_cost, infinite_cost): Initialize the new field.
5365         (get_computation_cost_at): Record setup cost.
5366         (determine_use_iv_cost_address): Skip cost computation for sub
5367         uses if we can estimate it without losing accuracy.
5368
5369 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5370
5371         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5372         estimates here.
5373         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5374         max_loop_iterations_int.
5375         (tree_unswitch_outer_loop): Likewise.
5376         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5377         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5378
5379 2016-03-30  Richard Biener  <rguenther@suse.de>
5380
5381         PR middle-end/70450
5382         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5383
5384 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5385
5386         PR target/70421
5387         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5388         in gen_blendm expander.
5389
5390 2016-03-30  Nick Clifton  <nickc@redhat.com>
5391
5392         PR target/62254
5393         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5394         case where we are already provided with an SImode SUBREG.
5395
5396 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5397
5398         PR target/70439
5399         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5400         conflict between DRAP register and __builtin_eh_return.
5401
5402 2016-03-30  Michael Matz  <matz@suse.de>
5403             Richard Biener  <rguenther@suse.de>
5404
5405         PR ipa/12392
5406         * ipa-polymorphic-call.c (struct type_change_info): Change
5407         speculative to an unsigned allowing to limit the work we do.
5408         (csftc_abort_walking_p): New inline function..
5409         (check_stmt_for_type_change): Limit the number of may-defs
5410         skipped for speculative devirtualization to
5411         max-speculative-devirt-maydefs.
5412         * params.def (max-speculative-devirt-maydefs): New param.
5413         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5414
5415 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5416
5417         PR target/63890
5418         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5419         and TARGET_MACHO.
5420
5421 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5422
5423         PR tree-optimization/59124
5424         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5425         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5426
5427 2016-03-29  Jeff Law  <law@redhat.com>
5428
5429         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5430
5431 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5432
5433         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5434         to HOST_WIDE_INT.
5435
5436 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5437
5438         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5439         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5440         gcrt0.o if linking dynamically.
5441
5442 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5443
5444         PR ipa/70283
5445         * ipa-devirt.c (methods_equal_p): New function.
5446         (compare_virtual_tables): Use it.
5447         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5448         * cgraphclones.c (clone_function_name_1): Use
5449         symbol_table::symbol_suffix_separator.
5450         * coverage.c (build_var): Likewise.
5451         * symtab.c (symbol_table::symbol_suffix_separator): New.
5452
5453 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5454
5455         PR rtl-optimization/70429
5456         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5457         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5458         mode != result_mode.
5459
5460         PR c++/70353
5461         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5462
5463         PR tree-optimization/70405
5464         * ssa-iterators.h (num_imm_uses): Add missing braces.
5465
5466 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5467
5468         PR rtl-optimization/68695
5469         * ira-color.c (allocno_copy_cost_saving): New.
5470         (improve_allocation): Use it.
5471
5472 2016-03-29  Richard Henderson  <rth@redhat.com>
5473
5474         PR middle-end/70355
5475         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5476
5477 2016-03-29  Richard Biener  <rguenther@suse.de>
5478
5479         PR middle-end/70424
5480         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5481         use alignment returned by get_pointer_alignment_1 if it is
5482         bigger than BITS_PER_UNIT.
5483         * builtins.c (get_pointer_alignment_1): Do not return true
5484         for alignment extracted from SSA info.
5485
5486 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5487
5488         * config/ft32/ft32.opt (mnodiv): New.
5489         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5490         * doc/invoke.texi (FT32 Options -mnodiv): New.
5491
5492 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5493
5494         PR target/70406
5495         * config/i386/i386.md (define_split, andn): Fix modes.
5496
5497 2016-03-26  Richard Biener  <rguenther@suse.de>
5498             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5499
5500         PR ipa/70366
5501         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5502         instead of
5503         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5504         as 2nd argument to cl_optimization_restore().
5505
5506 2016-03-25  Richard Henderson  <rth@redhat.com>
5507
5508         PR target/70120
5509         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5510         * config/aarch64/aarch64-protos.h: Declare it.
5511         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5512
5513 2016-03-25  Alan Modra  <amodra@gmail.com>
5514
5515         PR target/70052
5516         * config/rs6000/constraints.md (j): Simplify.
5517         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5518         decimal float 0.D.
5519         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5520         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5521          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5522         in all constraint alternatives.
5523         (movtd_64bit_nodm): Delete "j" constraint alternative.
5524
5525 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5526
5527         * tree-ssa-propagate.c: Enhance docs for
5528         SSA_PROP_NOT_INTERESTING.
5529
5530 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5531
5532         * doc/extend.texi: Fix typo in documentation to pure attribute.
5533
5534 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5535
5536         PR target/70319
5537         * config/pa/pa.md (bswapdi2): Use a scratch register.
5538
5539 2016-03-24  Richard Henderson  <rth@redhat.com>
5540
5541         PR middle-end/69845
5542         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5543         overflow.
5544
5545 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5546
5547         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5548         using ix86_expand_binary_operator instead of gen_andsi3.
5549
5550 2016-03-24  Richard Biener  <rguenther@suse.de>
5551
5552         PR tree-optimization/70396
5553         * tree-vect-stmts.c (vectorizable_comparison): Use
5554         get_vectype_for_scalar_type.
5555
5556 2016-03-24  Richard Biener  <rguenther@suse.de>
5557
5558         PR middle-end/70370
5559         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5560         with register bases.
5561
5562 2016-03-24  Richard Biener  <rguenther@suse.de>
5563
5564         PR tree-optimization/70372
5565         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5566         build_all_ones_cst to also handle vector types correctly.
5567
5568 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5569
5570         PR target/70381
5571         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5572         -mfloat128 here.
5573
5574 2016-03-23  Marek Polacek  <polacek@redhat.com>
5575
5576         PR c++/69884
5577         * doc/invoke.texi: Document -Wignored-attributes.
5578
5579 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5580
5581         PR tree-optimization/69042
5582         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5583         parameter from 30 to 40.
5584
5585 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5586
5587         PR tree-optimization/69042
5588         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5589         for use with constant offset stripped in base.
5590
5591 2016-03-23  Richard Biener  <rguenther@suse.de>
5592
5593         PR middle-end/70251
5594         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5595         mode compatibility check.
5596         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5597
5598 2016-03-23  Jeff Law  <law@redhat.com>
5599
5600         PR tree-optimization/64058
5601         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5602         CONFLICT_COUNT.
5603         (struct ssa_conflicts): Move up earlier in the file.
5604         (conflicts_, var_map_): New static variables.
5605         (initialize_conflict_count): New function to initialize the
5606         CONFLICT_COUNT field for each conflict pair.
5607         (compare_pairs): Lazily initialize the conflict count and use it
5608         as the first tie-breaker.
5609         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5610         and wipe conflicts_ and map_ around the call to qsort.  Remove
5611         special case for 2 coalesce pairs.
5612         * bitmap.c (bitmap_count_unique_bits): New function.
5613         (bitmap_count_bits_in_word): New function, extracted from
5614         bitmap_count_bits.
5615         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5616         * bitmap.h (bitmap_count_unique_bits): Declare it.
5617
5618 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5619
5620         PR target/69917
5621         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5622         transparent alias chain for decl assembler name.
5623         * config/sol2.c (solaris_assemble_visibility): Likewise.
5624
5625 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5626
5627         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5628         duration.
5629         (v10_fdivs): Likewise.
5630         (v10_fdivd): Likewise.
5631
5632 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5633
5634         PR driver/70132
5635         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5636         to not call fclose twice on file.
5637
5638 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5639
5640         PR tree-optimization/70354
5641         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5642         oprnd0 is wider than oprnd1 and there is a cast from the wider
5643         type to oprnd1, mask it with the mask of the narrower type.
5644
5645         PR target/70321
5646         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5647         Optimize TARGET_STV splitters, if high or low word of last argument
5648         is 0 or -1.
5649
5650 2016-03-22  Jeff Law  <law@redhat.com>
5651
5652         PR target/70232
5653         tree-ssa-threadbackward.c
5654         (fsm_find_control_statement_thread_paths): Correctly distinguish
5655         between old style jump threads vs FSM jump threads.
5656
5657 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5658
5659         PR target/70302
5660         * config/i386/i386.c (scalar_chain::convert_op): Support
5661         uninitialized register usage case.
5662
5663 2016-03-22  Richard Biener  <rguenther@suse.de>
5664
5665         PR middle-end/70251
5666         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5667         int...
5668         (capture::gen_transform): ... to change behavior when substituting
5669         a condition into cond or not-cond expr context.
5670         (dt_simplify::gen_1): Adjust.
5671         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5672         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5673         last change and instead change to
5674         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5675         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5676
5677 2016-03-22  Anthony Green  <green@moxielogic.com>
5678
5679         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5680         issue for moxiebox targets.
5681         (CC1PLUS_SPEC): Ditto.
5682
5683 2016-03-22  Richard Biener  <rguenther@suse.de>
5684
5685         PR middle-end/70333
5686         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5687         in the wide type.
5688
5689 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5690
5691         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5692
5693 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5694
5695         PR target/70325
5696         * config/i386/i386.c (def_builtin): Handle
5697         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5698         bits.
5699         (const struct builtin_description bdesc_special_args[]):
5700         Remove duplicate ISA bits.
5701
5702 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5703
5704         PR target/70329
5705         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5706         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5707         in a way that works also for AVX512BW.
5708
5709         PR target/70300
5710         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5711         instead of source if operands[1] is xmm16 and above and
5712         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5713         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5714
5715         PR c++/70295
5716         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5717         on assign if (*from_p) is a comparison, set it to
5718         TREE_NO_WARNING (*from_p).
5719
5720 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5721
5722         PR middle-end/70326
5723         * lra.c (restore_scratches): Ignore deleted insns.
5724
5725 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5726             Jakub Jelinek  <jakub@redhat.com>
5727
5728         PR tree-optimization/70317
5729         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5730         to HONOR_NANS.
5731
5732 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5733
5734         PR target/70327
5735         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5736         of ix86_expand_move.
5737         (movoi): Ditto.
5738         (movti): Use general_operand for operand 1 predicate.
5739
5740 2016-03-21  Martin Liska  <mliska@suse.cz>
5741
5742         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5743         insns.
5744         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5745
5746 2016-03-21  Martin Liska  <mliska@suse.cz>
5747
5748         PR ipa/70306
5749         * ipa-icf.c (sem_function::parse): Skip static
5750         constructors and destructors.
5751
5752 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5753
5754         PR target/70296
5755         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5756         function-like macro, peek following token(s) if it is followed
5757         by CPP_OPEN_PAREN token with optional padding in between, and
5758         if not, don't treat it like a macro.
5759
5760 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5761             Alexander Monakov  <amonakov@ispras.ru>
5762
5763         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5764         for the stabs debug format.
5765
5766 2016-03-21  Richard Biener  <rguenther@suse.de>
5767
5768         PR tree-optimization/70310
5769         * tree-vect-generic.c (expand_vector_condition): Fold the built
5770         condition.
5771
5772 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5773
5774         PR target/70293
5775         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5776         Block third alternative for AVX-512VL target,
5777
5778 2016-03-21  Martin Liska  <mliska@suse.cz>
5779
5780         PR hsa/70234
5781         * hsa-brig.c (emit_function_directives): Mark unemitted
5782         global variables for emission.
5783         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5784         (get_symbol_for_decl): Likewise.
5785         * hsa.h (struct hsa_symbol): New flag.
5786
5787 2016-03-21  Richard Biener  <rguenther@suse.de>
5788
5789         PR tree-optimization/70288
5790         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5791         we do not estimate unsimplified all-constant conditionals or
5792         switches as optimized away.
5793
5794 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5795
5796         PR rtl-optimization/69102
5797         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5798         when we have a readonly dependency context.
5799
5800 2016-03-18  Jeff Law  <law@redhat.com>
5801
5802         PR rtl-optimization/70263
5803         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5804         (update_equiv_regs): When trying to move a store to after the insn
5805         that sets the source of the store, make sure the store occurs after
5806         the insn that sets the source of the store.  When successful note
5807         the REG_EQUIV note created in the dump file.
5808
5809 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5810             Bernd Schmidt  <bschmidt@redhat.com>
5811
5812         * doc/extend.texi: Document more potential problems with basic asms.
5813
5814 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5815
5816         PR rtl-optimization/70278
5817         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5818         VOIDmode.
5819
5820 2016-03-18  Jason Merrill  <jason@redhat.com>
5821
5822         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5823
5824 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5825
5826         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5827         values to 128b regs.
5828
5829 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5830
5831         PR tree-optimization/70252
5832         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5833         boolean vector has a proper number of elements.
5834         (supportable_narrowing_operation): Likewise.
5835
5836 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5837
5838         PR ipa/70269
5839         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5840
5841 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5842
5843         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5844         instead of replace_rtx for DEBUG_INSNs.
5845
5846 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5847
5848         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5849         load type reservations.
5850
5851 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5852
5853         PR target/70188
5854         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5855         define_constraint for "Q" and "T" constraints.
5856
5857 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5858
5859         Tweak the pipeline model for Exynos M1
5860
5861         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5862         model.
5863
5864 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5865
5866         PR c/70264
5867         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5868         where one or both locations aren't within a line_map.
5869
5870 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5871
5872         PR driver/70192
5873         * opts.c (finish_options): Don't set flag_pie to the default if
5874         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5875         if it is -1.
5876
5877 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5878
5879         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5880         true as ALL_REGS argument to replace_rtx.
5881
5882 2016-03-17  Richard Biener  <rguenther@suse.de>
5883
5884         PR debug/70271
5885         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5886         last.
5887
5888 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5889
5890         PR target/70245
5891         * rtl.h (replace_rtx): Add ALL_REGS argument.
5892         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5893         equality and assert mode is the same, instead of just rtx pointer
5894         equality.
5895         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5896         true as ALL_REGS argument to replace_rtx.
5897
5898 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5899
5900         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5901         for boolean vector with vector mode only.
5902         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5903
5904 2016-03-17  Nick Clifton  <nickc@redhat.com>
5905
5906         PR target/70162
5907         * config/rx/rx.c (rx_print_integer): Print negative constants in
5908         decimal.
5909
5910 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5911
5912         PR target/70261
5913         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5914
5915 2016-03-16  Richard Henderson  <rth@redhat.com>
5916             Richard Biener  <rguenth@suse.de>
5917
5918         PR middle-end/70240
5919         PR middle-end/68215
5920         PR tree-opt/68714
5921         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5922         first operand as is_gimple_condexpr.
5923
5924         PR middle-end/70240
5925         PR middle-end/68215
5926         Revert r231575
5927         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5928         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5929         Do not gimplify the result.
5930         (do_unop): Adjust call to tree_vec_extract.
5931         (do_binop): Likewise.
5932         (do_compare): Likewise.
5933         (do_plus_minus): Likewise.
5934         (do_negate): Likewise.
5935         (expand_vector_condition): Likewise.
5936         (do_cond): Likewise.
5937
5938 2016-03-16  Richard Henderson  <rth@redhat.com>
5939
5940         PR target/70048
5941         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5942         (aarch64_classify_address): Use it.
5943         (aarch64_legitimize_address): Force all subexpressions of PLUS
5944         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5945
5946 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5947             Richard Biener  <rguenth@suse.de>
5948
5949         PR target/70245
5950         * rtlanal.c (replace_rtx): For REG, if from is a REG,
5951         return to even if only REGNO is equal, and assert
5952         mode is the same.
5953
5954 2016-03-11  Jeff Law  <law@redhat.com>
5955
5956         PR rtl-optimization/70224
5957         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
5958
5959 2016-03-16  Richard Henderson  <rth@redhat.com>
5960
5961         PR middle-end/70199
5962         * function.h (struct function): Add has_forced_label_in_static.
5963         * gimplify.c (force_labels_r): Set it.
5964         * lto-streamer-in.c (input_struct_function_base): Read it.
5965         * lto-streamer-out.c (output_struct_function_base): Write it.
5966         * tree-inline.c (has_label_address_in_static_1): Remove.
5967         (copy_forbidden): Remove fndecl parameter; test
5968         has_forced_label_in_static.
5969         (inline_forbidden_p): Update call to copy_forbidden.
5970         (tree_versionable_function_p): Likewise.
5971         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
5972         (chkp_versioning): Likewise.
5973         * tree-inline.h (copy_forbidden): Update decl.
5974
5975 2016-03-16  Marek Polacek  <polacek@redhat.com>
5976
5977         PR c/70093
5978         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
5979         function being thunked if the result type doesn't have fixed size.
5980         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
5981         doesn't have fixed size.
5982
5983 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
5984
5985         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
5986         reporting malformed loop nest.
5987
5988 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5989
5990         PR lto/70187
5991         * ipa-devirt.c (possible_polymorphic_call_targets): Move
5992         nodes.length () == 1 test to before first nodes[0] access.
5993
5994 2016-03-16  Tom de Vries  <tom@codesourcery.com>
5995
5996         PR tree-optimization/68715
5997         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
5998         single_pred_p test.
5999
6000 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6001
6002         PR tree-optimization/68809
6003         * graphite-scop-detection.c (same_close_phi_node): Test if result types
6004         are the same.
6005
6006 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
6007             Sandra Loosemore  <sandra@codesourcery.com>
6008
6009         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
6010         on leaf attribute. Mention ELF interposition problems.
6011
6012 2016-03-16  Alan Modra  <amodra@gmail.com>
6013
6014         PR rtl-optimization/69195
6015         PR rtl-optimization/47992
6016         * ira.c (indirect_jump_optimize): Ignore artificial defs.
6017         Add comments.
6018
6019 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6020
6021         PR bootstrap/69513
6022         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
6023
6024 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6025
6026         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
6027
6028 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
6029
6030         PR rtl-optimization/70222
6031         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
6032         optimization if mode is different from result_mode, queue up masking
6033         of the result in outer_op.  Formatting fix.
6034
6035         PR middle-end/70239
6036         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
6037         of safe_grow.
6038
6039 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6040
6041         PR rtl-optimization/69032
6042         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
6043         looping backwards over basic block insns.
6044
6045 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6046
6047         PR target/66660
6048         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
6049         to non-speculative when propagating trap bits.
6050
6051 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6052
6053         PR rtl-optimization/63384
6054         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
6055         DEBUG_INSN_P insns.
6056
6057 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6058
6059         PR target/64411
6060         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
6061         factored out from ...
6062         (sched_analyze_insn): ... here.
6063         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
6064         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
6065         get_implicit_reg_pending_clobbers in it.
6066         (setup_id_reg_sets): Use setup_id_implicit_regs.
6067         (deps_init_id): Ditto.
6068
6069 2016-03-15  Tom de Vries  <tom@codesourcery.com>
6070
6071         PR ipa/70161
6072         * cgraph.c (cgraph_node::get_body): Save, reset and restore
6073         dump_file_name.
6074         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
6075         execute_function_dump.
6076         (execute_one_pass): Don't dump function if it will be dumped after ipa
6077         transform.
6078
6079 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
6080
6081         * genrecog.c (match_pattern_2): If pred is NULL don't call
6082         safe_predicate_mode on it.
6083
6084 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
6085
6086         PR middle-end/70219
6087         * lra-constraints.c (delete_move_and_clobber): Change assertion
6088         to also allow dregno == 0.
6089
6090 2016-03-14  Richard Henderson  <rth@redhat.com>
6091
6092         PR tree-opt/68714
6093         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
6094         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
6095         (reassociate_bb): Use optimize_vec_cond_expr; avoid
6096         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
6097         on vectors.
6098
6099 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6100
6101         PR target/70083
6102         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
6103         regs.
6104         (lra_create_live_ranges_1): initialize hard register biggest_mode to
6105         VOIDmode.
6106         * lra-constraints.c (split_reg): For hard regs, try to find the
6107         biggest single-register mode used in the function.
6108
6109 2016-03-14  Richard Biener  <rguenther@suse.de>
6110
6111         PR tree-optimization/56365
6112         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6113         constants to compare against.
6114
6115 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6116
6117         PR target/70098
6118         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6119         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6120         (define_split for the GPR case): Use int_reg_operand instead of
6121         gpc_reg_operand for the output.
6122
6123 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6124
6125         PR tree-optimization/70045
6126         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6127         create_empty_if_region_on_edge argument.
6128
6129 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6130
6131         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6132         (STACK_CHECK_PROTECT): Likewise.
6133         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6134         (STACK_CHECK_PROTECT): Likewise.
6135         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6136         (STACK_CHECK_PROTECT): Likewise.
6137         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6138         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6139         (STACK_CHECK_PROTECT): Likewise.
6140
6141 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6142
6143         PR rtl-optimization/69307
6144         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6145         registers in modes that span more than one register.
6146
6147 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6148
6149         PR target/69614
6150         * lra-constraints.c (delete_move_and_clobber): New.
6151         (remove_inheritance_pseudos): Use it.
6152
6153 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6154
6155         PR ada/70017
6156         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6157         the libcall is LCT_THROW.
6158         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6159         for the checking routine.
6160
6161 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6162
6163         PR target/70131
6164         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6165         optimization if we have direct move.
6166         (roundu32<mode>2_fprs): Likewise.
6167
6168 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6169
6170         PR target/70123
6171         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6172         be rematerialized.
6173         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6174         Arguments swapped.  All callers changed.  Take reg_renumber into
6175         account, and Calculate and compare register ranges for hard regs.
6176
6177 2016-03-11  Jeff Law  <law@redhat.com>
6178
6179         PR tree-optimization/70190
6180         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6181         Handle cases where we can not extract the taken edge, even though we
6182         found a constant value.
6183
6184         PR tree-optimization/64058
6185         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6186         (num_coalesce_pairs): Move up earlier in file.
6187         (find_coalesce_pair): Initialize the INDEX field for each pair
6188         discovered.
6189         (compare_pairs): No longer sort on the elements in each pair.
6190         Instead break ties with the index of the coalesce pair.
6191
6192 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6193
6194         PR target/70002
6195         * config/aarch64/aarch64-protos.h
6196         (aarch64_save_restore_target_globals): New prototype.
6197         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6198         Call the above when popping pragma.
6199         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6200         New function.
6201         (aarch64_set_current_function): Rewrite using the above.
6202
6203 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6204
6205         PR tree-optimization/70177
6206         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6207         (extract_ops_from_tree): ... this.  In the 2 argument
6208         overload remove _1 suffix.
6209         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6210         (extract_ops_from_tree): ... this.
6211         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6212         Adjust callers.
6213         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6214         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6215         extract_ops_from_tree instead of 2 operand one.
6216
6217 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6218
6219         PR tree-optimization/70013
6220         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6221         for constant-pool entries.
6222
6223 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6224
6225         PR rtl-optimization/70174
6226         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6227         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6228
6229         PR tree-optimization/70169
6230         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6231         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6232         for unknown codes.
6233
6234 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6235             Jakub Jelinek  <jakub@redhat.com>
6236
6237         PR target/70160
6238         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6239         of uninitialized values.
6240
6241 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6242
6243         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6244         define_expand.
6245         ("*trunctddd2"): New pattern definition.
6246         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6247         TD->DD truncation.
6248
6249 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6250
6251         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6252         definitions for BFP and DFP rounding modes.
6253         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6254         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6255         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6256         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6257         numbers.
6258
6259 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6260
6261         * config/s390/constraints.md: Adjust comment.
6262         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6263         s390_decompose_addrstyle_without_index.
6264         * config/s390/predicates.md (shift_count_or_setmem_operand):
6265         Rename to setmem_operand.
6266         * config/s390/s390-protos.h
6267         (s390_decompose_shift_count): Rename to
6268         s390_decompose_addrstyle_without_index.
6269         * config/s390/s390.c (s390_decompose_shift_count)
6270         (s390_mem_constraint, print_shift_count_operand)
6271         (print_operand_address, print_operand): Rename
6272         s390_decompose_shift_count to
6273         s390_decompose_addrstyle_without_index and rename
6274         print_shift_count_operand to print_addrstyle_operand troughout the
6275         file.
6276         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6277         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6278         Rename shift_count_or_setmem_operand to setmem_operand.
6279         * config/s390/vx-builtins.md ("vec_insert<mode>")
6280         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6281         nonmemory_operand.
6282
6283 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6284
6285         PR target/70168
6286         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6287         Handle overlapping retval and newval.
6288
6289 2016-03-10  Nick Clifton  <nickc@redhat.com>
6290
6291         PR target/7044
6292         * config/aarch64/aarch64.c
6293         (aarch64_override_options_after_change_1): When forcing
6294         flag_omit_frame_pointer to be true, use a special value that can
6295         be detected if this function is called again, thus preventing
6296         flag_omit_leaf_frame_pointer from being forced to be false.
6297
6298 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6299
6300         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6301         Set x_flag_omit_leaf_frame_pointer when handling
6302         -momit-leaf-frame-pointer.
6303
6304 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6305
6306         PR lto/69589
6307         * cgraph.c (cgraph_node::dump): Dump split_part and
6308         indirect_call_target.
6309         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6310         * ipa.c (has_addr_references_p): Cleanup.
6311         (is_indirect_call_target_p): New.
6312         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6313         called indirectly as local.
6314         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6315
6316 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6317
6318         PR ipa/69630
6319         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6320         on cxa_pure_virtual.
6321
6322 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6323
6324         PR lto/69589
6325         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6326
6327 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6328
6329         PR lto/69589
6330         * tree.c (need_assembler_name_p): Only record main variant type names.
6331
6332 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6333
6334         PR target/70113.
6335         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6336         Always define to 0 or 1.
6337         (TARGET_FIX_ERR_A53_843419): New macro.
6338         * config/aarch64/aarch64-elf-raw.h
6339         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6340         * config/aarch64/aarch64-linux.h: Likewise.
6341         * config/aarch64/aarch64.c
6342         (aarch64_override_options_after_change_1): Do not default
6343         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6344         843419 is on.
6345         (aarch64_attributes): Handle fix-cortex-a53-843419.
6346         (aarch64_can_inline_p): Likewise.
6347         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6348
6349 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6350         Jakub Jelinek <jakub@redhat.com>
6351
6352         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6353         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6354         DECL_COMMONS if flag_unconstrained_commons is set.
6355         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6356         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6357         (funconstrained-commons): Document.
6358
6359 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6360
6361         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6362         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6363
6364 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6365
6366         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6367         has a proper number of elements.
6368
6369 2016-03-10  Alan Modra  <amodra@gmail.com>
6370
6371         PR rtl-optimization/69195
6372         PR rtl-optimization/47992
6373         * ira.c (recorded_label_ref): Delete.
6374         (update_equiv_regs): Return void.
6375         (indirect_jump_optimize): New function.
6376         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6377         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6378         Delete update_regstat.
6379
6380 2016-03-10  Richard Biener  <rguenther@suse.de>
6381
6382         PR tree-optimization/70128
6383         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6384         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6385
6386 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6387
6388         PR tree-optimization/70152
6389         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6390         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6391
6392         PR target/70086
6393         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6394         instead of gen_sse2_loadlpd.
6395         * config/i386/sse.md (*vec_concatv2df): Rename to...
6396         (vec_concatv2df): ... this.
6397
6398         PR tree-optimization/70127
6399         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6400
6401 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6402
6403         PR c/68473
6404         PR c++/70105
6405         * diagnostic-show-locus.c (compatible_locations_p): New function.
6406         (layout::layout): Sanitize ranges using compatible_locations_p.
6407
6408 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6409
6410         PR c/68473
6411         PR c++/70105
6412         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6413         location_range param with three const expanded_locations * and a
6414         bool.
6415         (layout::layout): Replace call to
6416         rich_location::lazily_expand_location with get_expanded_location.
6417         Extract the range and perform location expansion here, passing
6418         the results to the layout_range ctor.
6419         * diagnostic.c (source_range::debug): Delete.
6420         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6421         of rich_location::get_expanded_location.
6422         * gcc-rich-location.c (get_range_for_expr): Delete.
6423         (gcc_rich_location::add_expr): Reimplement to avoid the
6424         rich_location::add_range overload that took a location_range,
6425         passing a location_t instead.
6426
6427 2016-03-09  Richard Biener  <rguenther@suse.de>
6428         Jakub Jelinek  <jakub@redhat.com>
6429
6430         PR tree-optimization/70138
6431         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6432         Also skip vect_double_reduction_def.
6433
6434 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6435
6436         PR target/70049
6437         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6438         if the operand is "m".
6439
6440 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6441
6442         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6443
6444 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6445
6446         * config/i386/i386.c (processor_target_table): Fix cost table
6447         intialization order for znver1.
6448
6449 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6450
6451         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6452         - becuase -> because.
6453         * ipa-reference.c (ignore_module_statics): Likewise.
6454         * cgraph.c (cgraph_node::get_body): Likewise.
6455         * ipa-inline.c (early_inliner): Likewise.
6456         * ipa-devirt.c (types_same_for_odr): Likewise.
6457         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6458         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6459
6460 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6461
6462         * tree-ssa-math-opts.c: Fix typo in comment.
6463
6464 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6465
6466         PR target/70110
6467         * config/i386/i386.c (scalar_chain::make_vector_copies,
6468         scalar_chain::convert_reg): Call end_sequence in between
6469         get_insns and emit_conversion_insns rather than after both
6470         calls.
6471
6472 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6473
6474         PR target/70064
6475         * config/i386/i386.h (machine_function): Add
6476         pc_thunk_call_expanded flag.
6477         (ix86_pc_thunk_call_expanded): New define.
6478         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6479         (*set_got): Rename insn pattern from set_got.
6480         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6481         * config/i386/i386.c (ix86_compute_frame_layout): Use
6482         ix86_pc_thunk_call_expanded to prevent red-zone.
6483
6484 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6485
6486         * hsa.h (hsa_get_ctor_statements): Declare.
6487         (hsa_get_dtor_statements): Likewise.
6488         (hsa_get_kernel_dispatch_type): Likewise.
6489         * hsa.c (hsa_get_ctor_statements): New function.
6490         (hsa_get_dtor_statements): Likewise.
6491         (hsa_get_kernel_dispatch_type): Likewise.
6492         * hsa-brig.c (hsa_cdtor_statements): Removed.
6493         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6494         hsa_get_dtor_statements.
6495         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6496         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6497
6498 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6499
6500         * config/arm/arm-cores.def (cortex-r8): New.
6501         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6502         * config/arm/arm-tune.md: Likewise.
6503         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6504
6505 2016-03-07  Martin Sebor  <msebor@redhat.com>
6506
6507         PR rtl-optimization/19705
6508         * doc/invoke.texi (Options That Control Optimization): Clarify
6509         -fno-branch-count-reg.
6510
6511 2016-02-26  Richard Biener  <rguenther@suse.de>
6512             Jeff Law  <law@redhat.com>
6513
6514         PR tree-optimization/69740
6515         * cfghooks.c (remove_edge): Request loop fixups if we delete
6516         an edge that might turn an irreducible loop into a natural
6517         loop.
6518         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6519         Move after definition of loops_state_clear.
6520
6521 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6522
6523         PR rtl-optimization/69052
6524         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6525         to CONST_WIDE_INT.
6526
6527 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6528
6529         PR tree-optimization/70116
6530         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6531         is_tm_ending stmts and ubsan/asan internal functions.
6532         (find_duplicate): Use it.  Don't test is_tm_ending here.
6533
6534 2016-03-07  Richard Biener  <rguenther@suse.de>
6535
6536         PR tree-optimization/70115
6537         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6538         (propagate_constants_for_unrolling): Use replace_uses_by.
6539
6540 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6541
6542         PR middle-end/69916
6543         * omp-low.c (struct oacc_loop): Add ifns.
6544         (new_oacc_loop_raw): Initialize it.
6545         (finish_oacc_loop): Clear mask & flags if no ifns.
6546         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6547         (oacc_loop_xform_loop): Add ifns arg & adjust.
6548         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6549
6550 2016-03-07  Richard Henderson  <rth@redhat.com>
6551
6552         PR rtl-opt/70061
6553         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6554         (insert_value_copy_on_edge): Likewise.
6555
6556 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6557
6558         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6559
6560 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6561
6562         PR target/62281
6563         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6564
6565 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6566
6567         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6568
6569 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6570
6571         Fix sseimul type attribute.
6572         * config/i386/znver1.md
6573         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6574         znver1_sseimul_avx256_load) : Fix the type attribute.
6575         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6576         pipe usage and latency.
6577
6578 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6579
6580         PR c++/70084
6581         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6582         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6583         to the right type.
6584
6585 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6586
6587         PR c/69973
6588         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6589
6590         PR rtl-optimization/69941
6591         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6592         the reg share its mode.
6593
6594 2016-03-04  Jeff Law  <law@redhat.com>
6595
6596         PR tree-optimization/69196
6597         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6598         If the both SSA_NAMEs are anonymous, then consider them unassociated
6599         and include the PHI in the statement count.
6600
6601 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6602
6603         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6604         construct in oacc routine.  Check for oacc region in oacc routine.
6605
6606 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6607
6608         PR target/70062
6609         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6610         2016-02-22 changes, instead don't recurse if RECUR is already true.
6611         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6612         to pass true to the new argument.
6613         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6614
6615         PR target/70059
6616         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6617         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6618         fixes.
6619         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6620
6621 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6622
6623         PR rtl-optimization/57676
6624         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6625         with flag_checking.
6626
6627 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6628
6629         * tree-vect-patterns.c (search_type_for_mask): Handle
6630         comparison of booleans.
6631
6632 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6633
6634         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6635         Fix @xref usage.
6636
6637         PR debug/69947
6638         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6639         all other ops that have dw_val_class_die_ref operands,
6640         and DW_OP_GNU_entry_value.
6641
6642 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6643
6644         PR rtl-optimization/69904
6645         * config/arm/arm.c (arm_cannot_copy_insn_p):
6646         Return true for load-exclusive instructions.
6647
6648 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6649
6650         PR target/70021
6651         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6652         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6653         the pattern no matter if it is used just by non-pattern, pattern
6654         or mix thereof.
6655         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6656         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6657         oprnd1 def_stmt is in pattern, don't look through it.
6658
6659 2016-03-03  Marek Polacek  <polacek@redhat.com>
6660
6661         PR middle-end/70050
6662         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6663
6664 2016-03-03  Martin Liska  <mliska@suse.cz>
6665
6666         PR tree-optimization/70043
6667         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6668         previous statement if we see a debug statement.
6669
6670 2016-03-03  Richard Biener  <rguenther@suse.de>
6671
6672         PR tree-optimization/55936
6673         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6674         parameter and guard unsafe equivalence use.
6675         (vrp_evaluate_conditional_warnv_with_ops): Always use
6676         safe equivalences but not via the quadratic compare_names
6677         helper.
6678
6679 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6680
6681         PR target/70014
6682         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6683         for operand 1 to s_register_operand. Change predicate for operand
6684         2 to arm_not_immediate_operand.
6685
6686 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6687
6688         * doc/tm.texi: Regenerated.
6689
6690 2016-03-02  Richard Henderson  <rth@redhat.com>
6691
6692         PR rtl-opt/67145
6693         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6694         simplification when all args are positive non-fixed registers.
6695
6696 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6697
6698         * target.def (lra_p): Specify that new ports should use LRA.
6699
6700 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6701
6702         PR libgomp/69555
6703         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6704         gimplify_type_sizes the type they refer to.
6705         (omp_notice_variable): Handle reference vars to VLAs.
6706         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6707         reference to VLA decls in the second pass instead of first pass.
6708
6709 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6710
6711         PR tree-optimization/68659
6712         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6713         new_expr == NULL_TREE.
6714         (get_new_name): Handle ADDR_EXPR.
6715
6716 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6717
6718         PR rtl-optimization/69052
6719         * loop-invariant.c (canonicalize_address): New function.
6720         (inv_can_prop_to_addr_use): Check validity of address expression
6721         which is canonicalized by above function.
6722
6723 2016-03-02  Alan Modra  <amodra@gmail.com>
6724
6725         PR ipa/69990
6726         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6727         larger alignment.
6728
6729 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6730
6731         PR target/70028
6732         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6733         (*movhi_internal): Put mask moves from and to memory separately
6734         from moves from/to GPRs.
6735
6736 2016-03-02  Richard Biener  <rguenther@suse.de>
6737
6738         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6739         GENERIC expressions in GIMPLE.
6740
6741 2016-03-02  Richard Biener  <rguenther@suse.de>
6742
6743         * config/i386/i386.c (type_natural_mode): Fix typo.
6744
6745 2016-03-02  Nick Clifton  <nickc@redhat.com>
6746
6747         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6748
6749 2016-03-02  Richard Biener  <rguenther@suse.de>
6750             Uros Bizjak  <ubizjak@gmail.com>
6751
6752         PR target/67278
6753         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6754
6755 2016-03-02  Richard Biener  <rguenther@suse.de>
6756
6757         PR middle-end/67278
6758         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6759
6760 2016-03-02  Marek Polacek  <polacek@redhat.com>
6761
6762         PR c/67854
6763         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6764         "is promoted to" warning.
6765
6766 2016-03-01  DJ Delorie  <dj@redhat.com>
6767
6768         * config.gcc: Deprecate mep-*.
6769
6770 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6771
6772         PR middle-end/70025
6773         * lra-constraints.c (regno_val_use_in): New.
6774         (match_reload): Use it instead of regno_use_in.
6775
6776 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6777
6778         PR rtl-optimization/70007
6779         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6780         references present in REG_EQUAL notes attached to non-SET patterns.
6781
6782 2016-03-01  Jeff Law  <law@redhat.com>
6783
6784         PR tree-optimization/69196
6785         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6786         Appropriately clamp the number of statements to copy when the
6787         thread path does not traverse a loop backedge.
6788
6789         PR tree-optimization/69196
6790         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6791         Do count some PHIs in the thread path against the insn count.  Decrease
6792         final statement count by one as the control statement in the last
6793         block will get removed.  Remove special cased code for handling PHIs
6794         in the last block.
6795
6796 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6797
6798         PR target/70027
6799         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6800         asm dialect alternatives to explicit GOTPCREL calls.
6801
6802 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6803
6804         PR ada/70017
6805         * ira.c (do_reload): Issue warning for generic stack checking here...
6806         * reload1.c (reload): ...instead of here and streamline it.
6807
6808 2016-03-01  Nick Clifton  <nickc@redhat.com>
6809
6810         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6811
6812 2016-03-01  Richard Biener  <rguenther@suse.de>
6813
6814         PR tree-optimization/69983
6815         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6816         types and fall back to operand_equal_p.
6817
6818 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6819
6820         Revert
6821         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6822
6823         * config/s390/constraints.md ("jm8"): New constraint.
6824         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6825         predicate.
6826         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6827         into ...
6828         ("*setmem_long<setmem_and>"): New pattern.
6829         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6830         into ...
6831         ("*setmem_long_31z<setmem_and>"): New pattern.
6832         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6833         New substitution rules with the required attributes.
6834
6835
6836 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6837
6838         Revert
6839         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6840
6841         * gensupport.c (process_substs_on_one_elem): Split loop to
6842         complete mark_operands_used_in_match_dup on all expressions in the
6843         vector first.
6844         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6845         and remove function.
6846
6847 2016-03-01  Richard Biener  <rguenther@suse.de>
6848
6849         PR middle-end/70022
6850         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6851         vector BIT_FIELD_REF extract.
6852
6853 2016-03-01  Richard Biener  <rguenther@suse.de>
6854
6855         PR tree-optimization/69994
6856         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6857
6858 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6859
6860         PR tree-optimization/69956
6861         * tree-vect-stmts.c (supportable_widening_operation): Support
6862         multi-step conversion of boolean vectors.
6863         (supportable_narrowing_operation): Likewise.
6864
6865 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6866
6867         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6868         anymore.
6869
6870 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6871
6872         * config/s390/subst.md (DSI_VI): New mode iterator.
6873         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6874         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6875         the insn definition.
6876         ("*vec_set<mode>"): Change predicate and add alternative to
6877         support only either register or const_int operands as element
6878         selector.
6879         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6880         operands.
6881         ("vec_extract<mode>"): New expander.
6882         ("*vec_extract<mode>"): New insn definition supporting reg and
6883         const_int element selectors.
6884         ("*vec_extract<mode>_plus"): New insn definition supporting
6885         reg+const_int element selectors.
6886         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6887         following expander+insn definition.
6888         ("<vec_shifts_name><mode>3"): New expander.
6889         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6890
6891 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6892
6893         * config/s390/s390.md ("*tabort_1"): Change predicate to
6894         nonmemory_operand.  Add a second alternative to cover
6895         register as well as const int operands.
6896         ("*tabort_1_plus"): New pattern definition.
6897
6898 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6899
6900         * config/s390/s390.md ("*ashrdi3_cc_31")
6901         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6902         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6903         Merge insn definitions into ...
6904         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6905         New pattern definition.
6906         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6907         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6908         ("*ashr<mode>3_and"): Merge insn definitions into ...
6909         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6910         New pattern definition.
6911         * config/s390/subst.md ("addr_style_op_cc_subst")
6912         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6913         substitutions patterns plus attributes.
6914         Add ashiftrt to SUBST iterator.
6915
6916 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6917
6918         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6919         op2 to nonmemory_operand.
6920         ("*<shift>di3_31", "*<shift>di3_31_and"):
6921         Merge into single pattern definition ...
6922         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6923         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6924         pattern definition ...
6925         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6926         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6927         iterator.
6928
6929 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6930
6931         * config/s390/predicates.md (const_int_6bitset_operand): New
6932         predicate.
6933         * config/s390/s390.md: Include subst.md.
6934         ("rotl<mode>3"): New expander.
6935         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6936         ...
6937         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6938         * config/s390/subst.md: New file.
6939
6940 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6941
6942         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6943         Remove RRR type.  It doesn't really exist.
6944         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6945         attributes.
6946         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6947         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6948         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6949         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6950         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
6951         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
6952         `enabled' attribute.
6953
6954 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6955
6956         * gensupport.c (process_substs_on_one_elem): Split loop to
6957         complete mark_operands_used_in_match_dup on all expressions in the
6958         vector first.
6959         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6960         and remove function.
6961
6962 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
6963
6964         PR target/69706
6965         * config/sparc/sparc.c (NWORDS_UP): Rename to...
6966         (CEIL_NWORDS): ...this.  Use CEIL macro.
6967         (compute_fp_layout): Adjust to above renaming.
6968         (function_arg_union_value): Likewise.
6969         (sparc_arg_partial_bytes): Likewise.
6970         (sparc_function_arg_advance): Likewise.
6971
6972 2016-02-29  Jeff Law  <law@redhat.com>
6973
6974         PR tree-optimization/70005
6975         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
6976         where an object with a boolean range is compared against a value
6977         outside [0..1].
6978
6979         PR tree-optimization/69999
6980         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
6981         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
6982         loop cleanups.
6983
6984 2016-02-29  Richard Biener  <rguenther@suse.de>
6985
6986         PR tree-optimization/69994
6987         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
6988         (get_unary_op): Look through nop conversions.
6989         (ops_equal_values_p): New function, look for equality diregarding
6990         nop conversions.
6991         (eliminate_plus_minus_pair): Use ops_equal_values_p
6992         (repropagate_negates): Do not use get_unary_op here.
6993
6994 2016-02-29  Martin Liska  <mliska@suse.cz>
6995
6996         * system.h: Poison ENABLE_CHECKING macro.
6997
6998 2016-02-29  Martin Liska  <mliska@suse.cz>
6999
7000         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
7001         is presented in dump flags.
7002         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7003         (hsa_regalloc): Likewise.
7004
7005 2016-02-19  Richard Biener  <rguenther@suse.de>
7006
7007         PR tree-optimization/69980
7008         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
7009         permutation of those we need to keep.
7010
7011 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7012
7013         PR target/69706
7014         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
7015         (NWORDS_UP): ...this
7016         (init_cumulative_args): Minor tweaks.
7017         (sparc_promote_function_mode): Likewise.
7018         (scan_record_type): Delete.
7019         (traverse_record_type): New function template.
7020         (classify_data_t): New structure type.
7021         (classify_registers): New inline function.
7022         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
7023         exhausted.  Instantiate traverse_record_type on classify_registers and
7024         deal with the case of a structure passed in slot #15 with no FP field
7025         in the first word.
7026         (assign_data_t): New structure type.
7027         (compute_int_layout): New static function.
7028         (compute_fp_layout): Likewise.
7029         (count_registers): New inline function.
7030         (assign_int_registers): New static function.
7031         (assign_fp_registers): Likewise.
7032         (assign_registers): New inline function.
7033         (function_arg_record_value_1): Delete.
7034         (function_arg_record_value_2): Likewise.
7035         (function_arg_record_value_3): Likewise.
7036         (function_arg_record_value): Adjust to above changes.  Instantiate
7037         traverse_record_type on count_registers to first count the number of
7038         registers to be used and then on assign_registers to assign them.
7039         (function_arg_union_value): Adjust to above renaming.
7040         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
7041         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
7042         case of a structure passed in slot #15
7043         (sparc_function_arg_advance): Likewise.
7044         (function_arg_padding): Minor tweak.
7045
7046 2016-02-29  Richard Biener  <rguenther@suse.de>
7047
7048         PR tree-optimization/69720
7049         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
7050         the adjustment_def path for possibly vectorized defs.
7051         (vect_create_epilog_for_reduction): Handle vectorized initial
7052         defs properly.
7053
7054 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7055
7056         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
7057
7058 2016-02-27  Jeff Law  <law@redhat.com>
7059
7060         Revert
7061         2016-02-26  Richard Biener  <rguenther@suse.de>
7062                     Jeff Law  <law@redhat.com>
7063
7064         PR tree-optimization/69740
7065         * cfghooks.c (remove_edge): Request loop fixups if we delete
7066         an edge that might turn an irreducible loop into a natural
7067         loop.
7068
7069 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
7070
7071         PR rtl-optimization/69896
7072         * tree-vect-generic.c (get_compute_type): Avoid single element
7073         vector types.
7074
7075 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
7076
7077         Rename the AArch64 tuning option and related functions to enable the
7078         Newton series for the reciprocal square root to reflect its
7079         approximative characteristic.
7080
7081         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
7082         function to "aarch64_emit_approx_rsqrt".
7083         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
7084         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
7085         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
7086         (xgene1_tunings): Likewise.
7087         (use_rsqrt_p): Likewise.
7088         (aarch64_emit_swrsqrt): Use new function name.
7089         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
7090         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
7091         text explaining this option.
7092         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
7093
7094 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7095
7096         PR target/69969
7097         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7098         complain about -mallow-movmisalign without -mvsx if
7099         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
7100
7101 2016-02-26  Joel Sherrill  <joel@rtems.org>
7102
7103         * config.gcc: Add x86_64-*-rtems*.
7104         * gcc/config/i386/rtems-64.h: New file.
7105
7106 2016-02-26  Joel Sherrill  <joel@rtems.org>
7107
7108         * config.gcc: Add aarch64-*-rtems*.
7109         * gcc/config/aarch64/rtems.h: New file.
7110
7111 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7112
7113         PR target/69946
7114         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7115         shift amount using %h.  Add comment.
7116
7117 2016-02-26  Richard Biener  <rguenther@suse.de>
7118             Jeff Law  <law@redhat.com>
7119
7120         PR tree-optimization/69740
7121         * cfghooks.c (remove_edge): Request loop fixups if we delete
7122         an edge that might turn an irreducible loop into a natural
7123         loop.
7124
7125 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7126
7127         PR middle-end/69920
7128         * tree-sra.c (sra_modify_assign): Do not remove loads of
7129         uninitialized aggregates to SSA_NAMEs.
7130
7131 2016-02-26  Richard Henderson  <rth@redhat.com>
7132
7133         PR target/69709
7134         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7135         pseudo in case the target rtx matches the source of the left
7136         shift.
7137
7138 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7139
7140         PR hsa/69568
7141         * hsa.h (hsa_type_packed_p): Declare.
7142         * hsa.c (hsa_type_packed_p): New function.
7143         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7144         loads.
7145         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7146         * hsa-brig.c (emit_basic_insn): Likewise.
7147
7148 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7149
7150         pr hsa/69674
7151         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7152         pointers.
7153         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7154
7155 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7156
7157         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7158         hsa_op_with_type operands.
7159         (hsa_unsigned_type_for_type): Declare.
7160         * hsa.c (hsa_unsigned_type_for_type): New function.
7161         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7162         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7163         the finalizer.  Do not emit extra move.
7164
7165 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7166
7167         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7168         atomic operations in private segment.
7169
7170 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7171
7172         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7173         statements to wi->info.  Also disallow omp simd constructs.
7174         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7175         for not gridifying.  Dump special string for omp_for.
7176
7177 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7178
7179         PR target/69245
7180         * config/aarch64/aarch64.c (aarch64_set_current_function):
7181         Save/restore target globals when switching to
7182         target_option_default_node.
7183
7184 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7185
7186         PR target/69613
7187         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7188         Return 0 if !SHIFT_COUNT_TRUNCATED.
7189
7190 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7191             Eric Botcazou  <ebotcazou@adacore.com>
7192
7193         PR rtl-optimization/69891
7194         * dse.c (scan_insn): If we can't figure out memset arguments
7195         or they are non-constant, call clear_rhs_from_active_local_stores.
7196
7197 2016-02-26  Martin Liska  <mliska@suse.cz>
7198
7199         * doc/extend.texi: Mention clog10, clog10f an clog10l
7200         in Builtins section.
7201
7202 2016-02-26  Martin Liska  <mliska@suse.cz>
7203
7204         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7205         CHECKING_P.
7206         (resolve_args_picking_1): Likewise.
7207         * dwarf2out.h (struct GTY): Likewise.
7208
7209 2016-02-26  Martin Liska  <mliska@suse.cz>
7210
7211         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7212         with flag_checking.
7213         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7214
7215 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7216             Martin Liska  <mliska@suse.cz>
7217
7218         * doc/install.texi: Mention --enable-valgrind-annotations.
7219
7220 2016-02-26  Richard Biener  <rguenther@suse.de>
7221
7222         PR tree-optimization/69551
7223         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7224         looking through aliases adjust DECL_PT_UID to refer to the
7225         ultimate alias target.
7226
7227 2016-02-25  Martin Liska  <mliska@suse.cz>
7228
7229         PR middle-end/69919
7230         * alloc-pool.c (after_memory_report): New variable.
7231         * alloc-pool.h (base_pool_allocator ::release): Do not use
7232         the infrastructure if after_memory_report.
7233         * toplev.c (toplev::main): Mark after memory report.
7234
7235 2016-02-25  Richard Biener  <rguenther@suse.de>
7236
7237         PR tree-optimization/48795
7238         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7239
7240 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7241
7242         PR driver/68463
7243         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7244         offloading is enabled and -fopenacc or -fopenmp is specified.
7245         (CRTOFFLOADEND): Likewise.
7246         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7247         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7248         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7249         (offload_objects_file_name): New static var.
7250         (tool_cleanup): Remove offload_objects_file_name file.
7251         (find_offloadbeginend): Replace with ...
7252         (find_crtoffloadtable): ... this.
7253         (run_gcc): Remove offload_argc and offload_argv.
7254         Get offload_objects_file_name from -foffload-objects=... option.
7255         Read names of object files with offload from this file, pass them to
7256         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7257         don't pass offloadbegin and offloadend to the linker.  Don't pass
7258         offload non-LTO files to the linker, because now they're not claimed.
7259
7260 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7261
7262         PR ipa/69630
7263         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7264         on builtin_unreachable.
7265
7266 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7267
7268         PR rtl-optimization/69896
7269         * regcprop.c: Include cfgrtl.h.
7270         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7271         than remembered mode, either delete it (if noop_move_p), or
7272         treat like copy_p but not noop_p instruction.
7273
7274 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7275
7276         PR debug/69705
7277         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7278         - allow NULL decl for Fortran DW_TAG_common_block variables.
7279
7280 2016-02-24  Jason Merrill  <jason@redhat.com>
7281
7282         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7283
7284 2016-02-24  Richard Biener  <rguenther@suse.de>
7285             Jakub Jelinek  <jakub@redhat.com>
7286
7287         PR middle-end/69760
7288         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7289         conditionally executed ops to well-defined overflow behavior.
7290
7291 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7292
7293         PR middle-end/69915
7294         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7295         elements.
7296
7297 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7298
7299         PR rtl-optimization/69886
7300         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7301         argument.  Use it when checking validity of set instructions.
7302         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7303         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7304         callsite.
7305         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7306         * store-motion.c (find_moveable_store): Update
7307         can_assign_to_reg_without_clobbers_p callsite.
7308
7309 2016-02-24  Richard Biener  <rguenther@suse.de>
7310
7311         PR middle-end/68963
7312         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7313         bogus check.
7314         (record_nonwrapping_iv): Do not fall back to the low/high bound
7315         for non-constant IV bases if the stmt is not always executed.
7316
7317 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7318
7319         * config/arm/arm-cores.def (cortex-a32): New entry.
7320         * config/arm/arm-tables.opt: Regenerate.
7321         * config/arm/arm-tune.md: Regenerate.
7322         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7323         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7324         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7325         for -mcpu and -mtune.
7326
7327 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7328
7329         PR target/69875
7330         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7331         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7332         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7333         (atomic_loaddi_1): Delete.
7334         (atomic_loaddi): Rewrite expander using the above changes.
7335
7336 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7337
7338         PR c/69918
7339         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7340         2 to 3.
7341
7342 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7343             Richard Biener  <rguenth@suse.de>
7344
7345         PR middle-end/69909
7346         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7347         set_mem_attributes if tem is SSA_NAME which got expanded
7348         as a MEM.
7349
7350 2016-02-24  Richard Biener  <rguenther@suse.de>
7351
7352         PR tree-optimization/69907
7353         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7354         end of permutations for BB vectorization.
7355
7356 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7357
7358         * config/arm/arm-c.c (arm_option_override): Initialize
7359         target_option_current_node.
7360         * config/arm/arm.c (arm_pragma_target_parse): Replace
7361         build_target_option_node call by target_option_current_node.
7362         Set target_option_current_node.
7363         Fix comments.
7364
7365 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7366
7367         PR target/69810
7368         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7369         define_insn_and_split to define_insn.
7370         (zero_extendqi<mode>2_dot2): Same.
7371         (extendqi<mode>2_dot): Same.
7372         (extendqi<mode>2_dot2): Same.
7373
7374 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7375
7376         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7377         and add bypass for AES{D,E} and AESMC pairs.
7378         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7379         and AESMC pairs.
7380
7381 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7382
7383         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7384         series for reciprocal square root in Exynos M1.
7385
7386 2016-02-23  Martin Sebor  <msebor@redhat.com>
7387
7388         PR c/69759
7389         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7390         __builtin_alloca_with_align.
7391
7392 2016-02-23  Richard Henderson  <rth@redhat.com>
7393
7394         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7395         (ix86_register_pragmas): Remove __seg_tls.
7396         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7397         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7398         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7399         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7400         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7401         * doc/extend.texi (__seg_tls): Remove item.
7402
7403 2016-02-23  Richard Biener  <rguenther@suse.de>
7404
7405         * alloc-pool.h (struct allocation_object): Make id member
7406         conditional on CHECKING_P again.
7407         (get_instance): Adjust.
7408         (base_pool_allocator): Likewise.
7409
7410 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7411
7412         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7413         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7414         zero.
7415         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7416         flag_openacc.
7417         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7418
7419 2016-02-23  Richard Biener  <rguenther@suse.de>
7420
7421         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7422         * bitmap.h (struct bitmap_usage): Likewise.
7423         (bitmap_move): Declare.
7424         * bitmap.c (register_overhead): Take size_t argument.
7425         (bitmap_move): New function.
7426         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7427         to properly account overhead.
7428         * tree.c (free_node): Use tree_size.
7429
7430 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7431
7432         PR c++/69902
7433         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7434         when inverting comparison.
7435
7436         PR c/69900
7437         * common.opt (Wunreachable-code): Add Warning flag.
7438
7439 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7440             Jakub Jelinek  <jakub@redhat.com>
7441
7442         PR c/69911
7443         * cgraphunit.c (check_global_declaration): Check main_input_filename
7444         and DECL_SOURCE_FILE are not NULL.
7445
7446 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7447
7448         PR tree-optimization/69666
7449         * tree-sra.c (sra_modify_assign): Do not attempt to create
7450         default_def replacements for unscalarizable regions.
7451
7452 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7453
7454         PR c/28901
7455         * cgraphunit.c (check_global_declaration): Check level of
7456         warn_unused_const_variable and main_input_filename.
7457         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7458         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7459         (-Wunused-const-variable): Explain levels 1 and 2.
7460
7461 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7462
7463         PR target/69888
7464         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7465         identical arguments.  Formatting and spelling fixes.
7466
7467         PR target/69885
7468         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7469         be specified.
7470
7471         PR target/69894
7472         PR target/69895
7473         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7474         and m68k-devices.def.
7475         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7476         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7477
7478 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7479
7480         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7481         and HImode registers.
7482
7483 2016-02-22  Richard Biener  <rguenther@suse.de>
7484
7485         PR tree-optimization/69882
7486         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7487         preserve permutations present because of gaps.
7488         (vect_supported_load_permutation_p): Always continue checking
7489         permutations after vect_attempt_slp_rearrange_stmts.
7490
7491 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7492
7493         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7494         min_profitable_estimate, rather than min_profitable_iters.
7495
7496 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7497
7498         PR target/69885
7499         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7500         SImode for last match_operand.
7501
7502 2016-02-22  Martin Liska  <mliska@suse.cz>
7503
7504         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7505         return bitsize - 1 as the return value.
7506
7507 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7508
7509         PR target/69806
7510         PR target/54089
7511         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7512         Handle negative shift counts.
7513         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7514         force_reg on the shift constant.
7515         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7516         (lshrsi3_d): Handle negative shift counts.
7517
7518 2016-02-22  Richard Biener  <rguenther@suse.de>
7519             Tom de Vries  <tom@codesourcery.com>
7520
7521         * graph.c: Include dumpfile.h.
7522         (print_graph_cfg): Split into three overloads.
7523         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7524
7525 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7526
7527         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7528         dump-fn.
7529
7530 2016-02-22  Richard Biener  <rguenther@suse.de>
7531
7532         PR ipa/37448
7533         * ipa-inline-transform.c (inline_call): When not updating
7534         overall summaries adjust self size by the growth estimate.
7535         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7536         hash-set, do not update overall summaries here.  Renamed from ...
7537         (inline_to_all_callers): ... this which is now wrapping the
7538         above and performing delayed overall summary update.
7539         (early_inline_small_functions): Delay updating of the overall
7540         summary.
7541
7542 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7543
7544         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7545         variable.
7546
7547 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7548
7549         PR driver/69805
7550         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7551         :%* in %:gt() argument.
7552         (greater_than_spec_func): Adjust for expecting only numbers,
7553         if there are more than two numbers, compare the last two.
7554
7555 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7556
7557         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7558         -Wnarrowing with -std.
7559
7560 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7561
7562         PR c++/69851
7563         * expr.c (store_field): Don't use bit-field path if exp is
7564         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7565         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7566         and the assignment can be performed by bitwise copy.  Formatting
7567         fix.
7568
7569         PR middle-end/69838
7570         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7571         call copy_reg_eh_region_note_forward on before and/or after sequences
7572         and remove note from insn if it no longer can throw.
7573
7574         PR target/69820
7575         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7576         if TARGET_AVX512BW.
7577
7578 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7579
7580         * config/s390/vector.md: Add missing commutative operand markers
7581         to the patterns which qualify for one.
7582         * config/s390/vx-builtins.md: Likewise.
7583
7584 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7585
7586         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7587         types to mode iterators.
7588         (vec_double): ... and mode attribute.
7589         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7590
7591 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7592
7593         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7594         Change the predicate of op2 from nonimmediate to general and let
7595         reload fix it if necessary.
7596
7597 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7598
7599         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7600
7601 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7602
7603         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7604         mode.
7605
7606 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7607
7608         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7609         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7610         * config/s390/s390.md ("movstr<P:mode>"): Call
7611         s390_expand_vec_movstr.
7612
7613 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7614
7615         * config/s390/s390.md: Add missing output modifier for operand 1
7616         to print it as address properly.
7617
7618 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7619
7620         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7621         * config/s390/2964.md: New file.
7622         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7623         of insn grouping attributes depending on the CPU level.
7624         (s390_get_unit_mask): New function.
7625         (s390_sched_score): Remove the OOO from the scheduling macros.
7626         Add loop to calculate a score for the instruction mix.
7627         (s390_sched_reorder): Likewise plus improve debug output.
7628         (s390_sched_variable_issue): Rename macros as above.  Calculate
7629         the unit distances after actually scheduling an insn.  Improve
7630         debug output.
7631         (s390_sched_init): Clear last_scheduled_unit_distance array.
7632         * config/s390/s390.md: Include 2964.md.
7633
7634 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7635
7636         PR target/69671
7637         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7638         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7639         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7640         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7641         *avx512f_<code>v8div16qi2_mask_1): New insns.
7642
7643 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7644
7645         PR target/68404
7646         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7647         2016-02-09 change.
7648
7649         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7650         earlyclobber from target.  Use wF constraint for fused memory
7651         address.
7652         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7653
7654 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7655             Martin Liska  <mliska@suse.cz>
7656
7657         PR sanitizer/69863
7658         * cfgexpand.c (asan_sanitize_stack_p): New function.
7659         (partition_stack_vars): Use the function.
7660         (expand_stack_vars): Likewise.
7661         (defer_stack_allocation): Likewise.
7662         (expand_used_vars): Likewise.
7663
7664 2016-02-18  Richard Biener  <rguenther@suse.de>
7665
7666         PR middle-end/69553
7667         * fold-const.c (operand_equal_p): Properly compare offsets for
7668         IMAGPART_EXPR and ARRAY_REF.
7669
7670 2016-02-18  Nick Clifton  <nickc@redhat.com>
7671
7672         PR target/62254
7673         PR target/69610
7674         * config/arm/arm.c (arm_option_override_internal): Disable
7675         interworking if the target does not support thumb instructions.
7676         (arm_reload_in_hi): Handle the case where a register to register
7677         move needs reloading because there is no simple pattern to handle
7678         it.
7679         (arm_reload_out_hi): Likewise.
7680
7681 2016-02-18  Richard Biener  <rguenther@suse.de>
7682
7683         PR middle-end/69854
7684         * match.pd: Don't use fold_binary or fold_unary for folding
7685         constants.
7686
7687 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7688
7689         PR c++/69850
7690         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7691         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7692         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7693         warn on gimple_no_warning_p statements.
7694
7695 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7696
7697         * doc/extend.texi (C++ Attributes): Correct description of
7698         warn_unused type attribute.
7699
7700 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7701
7702         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7703         correct instruction.
7704
7705 2016-02-17  Richard Biener  <rguenther@suse.de>
7706
7707         PR rtl-optimization/69609
7708         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7709         (find_traces_1_round): When ending a trace update cached priority
7710         of successors.
7711         (bb_to_key): Use cached priority when available.
7712         (copy_bb): Initialize cached priority.
7713         (reorder_basic_blocks_software_trace_cache): Likewise.
7714
7715 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7716
7717         PR target/69161
7718         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7719         New predicate.
7720         (aarch64_comparison_operator): Break overly long line into two.
7721         (aarch64_comparison_operation): Likewise.
7722         * config/aarch64/aarch64.md (cstorecc4): Use
7723         aarch64_comparison_operator_mode instead of
7724         aarch64_comparison_operator.
7725         (cstore<mode>4): Likewise.
7726         (aarch64_cstore<mode>): Likewise.
7727         (*cstoresi_insn_uxtw): Likewise.
7728         (cstore<mode>_neg): Likewise.
7729         (*cstoresi_neg_uxtw): Likewise.
7730
7731 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7732
7733         PR target/69161
7734         * config/arm/predicates.md (arm_comparison_operator_mode):
7735         New predicate.
7736         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7737         instead of arm_comparison_operator.
7738         (*mov_negscc): Likewise.
7739         (*mov_notscc): Likewise.
7740         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7741         (*thumb2_mov_negscc): Likewise.
7742         (*thumb2_mov_negscc_strict_it): Likewise.
7743         (*thumb2_mov_notscc): Likewise.
7744         (*thumb2_mov_notscc_strict_it): Likewise.
7745
7746 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7747
7748         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7749         Add missing return.
7750
7751 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7752
7753         * config/visium/visium.c (machine_libfunc_index): New enum.
7754         (machine_libfuncs): New structure.
7755         (visium_libfuncs): New static variable.
7756         (TARGET_INIT_LIBFUNCS): Define to...
7757         (visium_init_libfuncs): ...this.  New function.
7758         (expand_block_move_4): Use the appropriate libfunc.
7759         (expand_block_move_2): Likewise.
7760         (expand_block_move_1): Likewise.
7761         (expand_block_set_4): Likewise.
7762         (expand_block_set_2): Likewise.
7763         (expand_block_set_1): Likewise.
7764         (visium_trampoline_init): Likewise.
7765
7766 2016-02-17  Nick Clifton  <nickc@redhat.com>
7767
7768         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7769         TI's devices.csv file as of March 2016.
7770
7771 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7772
7773         PR Target/48344
7774         * opts-global.c (handle_common_deferred_options): Introduce and
7775         initialize two global variables to remember command-line options
7776         specifying a stack-limiting register.
7777         * opts.h: Add extern declarations of the two new global variables.
7778         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7779         variable based on the values of the two new global variables.
7780
7781 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7782
7783         PR c/69835
7784         * common.opt (Wnonnull-compare): New warning.
7785         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7786         of arguments against NULL.
7787         (-Wnonnull-compare): Document.
7788         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7789         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7790         * passes.def (pass_warn_nonnull_compare): Add.
7791         * gimple-ssa-nonnull-compare.c: New file.
7792
7793 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7794
7795         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7796         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7797
7798 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7799
7800         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7801         reciprocal sqrt for -mlow-precision-recip-sqrt.
7802
7803 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7804             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7805
7806         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7807         always use lane loads to construct non-constant vectors.
7808
7809 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7810
7811         * config/aarch64/aarch64.md
7812         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7813         constraints for operand 3.
7814         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7815
7816 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7817             Richard Biener  <rguenther@suse.de>
7818
7819         PR tree-optimization/69820
7820         * tree-vect-patterns.c (type_conversion_p): Return false if
7821         *orig_type is unsigned single precision or boolean.
7822         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7823         Formatting fix.
7824
7825 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7826
7827         PR rtl-optimization/69764
7828         PR rtl-optimization/69771
7829         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7830         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7831
7832 2016-02-16  Richard Biener  <rguenther@suse.de>
7833
7834         PR tree-optimization/69776
7835         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7836         sets from caller.
7837         (indirect_refs_may_alias_p): Likewise.
7838         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7839         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7840         according to tbaa_p.
7841         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7842         (optimize_stmt): For redundant store discovery do not allow tbaa.
7843
7844 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7845
7846         PR tree-optimization/69714
7847         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7848         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7849
7850 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7851
7852         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7853         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7854         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7855         * config/arc/arc.c (arc_init): Check FPU options.
7856         (get_arc_condition_code): Handle new CC_FPU* modes.
7857         (arc_select_cc_mode): Likewise.
7858         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7859         register pair only. Allow access for ARCv2 accumulator.
7860         (gen_compare_reg): Whenever we have FPU support use FPU compare
7861         instructions.
7862         (arc_reorg): Don't generate brcc insns when FPU compare
7863         instructions are involved.
7864         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7865         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7866         floating point emulation.
7867         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7868         (REVERSE_CONDITION): Add new CC_FPU* modes.
7869         (TARGET_FP_SP_BASE): Define.
7870         (TARGET_FP_DP_BASE): Likewise.
7871         (TARGET_FP_SP_FUSED): Likewise.
7872         (TARGET_FP_DP_FUSED): Likewise.
7873         (TARGET_FP_SP_CONV): Likewise.
7874         (TARGET_FP_DP_CONV): Likewise.
7875         (TARGET_FP_SP_SQRT): Likewise.
7876         (TARGET_FP_DP_SQRT): Likewise.
7877         (TARGET_FP_DP_AX): Likewise.
7878         * config/arc/arc.md (ARCV2_ACC): New constant.
7879         (type): New fpu type attribute.
7880         (SDF): Conditional iterator.
7881         (cstore<mode>, cbranch<mode>): Change expand condition.
7882         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7883         handles FPU/FPX cases as well.
7884         * config/arc/arc.opt (mfpu): New option.
7885         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7886         Renamed.
7887         (adddf3, muldf3, subdf3): Removed.
7888         * config/arc/predicates.md (proper_comparison_operator): Recognize
7889         CC_FPU* modes.
7890         * config/arc/fpu.md: New file.
7891         * doc/invoke.texi (ARC Options): Document mfpu option.
7892
7893 2016-02-16  Richard Biener  <rguenther@suse.de>
7894
7895         PR rtl-optimization/69291
7896         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7897         noce_operand_ok check.
7898
7899 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7900
7901         PR lto/67709
7902         * omp-low.c (simd_clone_create): Remove call to
7903         symtab->call_cgraph_insertion_hooks.
7904
7905 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7906
7907         PR tree-optimization/69802
7908         * tree-ssa-reassoc.c (update_range_test): If op is
7909         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7910         op == 1 test of precision 1 integral op, otherwise handle
7911         that case as op itself.  Fix up formatting.
7912         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7913         up formatting.
7914
7915 2016-02-16  Richard Biener  <rguenther@suse.de>
7916
7917         PR tree-optimization/69586
7918         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7919         types for conversion sources.
7920
7921 2016-02-16  Richard Biener  <rguenther@suse.de>
7922
7923         PR middle-end/69801
7924         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7925         mask OEP_ADDRESS_OF.
7926
7927 2016-02-16  Alan Modra  <amodra@gmail.com>
7928
7929         PR target/68973
7930         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7931         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7932         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7933         (p8_mtvsrwz): New.
7934         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7935         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7936         (p8_fmrgow_<mode>): Likewise.
7937         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7938         changes.
7939         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7940         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7941         to use movdi_internal64.  Remove op0_di.
7942         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7943
7944 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7945
7946         Add support for the FCCMP insn types
7947
7948         * config/aarch64/aarch64.md (fccmp): Change insn type.
7949         (fccmpe): Likewise.
7950         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
7951         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
7952         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
7953         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
7954         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
7955         * config/arm/types.md (fccmps): Add new insn type.
7956         (fccmpd): Likewise.
7957
7958 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7959
7960         * alias.c (get_alias_set): Fix a typo in comment.
7961
7962 2016-02-15  Richard Biener  <rguenther@suse.de>
7963
7964         PR tree-optimization/69595
7965         * match.pd: Complete range test simplification to true.
7966
7967 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
7968
7969         PR rtl-optimization/69648
7970         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
7971         pic_offset_table_rtx.
7972
7973         PR rtl-optimization/69752
7974         * ira.c (update_equiv_regs): When looking for more than a single SET,
7975         also take other side effects into account.
7976
7977 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7978
7979         * config/s390/s390.c (s390_function_profiler): Add a new sequence
7980         for z900+ CPUs in 31-bit mode.
7981
7982 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
7983
7984         * common/config/s390/s390-common.c (s390_supports_split_stack):
7985         New function.
7986         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
7987         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
7988         * config/s390/s390.c (struct machine_function): New field
7989         split_stack_varargs_pointer.
7990         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
7991         in s390_emit_prologue.
7992         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
7993         vararg pointer.
7994         (morestack_ref): New global.
7995         (SPLIT_STACK_AVAILABLE): New macro.
7996         (s390_expand_split_stack_prologue): New function.
7997         (s390_live_on_entry): New function.
7998         (s390_va_start): Use split-stack vararg pointer if appropriate.
7999         (s390_asm_file_end): Emit the split-stack note sections.
8000         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
8001         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
8002         (UNSPECV_SPLIT_STACK_CALL): New unspec.
8003         (UNSPECV_SPLIT_STACK_DATA): New unspec.
8004         (split_stack_prologue): New expand.
8005         (split_stack_space_check): New expand.
8006         (split_stack_data): New insn.
8007         (split_stack_call): New expand.
8008         (split_stack_call_*): New insn.
8009         (split_stack_cond_call): New expand.
8010         (split_stack_cond_call_*): New insn.
8011
8012 2016-02-15  Richard Biener  <rguenther@suse.de>
8013
8014         PR tree-optimization/69783
8015         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8016         Add trivially correct cases.
8017
8018 2016-02-15  Tom de Vries  <tom@codesourcery.com>
8019
8020         PR lto/69655
8021         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
8022         do_force_output.
8023         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
8024
8025 2016-02-15  Richard Biener  <rguenther@suse.de>
8026
8027         PR tree-optimization/69776
8028         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8029         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
8030         indicate whether we can use TBAA to disambiguate against stores.
8031         Use alias-set zero if not.
8032         (visit_reference_op_store): Do not use TBAA when looking up
8033         redundant stores.
8034         * tree-ssa-pre.c (compute_avail): Use TBAA here.
8035         (eliminate_dom_walker::before_dom_children): But not when looking
8036         up redundant stores.
8037
8038 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
8039
8040         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
8041
8042 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8043
8044         *  config/i386/znver1.md
8045         (znver1_pop, znver1_pop_mem,
8046         znver1_load_imov_double_store,
8047         znver1_load_imov_direct_store,
8048         znver1_load_imov_direct_load,
8049         znver1_load_imov_double_load): Add new.
8050         (znver1_insn, znver1_insn_load): Add icmov type.
8051         (znver1_sseavx_fma,
8052         znver1_sseavx_fma_load,
8053         znver1_avx256_fma,
8054         znver1_avx256_fma_load): Fix pipe usage.
8055
8056 2016-02-14  Alan Modra  <amodra@gmail.com>
8057
8058         PR target/68973
8059         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
8060         with an invalid hard reg, reload just the reg not the entire
8061         pre/post-inc/dec address expression.
8062
8063 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8064
8065         PR target/67260
8066         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
8067         fixed R1_REG scratch reg.
8068         (sibcall_value_pcrel_fdpic): Likewise.
8069
8070 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8071
8072         PR target/67636
8073         PR target/64345
8074         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
8075
8076 2016-02-12  Walter Lee  <walt@tilera.com>
8077
8078         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
8079         * config/tilegx/t-tilegx: Likewise.
8080
8081 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8082
8083         PR other/69554
8084         * diagnostic-show-locus.c (struct line_span): New struct.
8085         (layout::get_first_line): Delete.
8086         (layout::get_last_line): Delete.
8087         (layout::get_num_line_spans): New member function.
8088         (layout::get_line_span): Likewise.
8089         (layout::print_heading_for_line_span_index_p): Likewise.
8090         (layout::get_expanded_location): Likewise.
8091         (layout::calculate_line_spans): Likewise.
8092         (layout::m_first_line): Delete.
8093         (layout::m_last_line): Delete.
8094         (layout::m_line_spans): New field.
8095         (layout::layout): Update comment.  Replace m_first_line and
8096         m_last_line with m_line_spans, replacing their initialization
8097         with a call to calculate_line_spans.
8098         (diagnostic_show_locus): When printing source lines and
8099         annotations, rather than looping over a single span
8100         of lines, instead loop over each line_span within
8101         the layout, with an inner loop over the lines within them.
8102         Call the context's start_span callback when changing line spans.
8103         * diagnostic.c (diagnostic_initialize): Initialize start_span.
8104         (diagnostic_build_prefix): Break out the building of the location
8105         part of the string into...
8106         (diagnostic_get_location_text): ...this new function, rewriting
8107         it from nested ternary expressions to a sequence of "if"
8108         statements.
8109         (default_diagnostic_start_span_fn): New function.
8110         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8111         (diagnostic_context::start_span): New field.
8112         (default_diagnostic_start_span_fn): New prototype.
8113
8114 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8115
8116         PR driver/69779
8117         * gcc.c (driver::finalize): Fix cleanup of "specs".
8118
8119 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8120
8121         PR driver/69265
8122         PR driver/69453
8123         * gcc.c (driver::driver): Initialize m_option_suggestions.
8124         (driver::~driver): Clean up m_option_suggestions.
8125         (suggest_option): Convert to...
8126         (driver::suggest_option): ...this, and split out into
8127         driver::build_option_suggestions and find_closest_string.
8128         (driver::build_option_suggestions): New function, from
8129         first half of suggest_option.  Special-case
8130         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8131         the sanitizer_opts array.  For options of enum types, add the
8132         various enum values to the candidate strings.
8133         (driver::handle_unrecognized_options): Remove "const".
8134         * gcc.h (driver::handle_unrecognized_options): Likewise.
8135         (driver::build_option_suggestions): New decl.
8136         (driver::suggest_option): New decl.
8137         (driver::m_option_suggestions): New field.
8138         * opts-common.c (add_misspelling_candidates): New function.
8139         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8140         and make non-static.
8141         * opts.h (sanitizer_opts): New array decl.
8142         (add_misspelling_candidates): New function decl.
8143         * spellcheck.c (find_closest_string): New function.
8144         * spellcheck.h (find_closest_string): New function decl.
8145
8146 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8147
8148         PR rtl-optimization/69764
8149         PR rtl-optimization/69771
8150         * optabs.c (expand_binop_directly): For shift_optab_p, force
8151         convert_modes with VOIDmode if xop1 has VOIDmode.
8152
8153 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8154
8155         PR target/69729
8156         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8157         to correctly determine instrumentation thunks.
8158
8159 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR ipa/69241
8162         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8163         type by reference, force lhs on the call.
8164
8165         PR ipa/68672
8166         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8167         Compute retval and retbnd early in all cases if split_part_return_p
8168         and return_bb is not EXIT.  Remove all clobber stmts and reset
8169         all debug stmts that refer to SSA_NAMEs defined in split part,
8170         except if it is retval, in that case replace the old retval with the
8171         lhs of the call to the split part.
8172
8173 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8174
8175         revert:
8176         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8177
8178         PR middle-end/66726
8179         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8180         whose result is used in PHI.
8181         (maybe_optimize_range_tests): Likewise.
8182         (final_range_test_p): Likweise.
8183
8184 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8185
8186         PR middle-end/66726
8187         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8188         whose result is used in PHI.
8189         (maybe_optimize_range_tests): Likewise.
8190         (final_range_test_p): Likweise.
8191
8192 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8193
8194         * cgraph.c: Spelling fixes - behaviour -> behavior and
8195         neighbour -> neighbor.
8196         * target.def: Likewise.
8197         * sel-sched.c: Likewise.
8198         * config/mips/mips.c: Likewise.
8199         * config/arc/arc.md: Likewise.
8200         * config/arm/cortex-a57.md: Likewise.
8201         * config/arm/arm.c: Likewise.
8202         * config/arm/neon.md: Likewise.
8203         * config/arm/arm-c.c: Likewise.
8204         * config/vms/vms-c.c: Likewise.
8205         * config/s390/s390.c: Likewise.
8206         * config/i386/znver1.md: Likewise.
8207         * config/i386/i386.c: Likewise.
8208         * config/ia64/hpux-unix2003.h: Likewise.
8209         * config/msp430/msp430.md: Likewise.
8210         * config/rx/rx.c: Likewise.
8211         * config/rx/rx.md: Likewise.
8212         * config/aarch64/aarch64-simd.md: Likewise.
8213         * config/aarch64/aarch64.c: Likewise.
8214         * config/nvptx/nvptx.c: Likewise.
8215         * config/bfin/bfin.c: Likewise.
8216         * config/cris/cris.opt: Likewise.
8217         * config/rs6000/rs6000.c: Likewise.
8218         * target.h: Likewise.
8219         * spellcheck.c: Likewise.
8220         * ira-build.c: Likewise.
8221         * tree-inline.c: Likewise.
8222         * builtins.c: Likewise.
8223         * lra-constraints.c: Likewise.
8224         * explow.c: Likewise.
8225         * hwint.h: Likewise.
8226         * targhooks.c: Likewise.
8227         * tree-vect-data-refs.c: Likewise.
8228         * expr.c: Likewise.
8229         * doc/tm.texi: Likewise.
8230         * doc/extend.texi: Likewise.
8231         * doc/install.texi: Likewise.
8232         * doc/md.texi: Likewise.
8233         * tree-ssa-tail-merge.c: Likewise.
8234         * sched-int.h: Likewise.
8235         * match.pd: Likewise.
8236         * sched-ebb.c: Likewise.
8237         * target.def (omit_struct_return_reg): Likewise.
8238         * gimple-ssa-isolate-paths.c: Likewise.
8239         (find_implicit_erroneous_behaviour): Renamed to...
8240         (find_implicit_erroneous_behavior): ... this.
8241         (find_explicit_erroneous_behaviour): Renamed to...
8242         (find_explicit_erroneous_behavior): ... this.
8243         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8244
8245 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8246
8247         PR rtl-optimization/64682
8248         PR rtl-optimization/69567
8249         PR rtl-optimization/69737
8250         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8251         in I2 as well, just lose it.
8252
8253 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8254
8255         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8256         New variable.
8257         (aarch64_last_printed_tune_string): Likewise.
8258         (aarch64_declare_function_name): Only output .arch assembler
8259         directive if it will be different from the previously output
8260         directive.  Same for .tune comment but only if -dA is set.
8261         (aarch64_start_file): New function.
8262         (TARGET_ASM_FILE_START): Define.
8263
8264 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8265
8266         PR plugins/69758
8267         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8268
8269 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8270
8271         PR target/65313
8272         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8273         -Wmaybe-uninitialized warning.
8274
8275 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8276
8277         PR target/69713
8278         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8279
8280 2016-02-11  Richard Biener  <rguenther@suse.de>
8281
8282         PR rtl-optimization/69291
8283         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8284         subexpressions affected by changing the result.
8285
8286 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8287
8288         PR target/69148
8289         * lra-constraints.c (curr_insn_transform): Find in/out operands
8290         for secondary memory moves.  Update dups.
8291
8292 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8293
8294         PR tree-optimization/69652
8295         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8296         to nested loop, did source re-formatting, skip debug statements,
8297         add check on statement with volatile operand, remove dead scalar
8298         statements.
8299
8300 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8301             Patrick Palka  <ppalka@gcc.gnu.org>
8302
8303         PR ipa/69241
8304         PR c++/69649
8305         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8306         calls if the return type is TREE_ADDRESSABLE.
8307         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8308         * ipa-split.c (split_function): Fix doubled "we" in comment.
8309         Use void return type for the split part even if
8310         !split_point->split_part_set_retval.
8311
8312 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8313
8314         PR tree-optimization/68021
8315         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8316         when computing the value of biv cand by itself.
8317
8318 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8319
8320         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8321         (cortexa57_tunings): Likewise.
8322         (cortexa72_tunings): Likewise.
8323         (arch_macro_fusion_pair_p): Add support for AES fusion.
8324         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8325         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8326         Allow virtual registers before reload so early scheduling works.
8327         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8328         correct latency and pipeline.
8329         (cortex_a57_crypto_complex): Likewise.
8330         (cortex_a57_crypto_xor): Likewise.
8331         (define_bypass): Add AES bypass.
8332
8333 2016-02-10  Richard Biener  <rguenther@suse.de>
8334
8335         PR tree-optimization/69726
8336         * passes.def: Add DCE pass before late uninit.
8337         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8338         really fixup if-conversions job.
8339
8340 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8341
8342         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8343         (arm_cortex_a57_tune): Likewise.
8344         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8345         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8346
8347 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8348
8349         * timevar.def (TV_PHASE_DBGINFO): Delete.
8350         (TV_PHASE_CHECK_DBGINFO): Likewise.
8351         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8352
8353 2016-02-10  Richard Biener  <rguenther@suse.de>
8354
8355         PR tree-optimization/69719
8356         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8357         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8358
8359 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8360
8361         PR tree-opt/69282
8362         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8363         get_vcond_mask_icode returns false.
8364
8365 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8366
8367         PR target/68404
8368         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8369         an ADDIS that adds a pointer to a large constant that sets the
8370         upper16 bits with a load operation.
8371
8372 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8373
8374         PR target/68532
8375         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8376         order.
8377         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8378         endian.
8379         (vzipq_s16): Likewise.
8380         (vzipq_s32): Likewise.
8381         (vzipq_f32): Likewise.
8382         (vzipq_u8): Likewise.
8383         (vzipq_u16): Likewise.
8384         (vzipq_u32): Likewise.
8385         (vzipq_p8): Likewise.
8386         (vzipq_p16): Likewise.
8387
8388 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8389
8390         PR target/68532
8391         * config/arm/arm.c (neon_endian_lane_map): New function.
8392         (neon_vector_pair_endian_lane_map): New function.
8393         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8394         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8395         endian.
8396         (vuzpq_s16): Likewise.
8397         (vuzpq_s32): Likewise.
8398         (vuzpq_f32): Likewise.
8399         (vuzpq_u8): Likewise.
8400         (vuzpq_u16): Likewise.
8401         (vuzpq_u32): Likewise.
8402         (vuzpq_p8): Likewise.
8403         (vuzpq_p16): Likewise.
8404
8405 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8406
8407         PR target/69634
8408         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8409         debug insns.
8410
8411 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8412
8413         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8414         truncate const_int operand 1 to QImode.
8415
8416 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8417
8418         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8419         corresponding to an abnormal edge.
8420
8421 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8422
8423         PR tree-optimization/69599
8424         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8425         function.
8426         (find_func_aliases_for_builtin_call, find_func_clobbers)
8427         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8428         partition.
8429
8430 2016-02-09  Richard Biener  <rguenther@suse.de>
8431
8432         PR tree-optimization/69715
8433         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8434         LHS on calls as non-rewritable.
8435
8436 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8437
8438         PR lto/69707
8439         * lto-wrapper.c (append_diag_options): New function.
8440         (compile_offload_image): Call append_diag_options.
8441
8442 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8443
8444         PR other/69722
8445         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8446         Minor copy-edit to fix verb tenses.
8447
8448 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8449
8450         PR tree-optimization/69209
8451         * ipa-split.c (split_function): If split part is not
8452         returning retval, retval has gimple type but is not
8453         gimple value, force it into a SSA_NAME first.
8454
8455 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8456
8457         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8458         outdated section.
8459
8460 2016-02-08  Jason Merrill  <jason@redhat.com>
8461
8462         PR c++/69631
8463         * convert.c (convert_to_integer_1): Check dofold on truncation
8464         distribution.
8465         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8466         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8467         Rename from *_nofold.
8468         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8469         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8470
8471 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8472
8473         PR target/60410
8474         * tree.c (build_common_tree_nodes): Remove short_double argument.
8475         All callers changed.
8476         * tree.h (build_common_tree_nodes): Adjust declaration.
8477         * doc/invoke.texi (-fshort-double): Remove documentation.
8478         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8479         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8480         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8481         (append_linker_options): Don't handle OPT_fshort_double.
8482
8483         PR rtl-optimization/68730
8484         * lra-remat.c (insn_to_cand_activation): New static variable.
8485         (lra_remat): Allocate and free it.
8486         (create_cand): New arg activation. Initialize a field in
8487         insn_to_cand_activation if it is nonnull.
8488         (create_cands): Pass the activation insn to create_cand when making
8489         a candidate involving an output reload.  Reorganize code a little.
8490         (do_remat): Keep track of active status of candidates in a separate
8491         bitmap.
8492
8493 2016-02-08  Richard Biener  <rguenther@suse.de>
8494
8495         PR tree-optimization/69719
8496         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8497         Properly use absolute of the difference of the two offsets to
8498         compare or adjust the segment length.
8499
8500 2016-02-08  Richard Biener  <rguenther@suse.de>
8501             Jeff Law  <law@redhat.com>
8502
8503         PR target/68273
8504         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8505         types for anonymous SSA names.
8506
8507 2016-02-08   Richard Biener  <rguenther@suse.de>
8508
8509         PR rtl-optimization/69274
8510         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8511
8512 2016-02-08  Jeff Law  <law@redhat.com>
8513
8514         PR tree-optimization/65917
8515         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8516         equivalences from if (x == y) style conditionals.
8517         (loop_depth_of_name): Remove.
8518         (record_equality): Remove loop depth check.
8519         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8520         (const_and_copies::record_const_or_copy_raw): New member function.
8521         * tree-ssa-scopedtables.c
8522         (const_and_copies::record_const_or_copy_raw): New, factored out of
8523         (const_and_copies::record_const_or_copy): Call new member function.
8524
8525 2016-02-05  Jeff Law  <law@redhat.com>
8526
8527         PR tree-optimization/68541
8528         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8529         (count_stmts_in_block): New function.
8530         (poor_ifcvt_candidate_code): Likewise.
8531         (is_feasible_trace): Add some heuristics to determine when path
8532         splitting is profitable.
8533         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8534         is a diamond with a single exit.
8535
8536 2016-02-05  Martin Sebor  <msebor@redhat.com>
8537
8538         PR c++/69662
8539         * doc/invoke.texi: Update -Wplacement-new to take an optional
8540         argument.
8541
8542 2016-02-06  Richard Henderson  <rth@redhat.com>
8543
8544         PR c/69643
8545         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8546         out of non-standard address spaces.
8547
8548 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8549
8550         PR rtl-optimization/69691
8551         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8552
8553 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8554
8555         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8556         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8557         (*ieee128_mfvsrd_64bit): Likewise.
8558         (*ieee128_mfvsrd_32bit): Likewise.
8559
8560 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8561
8562         PR target/69369
8563         Revert r232560:
8564         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8565
8566         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8567         instrumented_version.
8568
8569 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8570
8571         * doc/invoke.texi (Optimize Options): In table of --param options
8572         rename second occurrence of tracer-min-branch-ratio to
8573         tracer-min-branch-probability, rename
8574         tracer-min-branch-ratio-feedback to
8575         tracer-min-branch-probability-feedback and clarify description,
8576         rename sched-spec-state-edge-prob-cutoff to
8577         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8578         to selsched-insns-to-rename, rename lto-minpartition to
8579         lto-min-partition, delete reorder-blocks-duplicate and
8580         reorder-blocks-duplicate-feedback.
8581
8582 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8583
8584         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8585         superfluous loops.
8586
8587 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8588
8589         * doc/extend.texi: S/390: Correct some typos.
8590
8591 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8592
8593         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8594
8595 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8596
8597         PR target/69625
8598         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8599         (s390_register_info_gprtofpr): Use new macros above.
8600         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8601         its name.
8602         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8603         its name.  Adjust restore and save gpr ranges.
8604         (s390_register_info_set_ranges): New function.
8605         (s390_register_info): Use new macros above.  Call
8606         s390_register_info_set_ranges.
8607         (s390_optimize_register_info): Likewise.
8608         (s390_hard_regno_rename_ok): Use new macros.
8609         (s390_hard_regno_scratch_ok): Likewise.
8610         (s390_emit_epilogue): Likewise.
8611         (s390_can_use_return_insn): Likewise.
8612         (s390_optimize_prologue): Likewise.
8613         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8614
8615 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8616
8617         PR bootstrap/69677
8618         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8619         alignment fixes.
8620         (ix86_option_override_internal): Disable TARGET_STV even for
8621         -m{incoming,preferred}-stack-boundary=3.
8622
8623 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8624
8625         * config.gcc: Mark deprecated rtems targets as obsolete.
8626
8627 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8628
8629         PR rtl-optimization/64682
8630         PR rtl-optimization/69567
8631         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8632         before I2 only if the register is both used and set in I2.
8633
8634 2016-02-04  DJ Delorie  <dj@redhat.com>
8635
8636         * config/msp430/msp430.c (msp430_start_function): Add function type.
8637
8638 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8639
8640         PR fortran/69368
8641         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8642
8643 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8644
8645         PR rtl-optimization/69577
8646         Revert:
8647         2015-10-29  Richard Henderson  <rth@redhat.com>
8648
8649         PR target/68124
8650         PR rtl-opt/67609
8651         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8652         sse check to the exact conditions of PR 67609.
8653
8654 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8655
8656         PR target/69667
8657         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8658         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8659         not allowed into the traditional Altivec registers.
8660         (movtd_64bit_nodm): Likewise.
8661         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8662
8663 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8664
8665         * config/aarch64/cortex-a57-fma-steering.c
8666         (aarch64_register_fma_steering): Remove "static" from arguments
8667         to register_pass.
8668
8669 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8670
8671         PR target/69619
8672         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8673         twice when complex.
8674
8675 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8676
8677         * doc/invoke.texi: Delete -mno-fma4.
8678
8679 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8680
8681         PR rtl-optimization/69577
8682         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8683         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8684         definitions.
8685
8686 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8687
8688         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8689         * config/arm/arm.c (neon_reinterpret): Remove.
8690         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8691         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8692         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8693         vreinterpretti): Remove.
8694         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8695         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8696         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8697         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8698         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8699         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8700         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8701         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8702         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8703         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8704         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8705         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8706         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8707         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8708         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8709         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8710         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8711         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8712         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8713         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8714         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8715         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8716         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8717         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8718         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8719         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8720         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8721         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8722         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8723         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8724         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8725         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8726         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8727         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8728         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8729         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8730         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8731         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8732         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8733         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8734         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8735         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8736         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8737         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8738         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8739         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8740         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8741         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8742         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8743         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8744         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8745         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8746         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8747         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8748         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8749         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8750         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8751         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8752         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8753         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8754         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8755         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8756         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8757         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8758         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8759         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8760         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8761         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8762         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8763         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8764         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8765         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8766         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8767         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8768         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8769         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8770         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8771         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8772         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8773         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8774         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8775         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8776         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8777         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8778         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8779         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8780         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8781         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8782         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8783         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8784         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8785         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8786         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8787         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8788         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8789         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8790         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8791         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8792         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8793         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8794         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8795         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8796         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8797
8798 2016-02-04  Martin Liska  <mliska@suse.cz>
8799
8800         PR sanitizer/69276
8801         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8802         that are gimple_store_p.
8803         (maybe_instrument_call): Likewise.
8804
8805 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8806
8807         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8808         register scaling out of memory reference and comment why.
8809
8810 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8811
8812         PR target/65932
8813         PR target/67714
8814         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8815         folding the source of a SET.
8816
8817 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8818
8819         PR target/65932
8820         PR target/67714
8821         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8822         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8823
8824 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8825
8826         PR target/65932
8827         PR target/67714
8828         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8829         HImode.
8830
8831 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8832
8833         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8834         * config/arm/arm.c (arm_set_current_function): Likewise.
8835
8836 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8837             Ilya Enkovich  <enkovich.gnu@gmail.com>
8838             H.J. Lu  <hongjiu.lu@intel.com>
8839
8840         PR target/69454
8841         * config/i386/i386.c (convert_scalars_to_vector): Remove
8842         stack alignment fixes.
8843         (ix86_option_override_internal): Disable TARGET_STV if stack
8844         might not be aligned enough.
8845         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8846
8847 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8848
8849         * gcc/config/i386/x86-tune.def: Disable default prefetching
8850         for -march=znver1.
8851
8852 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8853             Vladimir Makarov  <vmakarov@redhat.com>
8854
8855         PR target/69461
8856         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8857         in validating fused toc addresses.
8858
8859 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8860
8861         PR c/69627
8862         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8863         range->m_caret fields if range->m_show_caret_p is false.
8864
8865         PR target/69644
8866         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8867         Force oldval into register if it does not satisfy reg_or_short_operand
8868         predicate.  Fix up formatting.
8869
8870 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8871             Alexandre Oliva  <aoliva@redhat.com>
8872
8873         PR target/69461
8874         * lra-constraints.c (simplify_operand_subreg): Check additionally
8875         address validity after potential reloading.
8876         (process_address_1): Check insns validity.  In case of failure do
8877         nothing.
8878
8879 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8880
8881         PR target/69118
8882         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8883         Fix target.
8884
8885 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8886
8887         * wide-int.cc (canonize_uhwi): New function.
8888         (wi::divmod_internal): Use it.
8889
8890 2016-02-02  James Norris  <jnorris@codesourcery.com
8891
8892         * gimplify.c (omp_notice_variable): Add usage check.
8893
8894 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8895
8896         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8897         like LE, GE, LT, GT when emitting relational operator.
8898
8899 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8900
8901         * ira-costs.c (find_costs_and_classes): Add extra argument.
8902         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8903         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8904         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8905         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8906         Add best_class parameter, and return it if not ALL_REGS.
8907         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8908         Add parameter.
8909         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8910         Update target hook.
8911
8912 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8913
8914         * config/aarch64/aarch64.c
8915         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8916         (aarch64_ira_change_pseudo_allocno_class): New function.
8917
8918 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8919
8920         PR target/67032
8921         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8922
8923 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8924
8925         * config/avr/avr.c (avr_option_override): Set
8926         PARAM_ALLOW_STORE_DATA_RACES to 1.
8927
8928 2016-02-02  Richard Biener  <rguenther@suse.de>
8929
8930         PR tree-optimization/69595
8931         * match.pd: Add range test simplifications to true/false.
8932
8933 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8934
8935         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8936         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8937         instead.
8938
8939 2016-02-02  Richard Biener  <rguenther@suse.de>
8940
8941         PR tree-optimization/69606
8942         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8943         info on the result before moving a stmt.
8944
8945 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8946
8947         PR middle-end/68542
8948         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8949         branch with vector comparison.
8950         * config/i386/sse.md (VI48_AVX): New mode iterator.
8951         (define_expand "cbranch<mode>4): Add support for conditional branch
8952         with vector comparison.
8953         * tree-vect-loop.c (optimize_mask_stores): New function.
8954         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
8955         has_mask_store field of vect_info.
8956         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
8957         vectorized loops having masked stores after vec_info destroy.
8958         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
8959         correspondent macros.
8960         (optimize_mask_stores): Add prototype.
8961
8962 2016-02-02  Alan Modra  <amodra@gmail.com>
8963
8964         PR target/69548
8965         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
8966         allow subregs.
8967
8968 2016-02-02  Alan Modra  <amodra@gmail.com>
8969
8970         PR target/68662
8971         * config/rs6000/rs6000.c (need_toc_init): New var, set it
8972         whenever toc_label_name used.
8973         (rs6000_file_start): Don't set up toc section here,
8974         (rs6000_output_function_epilogue): do so here instead,
8975         (rs6000_xcoff_file_start): and here.
8976         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
8977         (load_toc_aix_di): Likewise.
8978
8979 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8980
8981         PR rtl-optimization/69592
8982         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
8983         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
8984         (num_sign_bit_copies_binary_arith_p): New inline function.
8985         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
8986
8987 2016-02-01  Jeff Law  <law@redhat.com>
8988
8989         PR tree-optimization/69580
8990         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
8991         * tree-ssa-threadbackward.c
8992         (fsm_find_control_statement_thread_paths): Do not try to walk
8993         through large PHI nodes.
8994
8995 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
8996
8997         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
8998         when count is incremented above limit, don't analyze further
8999         insns afterwards.
9000
9001         * omp-low.c (oacc_parse_default_dims): Avoid
9002         -Wsign-compare warning, make sure value fits into int
9003         rather than just unsigned int.
9004
9005 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
9006
9007         PR tree-optimization/67921
9008         * fold-const.c (split_tree): New parameters.  Convert pointer
9009         type variable part to proper type before negating.
9010         (fold_binary_loc): Pass new arguments to split_tree.
9011
9012 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
9013
9014         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
9015         (nvptx_goacc_validate_dims): Extend to handle global defaults.
9016         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
9017         * doc/tm.texti: Rebuilt.
9018         * doc/invoke.texi (fopenacc-dim): Document.
9019         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
9020         (append_compiler_options): Likewise.
9021         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
9022         (oacc_parse_default_dims): New.
9023         (oacc_validate_dims): Add USED arg.  Select non-unity default when
9024         possible.
9025         (oacc_loop_fixed_partitions): Return mask of used partitions.
9026         (oacc_loop_auto_partitions): Emit dump info.
9027         (oacc_loop_partition): Return mask of used partitions.
9028         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
9029         loop partitioning and validation calls.
9030
9031 2016-02-01  Richard Biener  <rguenther@suse.de>
9032
9033         PR middle-end/69556
9034         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
9035
9036 2016-02-01  Richard Biener  <rguenther@suse.de>
9037
9038         PR tree-optimization/69574
9039         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
9040         of asserting return chrec_dont_know.
9041
9042 2016-02-01  Martin Liska  <mliska@suse.cz>
9043
9044         * mem-stats-traits.h: Add copyright header.
9045         * mem-stats.h: Likewise.
9046
9047 2016-02-01  Richard Biener  <rguenther@suse.de>
9048
9049         PR tree-optimization/69579
9050         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
9051         Do not propagate through abnormal PHI results.
9052
9053 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
9054
9055         * postreload.c (reload_cse_simplify): Remove dead code.
9056
9057 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9058
9059         PR rtl-optimization/69570
9060         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
9061         if there is more than one set, not if there is a single set.
9062
9063 2016-02-01  Richard Henderson  <rth@redhat.com>
9064
9065         PR rtl-opt/69535
9066         * combine.c (make_compound_operation): When looking through a
9067         subreg, make sure to re-extend to the width of the outer mode.
9068
9069 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
9070
9071         PR tree-optimization/69546
9072         * wide-int.cc (wi::divmod_internal): For unsigned division
9073         where both operands fit into uhwi, if o1 is 1 and o0 has
9074         msb set, if divident_prec is larger than bits per hwi,
9075         clear another quotient word and return 2 instead of 1.
9076         Similarly for remainder with msb in HWI set, if dividend_prec
9077         is larger than bits per hwi.
9078
9079 2016-01-29  Martin Jambor  <mjambor@suse.cz>
9080
9081         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
9082         Use short lowercase names.
9083         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
9084         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
9085         acq_rel one.  Protect warning agains segfaults if
9086         get_memory_order_name returns NULL.
9087         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
9088         with release semantics.  Do not warn if get_memory_order already did.
9089         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
9090         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
9091         if get_memory_order already did.
9092
9093 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
9094
9095         * doc/install.texi: Document that isl-0.16 is supported.
9096
9097 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9098
9099         PR target/69299
9100         * config/i386/constraints.md (Bm): Describe as special memory
9101         constraint.
9102         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
9103         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9104         * genpreds.c (struct constraint_data): Add is_special_memory.
9105         (have_special_memory_constraints, special_memory_start): New
9106         static vars.
9107         (special_memory_end): Ditto.
9108         (add_constraint): Add new arg is_special_memory.  Add code to
9109         process its true value.  Update have_special_memory_constraints.
9110         (process_define_constraint): Pass the new arg.
9111         (process_define_register_constraint): Ditto.
9112         (choose_enum_order): Process special memory.
9113         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9114         function insn_extra_special_memory_constraint.
9115         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9116         * gensupport.c (process_rtx): Process
9117         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9118         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9119         * ira-lives.c (single_reg_class): Use
9120         insn_extra_special_memory_constraint.
9121         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9122         * lra-constraints.c (process_alt_operands): Ditto.
9123         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9124         * recog.c (asm_operand_ok, preprocess_constraints): Process
9125         CT_SPECIAL_MEMORY.
9126         * reload.c (find_reloads): Ditto.
9127         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9128         * stmt.c (parse_input_constraint): Use
9129         insn_extra_special_memory_constraint.
9130
9131 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9132
9133         PR target/69530
9134         * lra-splill.c (lra_final_code_change): Revert r229087 by
9135         removing all sub-registers.
9136
9137 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9138
9139         PR target/65604
9140         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9141
9142 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9143
9144         PR target/69551
9145         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9146         SSE1, copy target into the temporary reg first before recursing
9147         on it.
9148
9149 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9150
9151         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9152         with vm.
9153
9154 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9155
9156         * ginclude/stdarg.h: Test __cplusplus instead of
9157         __GXX_EXPERIMENTAL_CXX0X__.
9158
9159 2016-01-29  Richard Biener  <rguenther@suse.de>
9160
9161         PR tree-optimization/69547
9162         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9163         Do not mark clobbers necessary.
9164         (mark_all_reaching_defs_necessary_1): Likewise.
9165
9166 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9167
9168         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9169         declaration name with %qs and print it in both error messages.
9170         Also fix indentation.
9171
9172 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9173
9174         PR other/69006
9175         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9176         trailing blank line from error message.
9177
9178 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9179
9180         PR c++/69462
9181         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9182         for C++-11.
9183
9184 2016-01-29  Richard Biener  <rguenther@suse.de>
9185
9186         PR middle-end/69537
9187         * match.pd: Allow all integral types when simplifying a
9188         widening or sign-changing conversion.
9189
9190 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9191
9192         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9193         back to setting codegen_error to fail codegen.
9194
9195 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9196
9197         PR target/69459
9198         * config/i386/constraints.md (C): Only accept constant zero operand.
9199         (BC): New constraint.
9200         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9201         instead of C constraint.
9202         * doc/md.texi (Machine Constraints): Update description
9203         of C constraint.
9204
9205 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9206
9207         PR target/68400
9208         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9209
9210 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9211
9212         PR middle-end/69542
9213         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9214         non-debug insns.
9215
9216 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9217
9218         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9219         branches if using guessed profile.
9220
9221 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9222
9223         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9224
9225 2016-01-28  Richard Henderson  <rth@redhat.com>
9226
9227         PR target/69305
9228         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9229         * config/aarch64/aarch64-protos.h: Update.
9230         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9231         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9232         (aarch64_get_condition_code_1): Handle CC_Cmode.
9233         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9234         (*add<mode>3_compareC_cconly_imm): New.
9235         (*add<mode>3_compareC_cconly): New.
9236         (*add<mode>3_compareC_imm): New.
9237         (add<mode>3_compareC): New.
9238         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9239         to be first.  Use aarch64_carry_operation.
9240         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9241         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9242         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9243         (subti3): Use subdi3_compare1.
9244         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9245         (sub<mode>3_compare1): New.
9246         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9247         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9248         (*subsi3_carryin_uxtw): Likewise.
9249         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9250         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9251         * config/aarch64/iterators.md (DWI): New.
9252         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9253         (aarch64_borrow_operation): New.
9254
9255 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9256
9257         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9258         message when isl does not return a valid schedule.
9259
9260 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9261
9262         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9263         Remove comments from class declarations: they are already in the code
9264         close by the defs.
9265
9266 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9267
9268         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9269         codegen_error_p.
9270         (ternary_op_to_tree): Same.
9271         (unary_op_to_tree): Same.
9272         (nary_op_to_tree): Same.
9273         (gcc_expression_from_isl_expr_op): Same.
9274         (gcc_expression_from_isl_expression): Same.
9275         (graphite_create_new_loop): Same.
9276         (graphite_create_new_loop_guard): Same.
9277         (build_iv_mapping): Same.
9278         (graphite_create_new_guard): Same.
9279         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9280         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9281
9282 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9283
9284         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9285         instead of setting codegen_error to fail codegen.
9286
9287 2016-01-28  Jason Merrill  <jason@redhat.com>
9288
9289         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9290
9291 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9292
9293         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9294         Remove CONST_INT_P check in CCMP cost calculation.
9295
9296 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9297
9298         * config/aarch64/aarch64.c (generic_vector_cost):
9299         Set vec_permute_cost.
9300         (cortexa57_vector_cost): Likewise.
9301         (exynosm1_vector_cost): Likewise.
9302         (xgene1_vector_cost): Likewise.
9303         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9304         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9305         Add vec_permute_cost entry.
9306
9307 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9308
9309         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9310         immediate as %1.
9311         (add<mode>3_compare0): Likewise.
9312         (addsi3_compare0_uxtw): Likewise.
9313         (add<mode>3nr_compare0): Likewise.
9314         (compare_neg<mode>): Likewise.
9315         (<optab><mode>3): Likewise.
9316
9317 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9318
9319         * tree-vect-stmts.c (vectorizable_comparison): Add
9320         NULL check for vectype.
9321
9322 2016-01-28  Richard Biener  <rguenther@suse.de>
9323
9324         PR tree-optimization/69466
9325         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9326         Account for PHIs we couldn't duplicate.
9327
9328 2016-01-28  Martin Liska  <mliska@suse.cz>
9329
9330         PR pch/68758
9331         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9332         instead of ENABLE_VALGRIND_CHECKING.
9333
9334 2016-01-27  Richard Henderson  <rth@redhat.com>
9335
9336         PR rtl-opt/69447
9337         * lra-remat.c (subreg_regs): New.
9338         (dump_candidates_and_remat_bb_data): Dump it.
9339         (operand_to_remat): Reject if operand in subreg_regs.
9340         (set_bb_regs): Collect subreg_regs.
9341         (lra_remat): Init and free subreg_regs.  Compute
9342         calculate_local_reg_remat_bb_data before create_cands.
9343
9344 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9345
9346         PR target/68986
9347         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9348         change stack_alignment_needed for __tls_get_addr call.
9349
9350 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9351
9352         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9353
9354 2016-01-27  Jeff Law  <law@redhat.com>
9355
9356         PR tree-optimization/68398
9357         PR tree-optimization/69196
9358         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9359         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9360         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9361         Only count PHIs in the last block in the path.  The others will
9362         const/copy propagate away.  Add heuristic to allow more irreducible
9363         subloops to be created when it is likely profitable to do so.
9364
9365         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9366         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9367         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9368
9369 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9370
9371         PR lto/69254
9372         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9373         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9374         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9375         * tree-streamer-in.c: Include asan.h.
9376         (streamer_get_builtin_tree): For builtins in sanitizer
9377         range call initialize_sanitizer_builtins and retry.
9378
9379 2016-01-27  Ian Lance Taylor  <iant@google.com>
9380
9381         * common.opt (fkeep-gc-roots-live): New undocumented option.
9382         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9383         -fkeep-gc-roots-live, skip pointers.
9384         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9385         NULL.
9386
9387 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9388
9389         PR target/69512
9390         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9391         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9392
9393 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9394
9395         PR target/68380
9396         * configure.ac: NetBSD provides SSP in its C library.
9397         * configure: Updated.
9398
9399 2016-01-27  Richard Biener  <rguenther@suse.de>
9400
9401         PR tree-optimization/69166
9402         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9403         reduction code for commutativity / associativity.
9404
9405 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9406
9407         PR tree-optimization/69355
9408         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9409         total_scalarization fails.
9410
9411 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9412
9413         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9414         power9.
9415
9416 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9417
9418         PR target/69245
9419         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9420         Move arm_reset_previous_fndecl and set_target_option_current_node in
9421         the conditional part.  Call save_restore_target_globals.
9422         * config/arm/arm.c (arm_set_current_function):
9423         Refactor to better support #pragma target and attribute mix.
9424         Call save_restore_target_globals.
9425         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9426
9427 2016-01-27  Martin Liska  <mliska@suse.cz>
9428
9429         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9430         reference for an HSA kernel and its host function.
9431
9432 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9433
9434         PR tree-optimization/69399
9435         * wide-int.h (wi::lrshift): For larger precisions, only
9436         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9437
9438 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9439
9440         * config/arc/predicates.md (proper_comparison_operator): Reject
9441         constant-constant comparison.
9442
9443 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9444
9445         PR tree-optimization/69110
9446         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9447         DR_NUM_DIMENSIONS == 0.
9448
9449 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9450             Sebastian Pop  <s.pop@samsung.com>
9451
9452         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9453         isl_ast_op_cond and isl_ast_op_select.
9454         (gcc_expression_from_isl_expr_op): Same.
9455
9456 2016-01-26  Jason Merrill  <jason@redhat.com>
9457
9458         PR c++/68782
9459         * tree.c (recompute_constructor_flags): Split out from
9460         build_constructor.
9461         (verify_constructor_flags): New.
9462         * tree.h: Declare them.
9463
9464 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9465
9466         PR rtl-optimization/69217
9467         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9468         are no TYPE_FIELDS set for the record type.
9469
9470 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9471
9472         PR target/68662
9473         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9474         toc_label_name unconditionally.
9475         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9476         SYMBOL_REF string.  Use toc_label_name instead of constructing
9477         LCTOC1.
9478         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9479         constructing LCTOC1.
9480
9481 2016-01-26  Martin Sebor  <msebor@redhat.com>
9482
9483         PR other/69477
9484         * doc/extend.texi (Common Type Attributes): Move text that talks about
9485         attribute packed from attribute aligned to the section discussing
9486         the former attribute for clarity.
9487
9488 2016-01-26  Richard Henderson  <rth@redhat.com>
9489
9490         PR middle-end/60908
9491         * trans-mem.c (tm_region_init): Mark entry block as visited.
9492
9493 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9494
9495         PR other/69006
9496         * diagnostic-show-locus.c (layout::print_source_line): Replace
9497         call to pp_newline with call to layout::print_newline.
9498         (layout::print_annotation_line): Likewise.
9499         (layout::move_to_column): Likewise.
9500         (layout::print_any_fixits): After printing any fixits, print a
9501         trailing newline, if necessary.
9502         (layout::print_newline): New method, resetting any colorization
9503         before a newline.
9504         (diagnostic_show_locus): Move the pp_newline to before the
9505         early bailout.  Remove dummy block enclosing the layout instance.
9506         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9507         of pp_newline_and_flush with pp_flush.
9508         (diagnostic_append_note): Delete use of pp_newline.
9509         (diagnostic_append_note_at_rich_loc): Delete.
9510         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9511         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9512         when newline characters are added to the buffer.
9513
9514 2016-01-26  Michael Matz  <matz@suse.de>
9515
9516         * configure.ac (ac_cv_std_swap_in_utility): New test.
9517         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9518         * configure: Regenerate.
9519         * config.in: Regenerate.
9520
9521 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9522
9523         * config/arc/arc.md (cstoresi4): Force operand into register.
9524         (arcset<code>): Fix predicate.
9525         (arcsetltu): Likewise.
9526         (arcsetgeu): Likewise.
9527         (arcsethi): Likewise.
9528         (arcsetls): Likewise.
9529
9530 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9531
9532         PR tree-optimization/69483
9533         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9534         if base has error_mark_node type.
9535
9536 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9537
9538         PR target/68620
9539         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9540         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9541         New helper macros.
9542         (vget_lane_f16): Handle big-endian.
9543         (vgetq_lane_f16): Likewise.
9544         (vset_lane_f16): Likewise.
9545         (vsetq_lane_f16): Likewise.
9546         * config/arm/iterators.md (VQXMOV): Add V8HF.
9547         (VDQ): Add V4HF and V8HF.
9548         (V_reg): Handle V4HF and V8HF.
9549         (Is_float_mode): Likewise.
9550         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9551         neon_vdup_nv8hf): New patterns.
9552         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9553         Use VD_LANE iterator.
9554         (neon_vld1_dup<mode>): Use VQ2 iterator.
9555
9556 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9557
9558         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9559         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9560         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9561         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9562         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9563         (oacc_validate_dims): Add LEVEL arg, don't return level.
9564         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9565         oacc_validate_dims.
9566         (execute_oacc_device_lower): Adjust, add more dump output.
9567         * tree-ssa-loop.c (gate_oacc_kernels): Use
9568         oacc_fn_attrib_kernels_p.
9569         * tree-parloops.c (create_parallel_loop): Adjust
9570         set_oacc_fn_attrib call.
9571
9572 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9573
9574         PR lto/69254
9575         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9576         (append_compiler_options): Handle -fcilkplus.
9577         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9578
9579 2016-01-26  Nick Clifton  <nickc@redhat.com>
9580
9581         PR target/66655
9582         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9583         been marked as DECL_ONE_ONLY but we do not the means to make it
9584         so, then do not allow it to bind locally.
9585
9586 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9587
9588         PR lto/69254
9589         * opts.h (parse_sanitizer_options): New prototype.
9590         * opts.c (sanitizer_opts): New array.
9591         (parse_sanitizer_options): New function.
9592         (common_handle_option): Use parse_sanitizer_options.
9593
9594 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9595
9596         PR target/68986
9597         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9598         alignment adjustment to ...
9599         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9600         __tls_get_addr.
9601         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9602         if __tls_get_addr is called.
9603
9604 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9605
9606         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9607
9608 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9609
9610         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9611
9612 2016-01-26  Richard Biener  <rguenther@suse.de>
9613
9614         PR middle-end/69467
9615         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9616
9617 2016-01-26  Richard Biener  <rguenther@suse.de>
9618
9619         PR tree-optimization/69452
9620         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9621         (move_computations_dom_walker::before_dom_children): Rename
9622         to ...
9623         (move_computations_worker): This.
9624         (move_computations): Perform an RPO rather than a DOM walk.
9625
9626 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9627
9628         PR target/69442
9629         * combine.c (combine_instructions): For REG_EQUAL note with
9630         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9631         to the underlying register.
9632         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9633         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9634
9635 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9636
9637         PR target/67896
9638         * config/aarch64/aarch64-builtins.c
9639         (aarch64_init_simd_builtin_types): Do not set structural
9640         equality to __Poly{8,16,64,128}_t types.
9641
9642 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9643
9644         PR tree-optimization/69400
9645         * wide-int.cc (wi_pack): Take the precision as argument and
9646         perform canonicalization here rather than in the callers.
9647         Use the main loop to handle all full-width HWIs.  Add a
9648         zero HWI if in_len isn't a full result.
9649         (wi::divmod_internal): Update accordingly.
9650         (wi::mul_internal): Likewise.  Simplify.
9651
9652 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9653             Sebastian Pop  <s.pop@samsung.com>
9654
9655         * graphite-poly.c (apply_poly_transforms): Simplify.
9656         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9657         (print_isl_map): Same.
9658         (print_isl_union_map): Same.
9659         (print_isl_schedule): New.
9660         (debug_isl_schedule): New.
9661         * graphite-dependences.c (scop_get_reads): Do not call
9662         isl_union_map_add_map that is undocumented isl functionality.
9663         (scop_get_must_writes): Same.
9664         (scop_get_may_writes): Same.
9665         (scop_get_original_schedule): Remove.
9666         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9667         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9668         (compute_deps): Remove.
9669         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9670         (debug_schedule_ast): New.
9671         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9672         set_separate_option.
9673         (graphite_regenerate_ast_isl): Add dump.
9674         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9675         from scop->transformed_schedule.
9676         (graphite_regenerate_ast_isl): Add more dump.
9677         * graphite-optimize-isl.c (optimize_isl): Set
9678         scop->transformed_schedule.  Check whether schedules are equal.
9679         (apply_poly_transforms): Move here.
9680         * graphite-poly.c (apply_poly_transforms): ... from here.
9681         (free_poly_bb): Static.
9682         (free_scop): Static.
9683         (pbb_number_of_iterations_at_time): Remove.
9684         (print_isl_ast): New.
9685         (debug_isl_ast): New.
9686         (debug_scop_pbb): New.
9687         * graphite-scop-detection.c (print_edge): Move.
9688         (print_sese): Move.
9689         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9690         (build_scop_scattering): Remove.
9691         (create_pw_aff_from_tree): Assert instead of bailing out.
9692         (add_condition_to_pbb): Remove unused code, do not fail.
9693         (add_conditions_to_domain): Same.
9694         (add_conditions_to_constraints): Remove.
9695         (build_scop_context): New.
9696         (add_iter_domain_dimension): New.
9697         (build_iteration_domains): Initialize pbb->iterators.
9698         Call add_conditions_to_domain.
9699         (nested_in): New.
9700         (loop_at): New.
9701         (index_outermost_in_loop): New.
9702         (index_pbb_in_loop): New.
9703         (outermost_pbb_in): New.
9704         (add_in_sequence): New.
9705         (add_outer_projection): New.
9706         (outer_projection_mupa): New.
9707         (add_loop_schedule): New.
9708         (build_schedule_pbb): New.
9709         (build_schedule_loop): New.
9710         (embed_in_surrounding_loops): New.
9711         (build_schedule_loop_nest): New.
9712         (build_original_schedule): New.
9713         (build_poly_scop): Call build_original_schedule.
9714         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9715         (free_poly_dr): Remove.
9716         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9717         (free_poly_bb): Remove.
9718         (debug_loop_vec): Remove.
9719         (print_isl_ast): Declare.
9720         (debug_isl_ast): Declare.
9721         (scop_do_interchange): Remove.
9722         (scop_do_strip_mine): Remove.
9723         (scop_do_block): Remove.
9724         (flatten_all_loops): Remove.
9725         (optimize_isl): Remove.
9726         (pbb_number_of_iterations_at_time): Remove.
9727         (debug_scop_pbb): Declare.
9728         (print_schedule_ast): Declare.
9729         (debug_schedule_ast): Declare.
9730         (struct scop): Remove schedule.  Add original_schedule,
9731         transformed_schedule.
9732         (free_gimple_poly_bb): Remove.
9733         (print_generated_program): Remove.
9734         (debug_generated_program): Remove.
9735         (unify_scattering_dimensions): Remove.
9736         * sese.c (print_edge): ... here.
9737         (print_sese): ... here.
9738         (debug_edge): ... here.
9739         (debug_sese): ... here.
9740         * sese.h (print_edge): Declare.
9741         (print_sese): Declare.
9742         (dump_edge): Declare.
9743         (dump_sese): Declare.
9744
9745 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9746             Sebastian Pop  <s.pop@samsung.com>
9747
9748         * Makefile.in: Set ISLVER in site.exp.
9749
9750 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9751
9752         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9753         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9754         through DECL_VALUE_EXPR for expansion.
9755
9756 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9757
9758         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9759         the frame info after reload completed.
9760
9761 2016-01-25  Jeff Law  <law@redhat.com>
9762
9763         PR tree-optimization/69196
9764         PR tree-optimization/68398
9765         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9766         tree-ssa-threadupdate.c.
9767         (determine_bb_domination_status): Prototype
9768         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9769         (determine_bb_domination_status): No longer static.
9770         (valid_jump_thread_path): Remove code to detect characteristics
9771         of the jump thread path not associated with correctness.
9772         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9773         Correct test for thread path length.  Count PHIs for real operands as
9774         statements that need to be copied.  Do not count ASSERT_EXPRs.
9775         Look at all the blocks in the thread path.  Compute and selectively
9776         filter thread paths based on threading through the latch, threading
9777         a multiway branch or crossing a multiway branch.
9778
9779 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9780
9781         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9782         decl with __attribute__ ((unused)) annotation.
9783
9784 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9785
9786         PR target/69421
9787         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9788         of operands is compatible with a statement vectype.
9789
9790 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9791
9792         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9793         improve wording for mixed storage order support.
9794
9795 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9796
9797         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9798         (vcvt_u64_f64): Likewise.
9799         (vcvta_s64_f64): Likewise.
9800         (vcvta_u64_f64): Likewise.
9801         (vcvtm_s64_f64): Likewise.
9802         (vcvtm_u64_f64): Likewise.
9803         (vcvtn_s64_f64): Likewise.
9804         (vcvtn_u64_f64): Likewise.
9805         (vcvtp_s64_f64): Likewise.
9806         (vcvtp_u64_f64): Likewise.
9807
9808 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9809
9810         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9811         (arc_init): Check validity mll64 option.
9812         (arc_save_restore): Use double load/store instruction.
9813         (arc_expand_movmem): Likewise.
9814         (arc_split_move): Don't split if we have double load/store
9815         instructions. Returns a boolean.
9816         (arc_process_double_reg_moves): Change function to return boolean
9817         instead of a sequence of instructions.
9818         (arc_dwarf_register_span): New function.
9819         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9820         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9821         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9822         (*movdf_insn): Likewise.
9823         * config/arc/arc.opt (mll64): New option.
9824         * config/arc/predicates.md (even_register_operand): New predicate.
9825         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9826
9827 2016-01-25  Richard Biener  <rguenther@suse.de>
9828
9829         PR lto/69393
9830         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9831         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9832         DECL_NAMELESS.
9833         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9834
9835 2016-01-25  Richard Biener  <rguenther@suse.de>
9836
9837         PR tree-optimization/69376
9838         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9839         flag.
9840         (VN_INFO_ANTI_RANGE_P): New inline.
9841         (VN_INFO_RANGE_TYPE): Likewise.
9842         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9843         SSA_NAME_ANTI_RANGE_P.
9844         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9845         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9846         Properly query VN_INFO_RANGE_TYPE.
9847
9848 2016-01-25  Nick Clifton  <nickc@redhat.com>
9849
9850         PR target/66655
9851         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9852
9853 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9854
9855         PR tree-optimization/69426
9856         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9857         removed clobber.
9858
9859 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9860
9861         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9862         "the the" with "the" in the comments.
9863         * ipa-devirt.c (build_type_inheritance_graph,
9864         update_type_inheritance_graph): Likewise.
9865         * tree.c (build_function_type_list_1): Likewise.
9866         * cfgloopmanip.c (scale_loop_profile): Likewise.
9867         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9868         * gimple-ssa-split-paths.c
9869         (find_block_to_duplicate_for_splitting_paths): Likewise.
9870         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9871         * expr.c (convert_move): Likewise.
9872         * var-tracking.c (vt_stack_adjustments): Likewise.
9873         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9874         * tree-vrp.c (test_for_singularity): Likewise.
9875
9876         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9877         directly instead of building a temporary tree.
9878
9879         PR bootstrap/69434
9880         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9881         remove <algorithm> include.
9882
9883 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9884
9885         PR target/69432
9886         * config/i386/i386.c: Include dojump.h.
9887         (expand_small_movmem_or_setmem,
9888         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9889         fixes.
9890         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9891         if dynamic_check != -1.
9892
9893 2016-01-21  Jeff Law  <law@redhat.com>
9894
9895         PR middle-end/69347
9896         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9897         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9898         into dominated_by_p.
9899         (cprop_into_successor_phis): Avoid unnecessary tests.
9900
9901 2016-01-22  Richard Henderson  <rth@redhat.com>
9902
9903         PR target/69416
9904         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9905         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9906
9907 2016-01-22  Michael Matz  <matz@suse.de>
9908
9909         * system.h (string, algorithm): Include only conditionally.
9910         (new): Include always under C++.
9911         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9912         * final.c (toplevel): Ditto.
9913         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9914         * genconditions.c (write_header): Make gencondmd.c define
9915         INCLUDE_STRING.
9916         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9917
9918         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9919         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9920
9921 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9922
9923         PR target/68674
9924         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9925
9926 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9927
9928         PR target/69403
9929         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9930         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9931         get assigned the same register.
9932
9933 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9934
9935         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9936
9937 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9938
9939         * config/arm/arm-c.c (arm_pragma_target_parse):
9940         Remove warn_builtin_macro_redefined overwrite.
9941
9942 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9943
9944         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9945         flag_non_call_exceptions compatibility.
9946
9947 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9948
9949         PR debug/66668
9950         * dwarf2out.c (add_child_die_after): New function.
9951         (dwarf_qual_info_t): New type.
9952         (dwarf_qual_info): New variable.
9953         (qualified_die_p): New function.
9954         (modified_type_die): For -fdebug-types-section, ensure
9955         canonical order of qualifiers.  Put qualified DIEs adjacent
9956         to the corresponding non-qualified type DIE and search there
9957         for existing qualified DIEs.
9958
9959 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9960
9961         * doc/extend.texi (scalar_storage_order type attribute): Document
9962         restriction on type punning and aliasing, and remove future tense.
9963
9964 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
9965
9966         PR target/69252
9967         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
9968         first stage.
9969
9970 2016-01-21  Jeff Law  <law@redhat.com>
9971
9972         PR middle-end/69347
9973         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
9974         useless call to record_temporary_equivalences.
9975         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
9976         allocate 10 slots in the bb_path vector and let it grow as needed.
9977         (fsm_find_control_statement_thread_paths): Similarly for the next_path
9978         vector.
9979
9980 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
9981
9982         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
9983         Detangle.
9984         * configure: Regenerate.
9985
9986 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
9987
9988         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
9989         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
9990
9991 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
9992
9993         PR middle-end/66178
9994         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
9995         drop EXPAND_INITIALIZER.
9996         * rtl.h (contains_symbolic_reference_p): Declare.
9997         * rtlanal.c (contains_symbolic_reference_p): New function.
9998         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
9999         a subtraction into a NOT if symbolic constants are involved.
10000
10001 2016-01-21  Anton Blanchard  <anton@samba.org>
10002             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10003
10004         PR target/63354
10005         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
10006         #define.
10007         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
10008         function.
10009
10010 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10011
10012         * config/microblaze/microblaze.c
10013         (get_branch_target): New.
10014         (insert_wic_for_ilb_runout): New.
10015         (insert_wic): New.
10016         (microblaze_machine_dependent_reorg): New.
10017         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
10018         * config/microblaze/microblaze.md
10019         (UNSPEC_IPREFETCH): Define.
10020         (iprefetch): New pattern
10021         * config/microblaze/microblaze.opt
10022         (mxl-prefetch): New flag.
10023
10024 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10025
10026         * config/microblaze/microblaze.h
10027         (FIXED_REGISTERS): Update in macro.
10028         (CALL_USED_REGISTERS): Update in macro.
10029
10030 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
10031
10032         PR rtl-optimization/68920
10033         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
10034         moves.
10035
10036 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10037
10038         PR rtl-optimization/68990
10039         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
10040         pseudo instead of inheritance ones.
10041
10042 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10043             Nick Clifton  <nickc@redhat.com>
10044
10045         PR target/69129
10046         PR target/69012
10047         * config/mips/mips.c (mips_compute_frame_info): Initialise
10048         args_size and hard_frame_pointer_offset fields of the frame
10049         structure before calling mips_global_pointer.
10050
10051 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10052
10053         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
10054         label reference.
10055         * configure: Regenerate.
10056
10057 2016-01-21  Richard Biener  <rguenther@suse.de>
10058
10059         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
10060
10061 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10062
10063         * config/s390/s390.c (s390_asm_declare_function_size): Add code
10064         to actually emit the .size directive.
10065
10066 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
10067              Jakub Jelinek  <jakub@redhat.com>
10068
10069         PR target/69187
10070         PR target/65624
10071         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
10072         args array size by one to avoid buffer overflow.
10073
10074 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10075
10076         * config/s390/s390.md (pool_section_start): Use switch_to_section
10077         to select proper read-only data section instead of hardcoding
10078         .rodata.
10079         (pool_section_end): Use switch_to_section to match the above.
10080
10081 2016-01-21  Richard Biener  <rguenther@suse.de>
10082
10083         PR tree-optimization/69378
10084         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
10085         (set_ssa_val_to): Use it for dominance checks taking into
10086         account not executable edges.
10087
10088 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10089
10090         PR c++/69355
10091         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
10092         for bitsize instead of GET_MODE_PRECISION (mode).
10093
10094 2016-01-20  Martin Sebor  <msebor@redhat.com>
10095
10096         PR c/52291
10097         * extend.texi (__sync Builtins): Clarify the semantics of
10098         __sync_fetch_and_OP built-ins on pointers.
10099         (__atomic Builtins): Same.
10100
10101 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10102             Sebastian Pop  <s.pop@samsung.com>
10103
10104         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
10105         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
10106         (is_valid_rename): Same.
10107         (translate_isl_ast_to_gimple::get_rename): Same.
10108         (translate_isl_ast_to_gimple::rename_all_uses): Same.
10109         (translate_isl_ast_to_gimple::rename_uses): Same.
10110         (get_new_name): Check for close_phi nodes.
10111         (copy_loop_phi_args): Use phi_node_kind.
10112         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10113         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10114
10115 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10116             Sebastian Pop  <s.pop@samsung.com>
10117
10118         Revert commit r229783.
10119         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10120         Remove use of parameter_rename_map.
10121         (copy_def): Remove.
10122         (copy_internal_parameters): Remove.
10123         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10124         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10125         (free_sese_info): Do not free parameter_rename_map.
10126         (set_rename): Do not use parameter_rename_map.
10127         (rename_uses): Update call to set_rename.
10128         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10129         * sese.h (parameter_rename_map_t): Remove.
10130         (struct sese_info_t): Remove field parameter_rename_map.
10131
10132 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10133             Sebastian Pop  <s.pop@samsung.com>
10134
10135         * graphite-isl-ast-to-gimple.c: Fix comment.
10136         * graphite-scop-detection.c (defined_in_loop_p): New.
10137         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10138         names defined in loop.
10139
10140 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10141             Sebastian Pop  <s.pop@samsung.com>
10142
10143         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10144         Discard unstructured if-then-else regions.
10145
10146 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10147             Sebastian Pop  <s.pop@samsung.com>
10148
10149         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10150         (cleanup_loop_iter_dom): Remove.
10151         (build_loop_iteration_domains): Remove.
10152         (build_scop_context): Remove.
10153         (build_scop_iteration_domain): Remove.
10154         (add_loop_constraints): New.
10155         (build_iteration_domains): New.
10156         (build_poly_scop): Call build_iteration_domains.
10157
10158 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10159             Sebastian Pop  <s.pop@samsung.com>
10160
10161         * graphite-scop-detection.c
10162         (scop_detection::harmful_loop_in_region): Free dom and loops.
10163         (scop_detection::loop_body_is_valid_scop): Free bbs.
10164
10165 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10166             Sebastian Pop  <s.pop@samsung.com>
10167
10168         * graphite-scop-detection.c (record_loop_in_sese): New.
10169         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10170         (build_scops): Remove call to build_sese_loop_nests.
10171         * sese.c (sese_record_loop): Remove.
10172         (build_sese_loop_nests): Remove.
10173         (new_sese_info): Remove region->loops.
10174         (free_sese_info): Same.
10175         * sese.h (sese_contains_loop): Same.
10176         (build_sese_loop_nests): Remove.
10177         (sese_contains_loop): Remove.
10178
10179 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10180             Sebastian Pop  <s.pop@samsung.com>
10181
10182         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10183         loop_is_valid_in_scop.
10184         (scop_detection::harmful_stmt_in_region): Renamed
10185         harmful_loop_in_region.
10186         Call loop_is_valid_in_scop.
10187
10188 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10189             Sebastian Pop  <s.pop@samsung.com>
10190
10191         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10192         isl_ast_node_mark.
10193
10194 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10195             Sebastian Pop  <s.pop@samsung.com>
10196
10197         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10198         * graphite.h (struct poly_bb): Remove field is_reduction.
10199         (PBB_IS_REDUCTION): Remove.
10200
10201 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10202             Sebastian Pop  <s.pop@samsung.com>
10203
10204         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10205         (add_pdr_constraints): Same.
10206         (scop_get_reads): Same.
10207         (scop_get_must_writes): Same.
10208         (scop_get_may_writes): Same.
10209         (scop_get_original_schedule): Same.
10210         (extend_schedule): Same.
10211         (apply_schedule_on_deps): Same.
10212         (carries_deps): Same.
10213         (compute_deps): Same.
10214         (scop_get_dependences): Same.
10215         * graphite-isl-ast-to-gimple.c
10216         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10217         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10218         (get_schedule_for_band_list): Same.
10219         (get_schedule_map): Same.
10220         (apply_schedule_map_to_scop): Same.
10221         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10222         (build_loop_iteration_domains): Same.
10223         (add_condition_to_pbb): Same.
10224         (add_param_constraints): Same.
10225         (pdr_add_memory_accesses): Same.
10226         (pdr_add_data_dimensions): Same.
10227
10228 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10229
10230         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10231         requirements.
10232
10233 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10234
10235         * common.opt (feliminate-dwarf2-dups): Replace references to
10236         "DWARF 2" with just "DWARF".
10237         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10238         * doc/extend.texi: Likewise.
10239         * doc/cpp.texi: Likewise.
10240         * doc/invoke.texi: Likewise.
10241         (Option Summary): Add -gdwarf to list of Debugging Options.
10242         (Debugging Options): Document -gdwarf.
10243         * doc/contrib.texi: Spell "DWARF" like that.
10244
10245 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10246
10247         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10248         warning.  Fix up formatting.
10249
10250         PR middle-end/67653
10251         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10252         attempt to mark memory input operand addressable and
10253         call prepare_gimple_addressable in that case.  Don't adjust
10254         input_location for diagnostics, use error_at instead.
10255
10256 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10257
10258         * config/rs6000/ppc-auxv.h: New file.
10259         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10260         (cpu_is): Likewise.
10261         (cpu_supports): Likewise.
10262         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10263         (cpu_is_info): New variable.
10264         (cpu_supports_info): Likewise.
10265         (tcb_verification_symbol): Likewise.
10266         (cpu_builtin_p): Likewise.
10267         (cpu_expand_builtin): New function.
10268         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10269         (rs6000_init_builtins): Likewise.
10270         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10271         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10272         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10273         * configure: Regenerate.
10274         * config.in: Likewise.
10275         * doc/extend.texi (PowerPC Built-in Functions): Document
10276         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10277
10278 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10279
10280         PR target/68609
10281         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10282         domain check.
10283         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10284         for V4SFmode.
10285
10286 2016-01-20  Richard Henderson  <rth@redhat.com>
10287
10288         PR bootstrap/69343
10289         PR bootstrap/69339
10290         PR tree-opt/68964
10291         Revert:
10292         * tree.c (tm_define_builtin): New.
10293         (find_tm_vector_type): New.
10294         (build_tm_vector_builtins): New.
10295         (build_common_builtin_nodes): Call it.
10296
10297 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10298
10299         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10300         (arm_fp_ok): Likewise.
10301         (arm_fp): Likewise.
10302         (arm_crypto): Likewise.
10303
10304 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10305             Richard Biener  <rguenther@suse.de>
10306
10307         PR tree-optimization/69328
10308         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10309         vectors have same number of elements.
10310         (vectorizable_condition): Fix masked version recognition.
10311
10312 2016-01-20  Richard Biener  <rguenther@suse.de>
10313
10314         PR tree-optimization/69345
10315         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10316         (VN_INFO_PTR_INFO): Likewise.
10317         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10318         info when it is equal between non-dominating SSA names.
10319         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10320         Make sure to look at original SSA infos.
10321
10322 2016-01-20  Jeff Law  <law@redhat.com>
10323
10324         PR target/25114
10325         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10326         extracted from ...
10327         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10328         (pc_or_label_operand): New predicate.
10329         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10330         tests for small integers that are 2^n - 1.
10331
10332 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10333
10334         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10335
10336 2016-01-19  Jeff Law  <law@redhat.com>
10337
10338         PR middle-end/69347
10339         * tree-ssa-threadbackwards.c
10340         (fsm_find_control_statement_thread_paths): Do not try to lookup
10341         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10342
10343 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10344
10345         * doc/lto.texi: Remove text that says only Gold has linker plugin
10346         support.
10347
10348 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10349
10350         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10351         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10352         the DIE accordingly.
10353         (modified_type_die): Add REVERSE parameter and pass it recursively,
10354         as well as to base_type_die.  Adjust presence check accordingly.
10355         (base_type_for_mode): Adjust call to modified_type_die.
10356         (add_type_attribute): Add REVERSE parameter and pass it to
10357         modified_type_die.
10358         (generic_parameter_die): Adjust call to add_type_attribute.
10359         (add_scalar_info): Likewise.
10360         (add_subscript_info): Likewise.
10361         (gen_array_type_die): Likewise.
10362         (gen_descr_array_type_die): Likewise.
10363         (gen_entry_point_die): Likewise.
10364         (gen_enumeration_type_die): Likewise.
10365         (gen_formal_parameter_die): Likewise.
10366         (gen_subprogram_die): Likewise.
10367         (gen_variable_die ): Likewise.
10368         (gen_const_die): Likewise.
10369         (gen_field_die): Likewise.
10370         (gen_pointer_type_die): Likewise.
10371         (gen_reference_type_die): Likewise.
10372         (gen_ptr_to_mbr_type_die): Likewise.
10373         (gen_inheritance_die): Likewise.
10374         (gen_subroutine_type_die): Likewise.
10375         (gen_typedef_die): Likewise.
10376         (force_type_die): Adjust call to modified_type_die.
10377
10378 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10379
10380         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10381         flow throughout the file.  Fix broken link to Objective-C 2.0
10382         documentation.
10383         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10384         errors.
10385
10386 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10387
10388         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10389
10390 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10391
10392         PR ipa/66223
10393         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10394         (maybe_record_node): Record cxa_pure_virtual as the only possible
10395         target if there are not ohter candidates.
10396         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10397
10398 2016-01-19  Richard Biener  <rguenther@suse.de>
10399
10400         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10401         (get_memory_order): Likewise.
10402
10403 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10404
10405         * tree-vect-stmts.c (vectorizable_store): Check
10406         rhs vectype.
10407
10408 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10409
10410         PR jit/68446
10411         * gcc.c (driver::decode_argv): Add call to
10412         init_opts_obstack before init_options_struct.
10413         * opts.c (init_opts_obstack): Remove idempotency.
10414         (init_options_struct): Replace call to init_opts_obstack
10415         with a gcc_assert to verify that it has already been called.
10416         * toplev.c (toplev::main): Add call to init_opts_obstack before
10417         calls to init_options_struct.
10418         (toplev::finalize): Move cleanup of opts_obstack next to
10419         cleanup of save_decoded_options, clearing the latter, and
10420         save_decoded_options_count.
10421
10422 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10423
10424         PR target/69135
10425         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10426         attribute to unconditional.  Remove %? from output template.
10427
10428 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10429             Jiong Wang  <jiong.wang@arm.com>
10430
10431         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10432         generated from different expand order.
10433
10434 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10435
10436         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10437         Add support for CCMP costing.
10438
10439 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10440
10441         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10442         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10443         (fccmpe<mode>): Likewise.
10444         (fcmp): Rename to fcmp and globalize pattern.
10445         (fcmpe): Likewise.
10446         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10447         (aarch64_gen_ccmp_next): Add FP support.
10448
10449 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10450
10451         * target.def (gen_ccmp_first): Update documentation.
10452         (gen_ccmp_next): Likewise.
10453         * doc/tm.texi (gen_ccmp_first): Update documentation.
10454         (gen_ccmp_next): Likewise.
10455         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10456         expand_ccmp_expr_1.  Improve comments.
10457         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10458         (ccmp_ior<mode>): Remove pattern.
10459         (cmp<mode>): Remove expand.
10460         (cmp): Globalize pattern.
10461         (cstorecc4): Use cc_register.
10462         (mov<mode>cc): Remove ccmp_cc_register check.
10463         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10464         Simplify after removal of CC_DNE/* modes.
10465         (aarch64_ccmp_mode_to_code): Remove.
10466         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10467         In 'k' case use integer as condition.
10468         (aarch64_nzcv_codes): Remove inverted cases.
10469         (aarch64_code_to_ccmode): Remove.
10470         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10471         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10472         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10473         pattern.  Return the comparison with CC register.  Invert conditions
10474         when bitcode is OR.
10475         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10476         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10477
10478 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10479
10480         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10481         instrumented_version.
10482
10483 2016-01-19  Richard Biener  <rguenther@suse.de>
10484
10485         PR tree-optimization/69336
10486         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10487         handled components with get_ref_base_and_extent.
10488         (equal_mem_array_ref_p): Adjust.
10489
10490 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10491
10492         PR debug/65779
10493         * shrink-wrap.c: Include valtrack.h.
10494         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10495         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10496         in between insn and where it will be moved to.  Call
10497         dead_debug_insert_temp.
10498         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10499         first and dead_debug_local_finish at the end.
10500         For uses and defs bitmap, handle all regs in between REGNO and
10501         END_REGNO, not just the first one.
10502
10503 2016-01-19  Richard Biener  <rguenther@suse.de>
10504
10505         PR tree-optimization/69352
10506         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10507         (equal_mem_array_ref_p): Constrain size and max size properly.
10508         Compare the reverse flag.
10509
10510 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10511
10512         * ira.c (ira): Update regstat data if we deleted insns.
10513
10514 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10515
10516         PR rtl-optimization/68955
10517         PR rtl-optimization/64557
10518         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10519         here.  Fix up formatting.
10520         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10521
10522 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10523
10524         PR lto/69133
10525         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10526         assume that the node has body.
10527         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10528         check.
10529
10530 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10531
10532         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10533         thunks.
10534
10535 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10536
10537         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10538         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10539
10540 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10541             Martin Liska  <mliska@suse.cz>
10542             Michael Matz  <matz@suse.de>
10543
10544         * Makefile.in (OBJS): Add new source files.
10545         (GTFILES): Add hsa.c.
10546         * common.opt (disable_hsa): New variable.
10547         (-Whsa): New warning.
10548         * config.in (ENABLE_HSA): New.
10549         * configure.ac: Treat hsa differently from other accelerators.
10550         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10551         $enable_offloading.
10552         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10553         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10554         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10555         --with-hsa-kmt-lib.
10556         * doc/invoke.texi (-Whsa): Document.
10557         (hsa-gen-debug-stores): Likewise.
10558         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10559         to invoke offload compiler for hsa acclerator.
10560         * opts.c (common_handle_option): Determine whether HSA offloading
10561         should be performed.
10562         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10563         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10564         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10565         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10566         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10567         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10568         GF_OMP_FOR_KIND_GRID_LOOP.
10569         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10570         (pp_gimple_stmt_1): Likewise.
10571         * gimple-walk.c (walk_gimple_stmt): Likewise.
10572         * gimple.c (gimple_build_omp_grid_body): New function.
10573         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10574         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10575         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10576         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10577         GF_OMP_TEAMS_GRID_PHONY.
10578         (gimple_statement_omp_single_layout): Updated comments.
10579         (gimple_build_omp_grid_body): New function.
10580         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10581         (gimple_omp_for_grid_phony): New function.
10582         (gimple_omp_for_set_grid_phony): Likewise.
10583         (gimple_omp_parallel_grid_phony): Likewise.
10584         (gimple_omp_parallel_set_grid_phony): Likewise.
10585         (gimple_omp_teams_grid_phony): Likewise.
10586         (gimple_omp_teams_set_grid_phony): Likewise.
10587         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10588         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10589         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10590         (BUILT_IN_GOMP_TARGET): Updated type.
10591         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10592         (adjust_for_condition): New function.
10593         (get_omp_for_step_from_incr): Likewise.
10594         (extract_omp_for_data): Moved parts to adjust_for_condition and
10595         get_omp_for_step_from_incr.
10596         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10597         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10598         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10599         (scan_omp_parallel): Do not create child functions for phony
10600         constructs.
10601         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10602         (scan_omp_1_op): Checking assert we are not remapping to
10603         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10604         (parallel_needs_hsa_kernel_p): New function.
10605         (expand_parallel_call): Register apprpriate parallel child
10606         functions as HSA kernels.
10607         (grid_launch_attributes_trees): New type.
10608         (grid_attr_trees): New variable.
10609         (grid_create_kernel_launch_attr_types): New function.
10610         (grid_insert_store_range_dim): Likewise.
10611         (grid_get_kernel_launch_attributes): Likewise.
10612         (get_target_argument_identifier_1): Likewise.
10613         (get_target_argument_identifier): Likewise.
10614         (get_target_argument_value): Likewise.
10615         (push_target_argument_according_to_value): Likewise.
10616         (get_target_arguments): Likewise.
10617         (expand_omp_target): Call get_target_arguments instead of looking
10618         up for teams and thread limit.
10619         (grid_expand_omp_for_loop): New function.
10620         (grid_arg_decl_map): New type.
10621         (grid_remap_kernel_arg_accesses): New function.
10622         (grid_expand_target_kernel_body): New function.
10623         (expand_omp): Call it.
10624         (lower_omp_for): Do not emit phony constructs.
10625         (lower_omp_taskreg): Do not emit phony constructs but create for them
10626         a temporary variable receiver_decl.
10627         (lower_omp_taskreg): Do not emit phony constructs.
10628         (lower_omp_teams): Likewise.
10629         (lower_omp_grid_body): New function.
10630         (lower_omp_1): Call it.
10631         (grid_reg_assignment_to_local_var_p): New function.
10632         (grid_seq_only_contains_local_assignments): Likewise.
10633         (grid_find_single_omp_among_assignments_1): Likewise.
10634         (grid_find_single_omp_among_assignments): Likewise.
10635         (grid_find_ungridifiable_statement): Likewise.
10636         (grid_target_follows_gridifiable_pattern): Likewise.
10637         (grid_remap_prebody_decls): Likewise.
10638         (grid_copy_leading_local_assignments): Likewise.
10639         (grid_process_kernel_body_copy): Likewise.
10640         (grid_attempt_target_gridification): Likewise.
10641         (grid_gridify_all_targets_stmt): Likewise.
10642         (grid_gridify_all_targets): Likewise.
10643         (execute_lower_omp): Call grid_gridify_all_targets.
10644         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10645         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10646         (tree_omp_clause): Added union field dimension.
10647         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10648         * tree.c (omp_clause_num_ops): Added number of arguments of
10649         OMP_CLAUSE__GRIDDIM_.
10650         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10651         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10652         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10653         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10654         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10655         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10656         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10657         * tree-pass.h (make_pass_gen_hsail): Declare.
10658         (make_pass_ipa_hsa): Likewise.
10659         * ipa-hsa.c: New file.
10660         * lto-section-in.c (lto_section_name): Add hsa section name.
10661         * lto-streamer.h (lto_section_type): Add hsa section.
10662         * timevar.def (TV_IPA_HSA): New.
10663         * hsa-brig-format.h: New file.
10664         * hsa-brig.c: New file.
10665         * hsa-dump.c: Likewise.
10666         * hsa-gen.c: Likewise.
10667         * hsa.c: Likewise.
10668         * hsa.h: Likewise.
10669         * toplev.c (compile_file): Call hsa_output_brig.
10670         * hsa-regalloc.c: New file.
10671
10672 2016-01-18  Jeff Law  <law@redhat.com>
10673
10674         PR tree-optimization/69320
10675         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10676         ranged object, do nothing if the RHS constant is not [0..1].
10677         (optimize_stmt): Comparing a boolean ranged object against a
10678         constant outside [0..1] results in a compile-time constant.
10679
10680         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10681         test.
10682
10683 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10684
10685         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10686         (Option Summary): Update to reflect new section and moved options.
10687         (C++ Dialect Options): Move -fstats to new section.
10688         (Debugging Options): Move all dump, statistics, and other GCC
10689         developer options to new section.  Rewrite section introduction
10690         and re-order remaining options to put the more basic ones first.
10691         (Optimization Options): Move -fira-verbose and -flto-report* to
10692         new section.
10693         (Developer Options): New section incorporating moved options.
10694         * doc/cppopts.texi (-dM): Update cross-reference.
10695
10696 2016-01-18  Richard Henderson  <rth@redhat.com>
10697
10698         PR target/69176
10699         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10700         operands to pseudo only if CSE is expected.  Split long immediate
10701         operands only after reload, and for the stack pointer.
10702         (*add<GPI>3_pluslong): Remove.
10703         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10704         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10705         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10706         (*add<GPI>3 peepholes): New.
10707         (*add<GPI>3 splitters): New.
10708         * config/aarch64/constraints.md (Upl): New.
10709         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10710
10711 2016-01-18  Richard Biener  <rguenther@suse.de>
10712
10713         PR tree-optimization/69297
10714         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10715         stmt at most once.
10716         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10717
10718 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10719
10720         PR middle-end/68542
10721         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10722         of mixind vector and scalar types.
10723         (fold_relational_const): Add handling of vector
10724         comparison with boolean result.
10725         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10726         comparison of vector operands with boolean result for EQ/NE only.
10727         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10728         (verify_gimple_cond): Likewise.
10729         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10730         valid type of VAL.
10731
10732 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10733
10734         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10735         !TARGET_OCTEON.
10736
10737 2016-01-18  Richard Biener  <rguenther@suse.de>
10738
10739         PR middle-end/69308
10740         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10741
10742 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10743
10744         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10745
10746 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10747
10748         * omp-low.c (set_oacc_fn_attrib): Make extern.
10749         * omp-low.h (set_oacc_fn_attrib): Declare.
10750         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10751         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10752         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10753         Add and handle function parameter oacc_kernels_p.
10754         (find_reduc_addr, get_omp_data_i_param): New function.
10755         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10756         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10757         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10758         Calculate dominance info.  Skip loops that are not in a kernels region
10759         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10760         (pass_parallelize_loops::execute): Call parallelize_loops with
10761         oacc_kernels_p argument.
10762         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10763         New member function.
10764         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10765         * passes.def: Add argument to pass_parallelize_loops instantation.
10766
10767 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10768
10769         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10770         pass_parallelize_loops to be run outside the loop pipeline.
10771
10772 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10773
10774         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10775         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10776
10777 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10778
10779         PR target/63679
10780         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10781         using get_ref_base_and_extent.
10782         (equal_mem_array_ref_p): New.
10783         (hashable_expr_equal_p): Add call to previous.
10784
10785 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10786
10787         PR target/63679
10788         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10789         (sra_initialize): Allocate disqualified_constants.
10790         (sra_deinitialize): Free disqualified_constants.
10791         (disqualify_candidate): Update disqualified_constants when appropriate.
10792         (create_access): Scan for constant-pool entries as we go along.
10793         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10794         (maybe_add_sra_candidate): Allow constant-pool entries.
10795         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10796         (initialize_constant_pool_replacements): New.
10797         (sra_modify_assign): Avoid mangling assignments created by previous,
10798         and don't generate writes into constant pool.
10799         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10800
10801 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10802
10803         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10804         andnot instruction.
10805         (scalar_chain::convert_op): Likewise.
10806         * config/i386/i386.md (*andndi3_doubleword): New.
10807
10808 2016-01-18  Richard Biener  <rguenther@suse.de>
10809
10810         PR tree-optimization/69170
10811         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10812         building a vector from scalar results of a pattern stmt.
10813
10814 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10815
10816         * haifa-sched.c (autopref_multipass_init): Work around
10817         -Wmaybe-uninitialized warning.
10818
10819 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10820
10821         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10822         against the constant 0.
10823
10824 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10825
10826         PR tree-optimization/68799
10827         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10828         look up phi candidates in the statement-candidate map.
10829         (phi_add_costs): Likewise.
10830         (record_phi_increments): Likewise.
10831         (phi_incr_cost): Likewise.
10832         (ncd_with_phi): Likewise.
10833         (all_phi_incrs_profitable): Likewise.
10834
10835 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10836
10837         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10838         -Wmaybe-uninitialized warning.
10839
10840 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10841
10842         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10843         (Option Summary): Update to reflect new section and moved options.
10844         (C++ Dialect Options): Move -fvtable-verify and related options.
10845         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10846         and profiling-related options.
10847         (Optimization Options): Move profile generation options and
10848         -fstack-protector and related options.
10849         (Instrumentation Options): New section incorporating moved options.
10850         (Code Generation Options): Move -finstrument-functions and
10851         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10852
10853 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10854
10855         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10856
10857 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10858
10859         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10860
10861 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10862
10863         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10864         that checks whether the table is already empty.  Rename the
10865         original implementation to...
10866         (hash_table::empty_slot): ...this new private function.
10867
10868 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10869
10870         PR diagnostic/68899
10871         * diagnostic-show-locus.c (layout::print_source_line): Move x
10872         offset of line until after call to
10873         get_line_width_without_trailing_whitespace.
10874
10875 2016-01-15  Jeff Law  <law@redhat.com>
10876
10877         PR tree-optimization/69270
10878         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10879         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10880         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10881         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10882         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10883         ssa_name_has_boolean_range and constant_boolean_node.
10884
10885 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10886
10887         PR rtl-optimization/69030
10888         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10889         returning bool.
10890         (spill_pseudos): Delete debug insn for dead pseudo.
10891         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10892
10893 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10894
10895         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10896         New.
10897         (TYPES_UNOPUS): Likewise.
10898         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10899         builtin type, from UNOP to UNOPUS.
10900         (lbtruncuv4sf): Likewise.
10901         (lbtruncuv2df): Likewise.
10902         (lrounduv2sf): Likewise.
10903         (lrounduv4sf): Likewise.
10904         (lrounduv2df): Likewise.
10905         (lroundusf): Likewise.
10906         (lroundusf): Likewise.
10907         (lceiluv2sf): Likewise.
10908         (lceiluv4sf): Likewise.
10909         (lceiluv2df): Likewise.
10910         (lceilusf): Likewise.
10911         (lceiludf): Likewise.
10912         (lflooruv2sf): Likewise.
10913         (lflooruv4sf): Likewise.
10914         (lflooruv2df): Likewise.
10915         (lfloorusf): Likewise.
10916         (lfloorudf): Likewise.
10917         (lfrintnuv2sf): Likewise.
10918         (lfrintnuv4sf): Likewise.
10919         (lfrintnuv2df): Likewise.
10920         (lfrintnusf): Likewise.
10921         (lfrintnudf): Likewise.
10922         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10923         conversion.
10924         (vcvtq_u32_f32): Likewise.
10925         (vcvtq_u64_f64): Likewise.
10926         (vcvta_u32_f32): Likewise.
10927         (vcvtaq_u32_f32): Likewise.
10928         (vcvtaq_u64_f64): Likewise.
10929         (vcvtm_u32_f32): Likewise.
10930         (vcvtmq_u32_f32): Likewise.
10931         (vcvtmq_u64_f64): Likewise.
10932         (vcvtn_u32_f32): Likwise.
10933         (vcvtnq_u32_f32): Likewise.
10934         (vcvtnq_u64_f64): Likewise.
10935         (vcvtp_u32_f32): Likewise.
10936         (vcvtpq_u32_f32): Likewise.
10937         (vcvtpq_u64_f64): Likewise.
10938         (vcvtmd_u64_f64): Likewise.
10939         (vcvtms_u32_f32): Likewise.
10940         (vcvtad_u64_f64): Likewise.
10941         (vcvtas_u32_f32): Likewise.
10942         (vcvtnd_u64_f64): Likewise.
10943         (vcvtns_u32_f32): Likewise.
10944         (vcvtpd_u64_f64): Likewise.
10945         (vcvtps_u32_f32): Likewise.
10946
10947 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10948
10949         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10950         CSEL of zero_extended registers.
10951
10952 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10953
10954         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
10955         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
10956
10957 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10958
10959         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
10960         false when argument string is not found in the attributes table
10961         at all.
10962
10963 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
10964
10965         PR target/68609
10966         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
10967         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
10968         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
10969         precision estimate.
10970
10971 2016-01-15  Richard Biener  <rguenther@suse.de>
10972
10973         PR tree-optimization/66856
10974         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
10975         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
10976         (vect_create_new_slp_node): Increment stmt reference count.
10977         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
10978         an SLP tree before swapping operands.
10979         (vect_build_slp_tree): Likewise.
10980         (destroy_bb_vec_info): Free stmt info after SLP instances.
10981         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
10982         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
10983         (STMT_VINFO_NUM_SLP_USES): New macro.
10984
10985 2016-01-15  Richard Biener  <rguenther@suse.de>
10986
10987         PR debug/69137
10988         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
10989         (add_linkage_name): ... here.
10990         (gen_typedef_die): Use add_linkage_name_raw instead of
10991         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
10992         if necessary.
10993
10994 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
10995
10996         * gimplify.c (oacc_default_clause): Decode reference and pointer
10997         types for both kernels and parallel regions.
10998
10999 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
11000
11001         PR middle-end/69246
11002         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
11003
11004 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11005
11006         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
11007         (convert_scalars_to_vector): Likewise.
11008
11009 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
11010
11011         * doc/extend.texi (Type Traits): Fix grammar.
11012
11013 2016-01-15  Martin Jambor  <mjambor@suse.cz>
11014
11015         * tree-inline.c (remap_decl): Use existing dclarations if
11016         remapping a type and prevent_decl_creation_for_types.
11017         (replace_locals_stmt): Do an initial remapping of non-VLA typed
11018         decls first.  Do real remapping with
11019         prevent_decl_creation_for_types set.
11020         * tree-inline.h (copy_body_data): New field
11021         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
11022         padding.
11023
11024 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11025
11026         * config/s390/s390.opt (mmvcle): More verbose help text.
11027
11028 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11029
11030         * config/s390/s390.opt: Add period to -mzvector option text.
11031
11032 2016-01-15  Richard Biener  <rguenther@suse.de>
11033
11034         PR tree-optimization/68961
11035         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
11036         of invariants in stores again.
11037
11038 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11039
11040         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
11041
11042 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11043
11044         * config/i386/i386.c (ix86_expand_branch): Don't split
11045         DI mode xor instruction to SI mode.
11046
11047 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11048
11049         PR ipa/68148
11050         * ipa-icf.c (sem_function::merge): Virtual functions may become
11051         reachable even if they address is not taken and there are no
11052         idrect calls.
11053
11054 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11055
11056         * lto-streamer-out.c (subtract_estimated_size): New function.
11057         (get_symbol_initial_value): Use it.
11058
11059 2016-01-15  Christian Bruel  <christian.bruel@st.com>
11060
11061         PR target/65837
11062         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
11063         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
11064         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
11065         use add_builtin_function_ext_scope instead of add_builtin_function.
11066         (neon_set_p, neon_crypto_set_p): Remove.
11067         (arm_init_builtins): Always call arm_init_neon_builtins and
11068         arm_init_crypto_builtins.
11069         (arm_expand_builtin): Check that builtins are allowed for the arch.
11070         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
11071         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
11072         arm_init_neon_builtins call.
11073
11074 2016-01-15  Richard Biener  <rguenther@suse.de>
11075
11076         PR tree-optimization/69117
11077         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
11078         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
11079         of the leader conservatively.
11080         (free_scc_vn): Restore original SSA name infos.
11081
11082 2016-01-14  Jeff Law  <law@redhat.com>
11083
11084         PR tree-optimization/69270
11085         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
11086         single bit of precision, verify it's also unsigned.
11087         (record_edge_info): Use constant_boolean_node rather than fold_convert
11088         to convert boolean_true/boolean_false to the right type.
11089
11090 2016-01-14  Richard Henderson  <rth@redhat.com>
11091
11092         PR rtl-opt/69014
11093         * loop-doloop.c (record_reg_sets): New.
11094         (doloop_optimize): Reject the transform if the sequence
11095         clobbers registers live at the end of the loop block.
11096         (doloop_optimize_loops): Enable df_live if needed.
11097
11098 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11099
11100         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
11101         * gcc/config/rs6000/rs6000.c: Likewise.
11102         * gcc/config/rs6000/rs6000.h: Likewise.
11103         * gcc/config/rs6000/rs6000.md: Likewise.
11104         * gcc/doc/extend.texi: Likewsie.
11105
11106 2016-01-14  Jeff Law  <law@redhat.com>
11107
11108         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
11109         typo.
11110
11111 2016-01-14  Richard Henderson  <rth@redhat.com>
11112
11113         PR c/69272
11114         PR tree-opt/68964
11115         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11116         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11117         instead of builtin_decl_declared_p to test for declaration.
11118
11119 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11120
11121         * doc/loop.texi (Loop Analysis and Representation): Document
11122         loop_depth function.
11123
11124 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11125
11126         PR tree-optimization/68773
11127         * omp-low.c (expand_omp_target): Don't set force_output.
11128         * varpool.c (varpool_node::get_create): Same.
11129         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11130         offload_funcs with force_output.
11131
11132 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11133
11134         PR debug/69244
11135         * lra-eliminations.c (move_plus_up): Don't change anything if either
11136         the outer or inner subreg mode is not MODE_INT.
11137         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11138         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11139
11140 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11141
11142         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11143         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11144         reduc_uplus_@var{m}): Remove.
11145         * expr.c (expand_expr_real_2): Remove expansion path for
11146         reduc_[us](min|max|plus) optabs.
11147         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11148         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11149         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11150         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11151         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11152         reduc_[us](min|max|plus) optabs.
11153
11154 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11155
11156         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11157         (reduc_plus_scal_v2sf): New.
11158         (reduc_smax_v2sf): Rename to...
11159         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11160         (reduc_smin_v2sf): Rename to...
11161         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11162
11163 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11164
11165         * alias.c (compare_base_symbol_refs): New function.
11166         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11167         it.
11168
11169 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11170
11171         PR middle-end/68146
11172         PR tree-optimization/69155
11173         * tree-complex.c: Include cfganal.h.
11174         (phis_to_revisit): New variable.
11175         (extract_component): Add phiarg_p argument.  Assert that returned
11176         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11177         (update_phi_components): Partly rewrite to use loop over real/imag
11178         components instead of code duplication.  If extract_component returns
11179         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11180         create_tmp_reg into the PHI node instead, and mention the phi triplet
11181         in phis_to_revisit.
11182         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11183         in phis_to_revisit at the end.
11184
11185 2016-01-14  Richard Biener  <rguenther@suse.de>
11186
11187         PR tree-optimization/68060
11188         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11189         outer loop reduction is only used in the inner loop before
11190         detecting a double reduction.
11191
11192 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11193
11194         PR target/68269
11195         * combine.c (expand_field_assignment): Punt if compute_mode is
11196         unsupported scalar mode.
11197
11198 2016-01-14  Richard Biener  <rguenther@suse.de>
11199
11200         PR tree-optimization/66856
11201         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11202         SLP node only if it built successfully.
11203         (vect_analyze_slp_instance): Adjust.
11204
11205 2016-01-14  Jeff Law  <law@redhat.com>
11206
11207         PR tree-optimization/69270
11208         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11209         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11210         to the type of op0.
11211
11212 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11213
11214         PR ipa/66487
11215         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11216         use block_ultimate_origin
11217         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11218
11219 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11220
11221         * doc/invoke.texi (Submodel Options): Rename section to
11222         "Machine-Dependent Options" to better reflect its content.
11223         Rewrite introductory text to remove archaic CPU names.
11224         Update references.
11225
11226 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11227
11228         * doc/invoke.texi (Code Gen Options): Move section up in file,
11229         before target-specific options.  Update menu and option summary
11230         to reflect the new section ordering.
11231
11232 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11233
11234         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11235         (C++ Dialect Options): Add cross-reference to -std option.
11236         * doc/standards.texi (C++ Language): Document C++14 support.
11237
11238 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11239
11240         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11241         for pack/unpack functions for __ibm128.
11242         (PACK_IF): Likewise.
11243         (UNPACK_IF): Likewise.
11244
11245         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11246         support for __ibm128 pack/unpack functions.
11247         (rs6000_invalid_builtin): Likewise.
11248         (rs6000_init_builtins): Likewise.
11249         (rs6000_opt_masks): Likewise.
11250
11251         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11252         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11253         functions
11254         (RS6000_BTM_COMMON): Likewise.
11255
11256         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11257         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11258         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11259         128-bit floating point.  Add support for the double values to be
11260         in Altivec registers for TF/IF packing and unpacking, but restrict
11261         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11262         register support for packing.  Allow pack inputs to be memory
11263         locations.  Don't build generator functions for unpack<mode>_dm
11264         and unpack<mode>_nodm.
11265         (unpack<mode>_dm): Likewise.
11266         (unpack<mode>_nodm): Likewise.
11267         (pack<mode>): Likewise.
11268
11269         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11270         built-in functions to pack/unpack explicit __ibm128 values.
11271         (__builtin_unpack_ibm128): Likewise.
11272
11273         * doc/extend.texi (PowerPC Built-in Functions): Document
11274         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11275
11276 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11277
11278         PR c/66208
11279         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11280         Add new arg loc and pass it down as context.
11281         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11282         to the location to use for the warning.
11283         (check_function_arguments): New arg loc.  All callers changed.  Pass
11284         it to check_function_nonnull.
11285         * c-common.h (check_function_arguments): Adjust declaration.
11286
11287 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11288
11289         PR tree-optimization/69156
11290         * gimple.c (validate_type): Removed.
11291         (gimple_builtin_call_types_compatible_p): Use
11292         useless_type_conversion_p instead of validate_type.
11293         * value-prof.c (gimple_stringop_fixed_value): Fold
11294         icall_size to correct type.
11295
11296 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11297
11298         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11299         effects.
11300
11301 2016-01-13  Richard Henderson  <rth@redhat.com>
11302
11303         PR tree-opt/68964
11304         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11305         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11306         (ix86_builtin_tm_store): Remove.
11307         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11308         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11309         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11310         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11311         * doc/tm.texi: Rebuild.
11312
11313         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11314         (BUILT_IN_TM_MEMCPY_RTWN): New.
11315         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11316         fallback from vector to integer helpers.
11317         (build_tm_load): Handle vector types directly, instead of
11318         via target hook.
11319         (build_tm_store): Likewise.
11320         (expand_assign_tm): Prepare for register types not handled by
11321         the above.  Copy them to memory and use memcpy.
11322         * tree.c (tm_define_builtin): New.
11323         (find_tm_vector_type): New.
11324         (build_tm_vector_builtins): New.
11325         (build_common_builtin_nodes): Call it.
11326
11327 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11328
11329         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11330         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11331
11332 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11333
11334         PR tree-optimization/69169
11335         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11336         handled_struct_type param.
11337         (create_variable_info_for, intra_create_variable_infos): Call
11338         create_variable_info_for_1 with extra arg.
11339
11340 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11341
11342         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11343         and "armv8.1-a+crc" entries.
11344
11345 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11346
11347         PR target/69228
11348         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11349         Change first operand predicate from register_or_constm1_operand
11350         to register_operand.
11351         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11352         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11353         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11354         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11355         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11356         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11357         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11358         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11359         comparison with constm1_rtx from vec_prefetch_gen part.
11360
11361 2016-01-13  Richard Biener  <rguenther@suse.de>
11362
11363         PR tree-optimization/69013
11364         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11365         Exchange assert for a test.
11366
11367 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11368
11369         PR target/69247
11370         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11371
11372 2016-01-13  Richard Biener  <rguenther@suse.de>
11373
11374         PR tree-optimization/69242
11375         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11376         assert with a check.
11377
11378 2016-01-13  Richard Biener  <rguenther@suse.de>
11379
11380         PR tree-optimization/69186
11381         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11382         Properly guard vect_update_misalignment_for_peel call.
11383
11384 2016-01-12  Jeff Law  <law@redhat.com>
11385
11386         PR tree-optimization/pr67755
11387         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11388         "need_profile_correction".
11389         (thread_block_1): Initialize new field to false by default.  If we
11390         have multiple thread paths through a common joiner to different
11391         final targets, then set new field to true.
11392         (compute_path_counts): Only do count adjustment when it's really
11393         needed.
11394
11395 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11396
11397         * doc/invoke.texi (Spec Files): Move section down in file, past
11398         all command-line option descriptions.
11399
11400 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11401
11402         PR middle-end/54809
11403         * doc/gty.texi: Remove documentation of mark_hook.
11404         * gengtype.c (struct write_types_data): Remove code to support
11405         mark_hook attribute.
11406         (walk_type): Likewise.
11407         (write_func_for_structure): Likewise.
11408
11409 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11410
11411         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11412         Directory Options, and -specs= to Overall Options.
11413         (Overall Options): Adjust similarly.  Reorder to group related
11414         options together.  Make -specs= cross-reference the spec file details.
11415         (Directory Options): Adjust similarly.
11416
11417 2016-01-12  Jeff Law  <law@redhat.com>
11418
11419         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11420
11421 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11422
11423         * gcc.c (spec_undefvar_allowed): New global.
11424         (process_command): Set to true when running for --version or --help,
11425         alone or together.
11426         (getenv_spec_function): When the variable is not defined, use the
11427         variable name as the variable value if we're allowed not to issue
11428         a fatal error.
11429
11430 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11431
11432         PR tree-optimization/68911
11433         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11434         information computed for expression "init + nit * step".
11435
11436 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11437
11438         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11439         about name of GCC executable.  Remove deleted node from menu.
11440         (Directory Options) <-B>: Remove cross-reference to deleted node.
11441         (Target Options): Delete section.
11442
11443 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11444
11445         PR target/69180
11446         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11447         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11448
11449 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11450
11451         PR target/69198
11452         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11453         aligned_mem is properly set for AVX512-VL floating point masked
11454         stores.
11455
11456         PR target/69175
11457         * ifcvt.c (cond_exec_process_if_block): When removing the last
11458         insn from then_bb, remove also any possible barriers that follow it.
11459
11460 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11461
11462         PR target/68456
11463         PR target/69226
11464         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11465         (PTRDIFF_TYPE): Likewise.
11466         (WCHAR_TYPE): Likewise.
11467         (WCHAR_TYPE_SIZE): Likewise.
11468         (STDINT_LONG32): Likewise.
11469
11470 2016-01-12  Richard Biener  <rguenther@suse.de>
11471
11472         PR tree-optimization/69053
11473         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11474         convert initial value for cond reductions.
11475
11476 2016-01-12  Richard Biener  <rguenther@suse.de>
11477
11478         PR tree-optimization/69007
11479         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11480         widen_sum after dot_prod and sad.
11481
11482 2016-01-12  Richard Biener  <rguenther@suse.de>
11483
11484         PR tree-optimization/69168
11485         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11486         pattern stmt SLP type.
11487         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11488         end up unused so cope with that case.
11489
11490 2016-01-12  Richard Biener  <rguenther@suse.de>
11491
11492         PR tree-optimization/69157
11493         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11494         stmts def type only during analyze phase.
11495         (vectorizable_call): Likewise.
11496         (vectorizable_simd_clone_call): Likewise.
11497         (vectorizable_conversion): Likewise.
11498         (vectorizable_assignment): Likewise.
11499         (vectorizable_shift): Likewise.
11500         (vectorizable_operation): Likewise.
11501         (vectorizable_store): Likewise.
11502         (vectorizable_load): Likewise.
11503
11504 2016-01-12  Richard Biener  <rguenther@suse.de>
11505
11506         PR tree-optimization/69174
11507         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11508         space.
11509         (vectorizable_load): Properly compute the number of loads needed
11510         for permuted strided SLP loads and do not spuriously assign
11511         to SLP_TREE_VEC_STMTS.
11512
11513 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11514
11515         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11516         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11517         (MD_EXEC_PREFIX): Remove.
11518         (MD_STARTFILE_PREFIX) Removee.
11519         (FILE_NAME_ABSOLUTE_P): Remove.
11520         (CPP_SPEC): Do not read macros from sys/version.h.
11521         (LINK_COMMAND_SPEC): Remove.
11522         (LOCAL_INCLUDE_DIR): Remove.
11523         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11524         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11525         (POST_LINK_SPEC): Define to invoke stubify after linker
11526         (LIBSTDCXX): Remove define
11527         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11528         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11529         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11530         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11531         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11532         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11533         (i386_djgpp_asm_named_section): Add propotype of new procedure
11534
11535         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11536         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11537         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11538         in config/i386/djgpp.h).
11539         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11540         STANDARD_STARTFILE_PREFIX_1.
11541         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11542         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11543         installation errors.
11544         (MAX_OFILE_ALIGNMENT): Define to 128.
11545         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11546
11547         * config/i386/djgpp.c: New file. Add implementation of
11548         i386_djgpp_asm_named_section.
11549
11550         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11551
11552         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11553         Add rule for building djgpp.o.
11554
11555 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11556
11557         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11558         (rtx_is_swappable_p): Reductions are swappable.
11559         (insn_is_swappable_p): V2DF reductions are swappable.
11560
11561 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11562
11563         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11564         reloads for other unsupported memory operands.
11565
11566 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11567             Jim Wilson  <jim.wilson@linaro.org>
11568
11569         PR target/69194
11570         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11571         copy_to_mode_reg instead of force_reg.
11572
11573 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11574
11575         PR target/69225
11576         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11577         TARGET_80387 is true.
11578
11579 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11580
11581         PR target/69071
11582         * lra-eliminations.c (move_plus_up): Only move plus up
11583         if subreg of the constant can be simplified into constant
11584         and use the simplified subreg of the constant instead of
11585         the original constant.
11586
11587         * fold-const.c (fold_convertible_p): Don't return true
11588         for conversion of VECTOR_TYPE to same sized integral type.
11589         (fold_convert_loc): Fix up formatting.  Fold conversion of
11590         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11591         instead of NOP_EXPR.
11592
11593         PR tree-optimization/69214
11594         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11595         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11596         Formatting fix.
11597
11598         PR tree-optimization/69207
11599         * tree-vect-slp.c (vect_get_constant_vectors): For
11600         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11601         fold_convertible_p to vector_type's element type, and always
11602         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11603
11604 2016-01-11  Richard Biener  <rguenther@suse.de>
11605
11606         PR tree-optimization/69173
11607         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11608         fixup the cycle if all stmts are in a pattern.
11609
11610 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11611
11612         PR middle-end/68999
11613         * alias.c (base_alias_check): Move check for addresses with
11614         alignment ANDs before the call for compare_base_decls.
11615         (memrefs_conflict_p): Return -1 for different decls
11616         that went through alignment adjustments.
11617
11618 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11619
11620         PR rtl-optimization/68796
11621         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11622         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11623         and QImode comparisons against zero with CC_NZmode.
11624         * config/aarch64/iterators.md (short_mask): New mode_attr.
11625
11626 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11627
11628         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11629         (<avx512>_store<mode>_mask): Likewise.
11630
11631 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11632             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11633
11634         PR rtl-optimization/68841
11635         * ifcvt.c (struct noce_if_info): Add orig_x field.
11636         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11637         Don't record conflicts on to_rename if it's present.
11638         Allow memory destinations in sets.
11639         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11640         blocks, passing orig_x to the checks.
11641         (noce_process_if_block): Set if_info->orig_x appropriately.
11642
11643 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11644
11645         PR tree-optimization/69069
11646         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11647
11648 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11649
11650         PR rtl-optimization/68920
11651         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11652         of conditional moves for  RTL if-conversion to 1 for
11653         TARGET_ONE_IF_CONV_INSN.
11654         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11655         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11656         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11657         parameter to restirct number of conditional moves for
11658         RTL if-conversion.
11659         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11660         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11661         conditionl moves.
11662
11663 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11664
11665         PR bootstrap/69123
11666         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11667         onepart vars.  Fix typo in comment.  Fix reversed condition in
11668         unshare test.
11669         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11670
11671         PR bootstrap/69123
11672         * var-tracking.c (dump_onepart_variable_differences): New.
11673         (dataflow_set_different): If a detailed dump is requested,
11674         delay early returns and dump differences between onepart
11675         variables present before and after, and added variables.
11676
11677 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11678
11679         PR target/69010
11680         * expr.c (expand_expr_real_1): For boolean vector constants
11681         with a scalar mode use const_scalar_mask_from_tree.
11682         (const_scalar_mask_from_tree): New.
11683         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11684         assigned to a mask type to handle constants.
11685
11686 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11687
11688         PR ipa/69044
11689         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11690         useless parameters if we cannot change function signature.
11691
11692 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11693
11694         PR ipa/66616
11695         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11696         flag.
11697
11698 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11699
11700         PR tree-optimization/69109
11701         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11702         latch with phi.
11703
11704 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11705
11706         PR tree-optimization/69108
11707         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11708         res is not used in a phi.
11709
11710 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11711
11712         PR 67425
11713         * common.opt (frandom-seed): Fix parameter name.
11714         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11715
11716 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11717
11718         PR tree-optimization/69058
11719         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11720         not supported.
11721
11722 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11723
11724         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11725         (mcode-density): Likewise.
11726
11727 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11728
11729         PR tree-optimization/69062
11730         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11731         (parallelize_loops): Don't paralelize loop that has phi with address
11732         arg.
11733
11734 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11735
11736         PR tree-optimization/69039
11737         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11738         phi for reduction.
11739
11740 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11741
11742         PR middle-end/68743
11743         * match.pd: Require target has function_c99_misc before doing
11744         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11745
11746 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11747
11748         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11749         use GMPINC.
11750         * configure: Regenerate.
11751
11752 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11753
11754         PR middle-end/50865
11755         PR tree-optimization/69097
11756         * fold-const.h (expr_not_equal_to): New prototype.
11757         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11758         (expr_not_equal_to): New function.
11759         * match.pd (X % -Y is the same as X % Y): Don't optimize
11760         unless X is known not to be equal to minimum or Y is known
11761         not to be equal to -1.
11762         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11763         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11764         (simplify_stmt_using_ranges): Adjust caller.
11765         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11766         substitute_and_fold.
11767
11768 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11769
11770         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11771         w/o DECL_NAME.
11772
11773 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11774
11775         PR tree-optimization/69167
11776         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11777         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11778         ops[0] comparison.
11779         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11780
11781 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11782             Richard Biener  <rguenther@suse.de>
11783
11784         PR tree-optimization/68707
11785         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11786         instances that can be handled via vect_load_lanes.
11787
11788 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11789
11790         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11791         if we can't determine address equivalence.
11792         * alias.c (compare_base_decl): Update for changed return value of
11793         symtab_node::equal_address_to.
11794
11795 2016-01-08  Jason Merrill  <jason@redhat.com>
11796
11797         PR c++/68983
11798         PR c++/67557
11799         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11800         * expr.c (store_field): Not here.
11801         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11802         call with TREE_ADDRESSABLE type.
11803         * tree-cfg.c (verify_gimple_call): Adjust.
11804
11805 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11806
11807         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11808         libc_internal.
11809
11810 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11811
11812         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11813         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11814         (reduc_smin_v2sf): Rename to...
11815         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11816         (reduc_splus_v2sf): Rename to...
11817         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11818
11819 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11820
11821         PR tree-optimization/69162
11822         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11823         valist argument in another argument.
11824         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11825         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11826         to determine the va_list type, build a MEM_REF instead of
11827         build_fold_indirect_ref.
11828
11829         PR tree-optimization/69172
11830         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11831         gimple_build.
11832
11833 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11834
11835         PR tree-optimization/67781
11836         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11837         and cmpnop in two steps: first the ones not accessed in original
11838         gimple expression in a endian independent way and then the ones not
11839         accessed in the final result in an endian-specific way.
11840
11841 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11842
11843         PR tree-optimization/69083
11844         * tree-vect-slp.c (vect_get_constant_vectors): For
11845         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11846         element type.  If op is fold_convertible_p to vector_type's element
11847         type, use NOP_EXPR instead of VCE.
11848
11849 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11850
11851         PR rtl-optimization/67778
11852         PR rtl-optimization/68634
11853         PR rtl-optimization/68909
11854         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11855         block from the stack until done with it.  Remove a superfluous
11856         bitmap set.  Remove a superfluous bitmap test.
11857
11858 2016-01-07  Martin Sebor  <msebor@redhat.com>
11859
11860         PR c/68966
11861         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11862         constraint on the type of arguments.
11863
11864 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11865
11866         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11867         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11868         unaligned_access on the gcc_options set.
11869         * config/arm/arm.c (arm_option_override_internal): Use
11870         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11871
11872 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11873
11874         PR target/69140
11875         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11876         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11877
11878 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11879
11880         Revert
11881         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11882
11883         PR target/69140
11884         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11885         depending on frame_pointer_needed before remaining integer and SSE
11886         registers are saved.
11887
11888 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11889
11890         PR 1078
11891         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11892
11893 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11894
11895         PR target/69171
11896         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11897         Use the "xBm" constraint.
11898         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11899         Likewise.
11900         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11901         (sse_cvtsi2ssq<round_name>): Likewise.
11902         (sse_cvtss2si<round_name>): Likewise.
11903         (sse_cvtss2siq<round_name>): Likewise.
11904         (sse2_cvtsi2sdq<round_name>): Likewise.
11905         (sse2_cvtsd2si<round_name>): Likewise.
11906         (sse2_cvtsd2siq<round_name>): Likewise.
11907         * config/i386/subst.md (round_nimm_scalar_predicate): New
11908         predicate.
11909
11910 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11911
11912         PR middle-end/67639
11913         * varasm.c (make_decl_rtl): Mark invalid register vars as
11914         DECL_EXTERNAL.
11915
11916         PR rtl-optimization/66206
11917         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11918         All callers changed.
11919
11920 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11921
11922         PR tree-optimization/69141
11923         * tree-ssa-pre.c: Include langhooks.h.
11924         (eliminate_dom_walker::before_dom_children): Use
11925         lang_hooks.decl_printable_name instead of
11926         cgraph_node::get ()->name ().
11927
11928         PR middle-end/68960
11929         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11930         it and DECL_ALIGN too.
11931
11932 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11933
11934         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11935
11936 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11937
11938         PR target/69140
11939         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11940         depending on frame_pointer_needed before remaining integer and SSE
11941         registers are saved.
11942
11943 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11944
11945         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11946         mode iterator with VSX_M2.
11947         (*p9_vecstore_<mode>): Likewise.
11948         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11949         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11950         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
11951         (define_split for VSX_LE128 stores): Likewise.
11952         (define_peephole2 for TImode LE swaps): Likewise.
11953         (define_split for VSX_LE128 post-reload stores): Likewise.
11954
11955 2016-01-06  Marek Polacek  <polacek@redhat.com>
11956
11957         PR sanitizer/69099
11958         * convert.c (convert_to_integer_1): Adjust call to
11959         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
11960         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
11961         EXPR instead of ARG.
11962         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
11963
11964 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
11965
11966         PR 1078
11967         * doc/extend.texi (RL78 Variable Attributes): New section.
11968
11969 2016-01-05  Marek Polacek  <polacek@redhat.com>
11970
11971         PR c/69104
11972         * builtins.c (get_memmodel): Use expansion point location rather than
11973         the input location.  Call warning_at rather than warning.
11974         (expand_builtin_atomic_compare_exchange): Likewise.
11975         (expand_builtin_atomic_load): Likewise.
11976         (expand_builtin_atomic_store): Likewise.
11977         (expand_builtin_atomic_clear): Likewise.
11978
11979 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11980
11981         PR target/68991
11982         * config/i386/i386.c (ix86_expand_vector_logical_operator):
11983         Replace nonimmediate_operand with vector_operand.
11984         * config/i386/predicates.md (vector_operand): New predicate.
11985         (general_vector_operand): Replace nonimmediate_operand with
11986         vector_operand.
11987         * config/i386/sse.md: Replace nonimmediate_operand with
11988         vector_operand and m constraint with Bm constraint on SSE
11989         patterns with 16-byte memory operand.
11990         * config/i386/subst.md (round_nimm_predicate): Replace
11991         nonimmediate_operand with vector_operand.
11992         (round_saeonly_nimm_predicate): Likewise.
11993         (round_saeonly_nimm_scalar_predicate): New.
11994
11995 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11996
11997         PR target/68991
11998         * config/i386/constraints.md (Bm): New constraint.
11999         * config/i386/predicates.md (vector_memory_operand): New
12000         predicate.
12001         * config/i386/sse.md: Replace xm with xBm in plusminus and
12002         any_logic patterns.
12003
12004 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12005
12006         PR 1078
12007         * doc/extend.texi (V850 Function Attributes): New section.
12008         (V850 Variable Attributes): New section.
12009
12010 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12011
12012         PR 1078
12013         * doc/extend.texi (MicroBlaze Function Attributes): Document
12014         interrupt_handler and fast_interrupt attributes.
12015
12016 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
12017
12018         PR other/60465
12019         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
12020         for local symbolic operands.
12021         * config/ia64/predicates.md (local_symbolic_operand64): New
12022         predicate.
12023
12024 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12025
12026         PR rtl-optimization/68651
12027         * combine.c (combine_simplify_rtx): Canonicalize x + x into
12028         x << 1.
12029
12030 2016-01-05  Nathan Sidwell  <nathan@acm.org>
12031
12032         * alias.c (compare_base_decls): Use symtab_node::get.
12033
12034 2016-01-05  Nick Clifton  <nickc@redhat.com>
12035
12036         PR target/68770
12037         * ira-costs.c (copy_cost): Initialise the t_icode field of the
12038         secondary_reload_info structure.
12039
12040         PR target/66655
12041         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
12042         decls if weak support is available.
12043
12044 2016-01-04  Martin Sebor  <msebor@redhat.com>
12045
12046         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
12047
12048 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12049
12050         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12051         OPTION_MASK_P9_DFORM.
12052
12053         * config/rs6000/constraints.md (wo constraint): New constraint for
12054         ISA 3.0 (power9).
12055
12056         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
12057         for wo constraint.
12058         (rs6000_init_hard_regno_mode_ok): Likewise.
12059
12060         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
12061         wo constraint.
12062
12063         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
12064         expanders not to have constraints.  Add support for ISA 3.0 xxperm
12065         instruction.  Add support for fusing xxlor with xxperm.
12066         (altivec_vperm_<mode>_internal): Likewise.
12067         (altivec_vperm_v8hiv16qi): Likewise.
12068         (altivec_vperm_<mode>v16q): Likewise.
12069         (altivec_vperm_<mode>_uns): Likewise.
12070         (vperm_v8hiv4si): Likewise.
12071         (vperm_v16qiv8hi): Likewise.
12072
12073         * doc/md.texi (RS/6000 constraints): Document wo constraint.
12074
12075 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
12076
12077         Update copyright years.
12078
12079         * gcc.c (process_command): Update copyright notice dates.
12080         * gcov-dump.c (print_version): Ditto.
12081         * gcov.c (print_version): Ditto.
12082         * gcov-tool.c (print_version): Ditto.
12083         * gengtype.c (create_file): Ditto.
12084         * doc/cpp.texi: Bump @copying's copyright year.
12085         * doc/cppinternals.texi: Ditto.
12086         * doc/gcc.texi: Ditto.
12087         * doc/gccint.texi: Ditto.
12088         * doc/gcov.texi: Ditto.
12089         * doc/install.texi: Ditto.
12090         * doc/invoke.texi: Ditto.
12091
12092 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12093
12094         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
12095         modes larger than TImode as TImode if NEON is not enabled.
12096
12097 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12098
12099         PR target/69100
12100         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
12101         mode for %f0-%f31 only if TARGET_FPU.
12102
12103 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12104
12105         PR target/69072
12106         * config/sparc/sparc.c (scan_record_type): Take into account subfields
12107         to compute the PACKED_P predicate.
12108         (function_arg_record_value): Minor tweaks.
12109
12110 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12111
12112         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12113         option for arm*-*-* targets.
12114
12115 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12116
12117         * doc/extend.texi (Common Function Attributes): Move docs for
12118         MSP430-specific attributes to....
12119         (MSP430 Function Attributes): ...here.  Delete the redundant
12120         entries and copy-edit the remaining text.
12121         (MSP430 Variable Attributes): Use uniform format for index
12122         entries and add a cross-reference to the corresponding function
12123         attribute docs.
12124
12125 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12126
12127         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12128         -finite-math typo.
12129         (x86 Options): Likewise.
12130
12131 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12132
12133         PR 1078
12134
12135         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12136         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12137         to corresponding attribute.
12138
12139 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12140
12141         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12142         to correct alphabetization of table.  Copy-edit and correct
12143         markup.
12144         <stack_protect>: Likewise.
12145         <target_clones>: Likewise.
12146         <simd>: Likewise.
12147         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12148         Correct punctuation.
12149         (Code Gen Options) <-fno-plt>: Copy-edit.
12150
12151 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12152
12153         PR target/68917
12154         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12155         SI values.  Explicitly convert SI to DI and vice-versa.
12156
12157 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12158
12159         PR tree-optimization/69070
12160         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12161         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12162
12163         PR sanitizer/69055
12164         * ubsan.c (ubsan_instrument_float_cast): Call
12165         initialize_sanitizer_builtins.
12166
12167         PR target/69015
12168         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12169 \f
12170 Copyright (C) 2016 Free Software Foundation, Inc.
12171
12172 Copying and distribution of this file, with or without modification,
12173 are permitted in any medium without royalty provided the copyright
12174 notice and this notice are preserved.