Set DECL_PT_UID for merged variables in IPA ICF (PR70856).
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-18  Martin Liska  <mliska@suse.cz>
2
3         PR fortran/70856
4         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
5         merged variables.
6
7 2016-05-18  Richard Biener  <rguenther@suse.de>
8
9         * lto-streamer.h (LTO_major_version): Bump to 6.
10
11 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
12
13         * function.c (make_split_prologue_seq, make_prologue_seq,
14         make_epilogue_seq): New functions, factored out from...
15         (thread_prologue_and_epilogue_insns): Here.
16
17 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
18
19         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
20         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
21         of before.  Add a comment.
22
23 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
24
25         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
26         expression pointer, not pointer to the pointer.
27
28 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
29
30         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
31         (avx2_pbroadcast<mode>): Add another alternative with v instead
32         of x constraints in it, using <pbroadcast_evex_isa> isa.
33         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
34
35         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
36         constraint x instead of v in second alternative, add avx512bw
37         alternative.
38
39         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
40         constraint x instead of v in second alternative, add avx512bw
41         alternative.
42
43         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
44         constraint x instead of v in second alternative, add avx512bw
45         alternative.
46
47         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
48         avx512bw alternative.
49
50 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
51
52         * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
53         array to 128 chars.
54         (define_insn "*andnottf3"): Ditto.
55         (define_insn "*<code><mode>3"/any_logic): Ditto.
56         (define_insn "*<code>tf3"/any_logic): Ditto.
57         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
58         operand to block AVX-512VL insn variant emit when it is not enabled.
59
60 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
61
62         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
63         constraint fot SF mode.
64
65 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
66             Kirill Yukhin  <kirill.yukhin@intel.com>
67
68         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
69         modifiers.
70         (define_insn "rsqrt14<mode>"): Ditto.
71         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
72         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
73         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
74         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
75         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
76         Ditto.
77         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
78         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
79         * config/i386/i386.c (ix86_print_operand): Expand check for size
80         override codes for Intel syntax.
81
82 2016-05-18  Richard Biener  <rguenther@suse.de>
83
84         PR tree-optimization/71168
85         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
86         initialization earlier.
87
88 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
89
90         * config/aarch64/aarch64-simd.md
91         (aarch64_reduc_plus_internal<mode>): Rename to...
92         (reduc_plus_scal): ...This, and remove previous implementation.
93
94 2016-05-18  Richard Biener  <rguenther@suse.de>
95
96         * passes.def: Put late dse and cd_dce in canonical order.
97
98 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
99
100         * ipa-inline-transform.c (preserve_function_body_p): Look for
101         first non-thunk clone.
102         (save_function_body): Save into first non-thunk.
103         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
104         up call stmt id.
105         (lto_output_node): Inline thunks don't need body in every
106         partition.
107         * lto-streamer-in.c: Do not fixup thunk clones.
108         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
109         thunks.
110         * tree-inline.c (copy_bb): Be prepared for target node to be new after
111         folding suceeds.
112
113 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
114
115         PR middle-end/63586
116         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
117         (reassociate_bb): Call transform_add_to_multiply.
118
119 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
120
121         * config/aarch64/aarch64.c (all_extensions): Removed unused static variable.
122
123 2016-05-17  Nathan Sidwell  <nathan@acm.org>
124
125         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
126         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
127
128 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
129
130         PR tree-optimization/54579
131         PR middle-end/55299
132         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
133
134 2016-05-17  Marek Polacek  <polacek@redhat.com>
135
136         PR ipa/71146
137         * tree-inline.c (expand_call_inline): Call
138         maybe_remove_unused_call_args.
139
140 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
141
142         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
143         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
144         * doc/md.texi (fmin@var{m}3): Likewise.
145
146 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
147
148         * match.pd (X & C): New transformation.
149
150 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
151
152         * match.pd (~X & Y): New transformation.
153
154 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
155
156         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
157         information for new SSA_NAME.
158         (simplify_conversion_using_ranges): Get range through get_range_info
159         instead of get_value_range.
160
161 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
162
163         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
164         Remove inline assembly.
165         (vmvn_s16): Likewise.
166         (vmvn_s32): Likewise.
167         (vmvn_u8): Likewise.
168         (vmvn_u16): Likewise.
169         (vmvn_u32): Likewise.
170         (vmvnq_s8): Likewise.
171         (vmvnq_s16): Likewise.
172         (vmvnq_s32): Likewise.
173         (vmvnq_u8): Likewise.
174         (vmvnq_u16): Likewise.
175         (vmvnq_u32): Likewise.
176         (vmvn_p8): Likewise.
177         (vmvnq_p16): Likewise.
178
179 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
180
181         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
182         Use builtin.
183         (vmul_n_s16): Likewise.
184         (vmul_n_s32): Likewise.
185         (vmul_n_u16): Likewise.
186         (vmul_n_u32): Likewise.
187         (vmulq_n_f32): Likewise.
188         (vmulq_n_f64): Likewise.
189         (vmulq_n_s16): Likewise.
190         (vmulq_n_s32): Likewise.
191         (vmulq_n_u16): Likewise.
192         (vmulq_n_u32): Likewise.
193
194 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
195
196         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
197         all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
198
199 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
200
201         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
202         to *aarch64_fma4_elt_from_dup<mode>.
203         (*aarch64_fnma4_elt_to_128df): Rename to
204         *aarch64_fnma4_elt_from_dup<mode>.
205         * config/aarch64/arm_neon.h (vfma_n_f64): New.
206         (vfms_n_f32): Likewise.
207         (vfms_n_f64): Likewise.
208         (vfmsq_n_f32): Likewise.
209         (vfmsq_n_f64): Likewise.
210
211 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
212
213         * wide-int.h: Change fixed_wide_int_storage from class to struct.
214         
215 2016-05-17  Richard Biener  <rguenther@suse.de>
216
217         PR tree-optimization/71132
218         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
219         Only add control dependences for blocks in the loop.
220         (build_rdg): Adjust.
221         (generate_code_for_partition): Return whether loop should
222         be destroyed and delay that.
223         (distribute_loop): Likewise.
224         (pass_loop_distribution::execute): Record loops to be destroyed
225         and perform delayed destroying of loops.
226
227 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
228
229         PR target/70809
230         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
231
232 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
233
234         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
235
236 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
237
238         PR target/71114
239         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
240         insertion point for instructions generated by validize_mem.
241
242 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
243
244         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
245         in brackets.
246
247 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
248
249         * config/aarch64/aarch64.c
250         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
251         rather than a macro.
252
253 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
254
255         * doc/invoke.texi (AArch64 Options): Various updates.
256
257 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
258
259         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
260         into instrumentation thunks.
261         * cif-code.def (CIF_CHKP): New.
262
263 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
264
265         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
266
267 2016-05-16  Martin Jambor  <mjambor@suse.cz>
268
269         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
270         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
271
272 2016-05-16  Marek Polacek  <polacek@redhat.com>
273
274         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
275         commentary.
276
277 2016-05-16  Martin Jambor  <mjambor@suse.cz>
278
279         PR hsa/70857
280         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
281         the outlined kernel function.
282
283 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
284
285         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
286         (ISA_HAS_DLSA): Ditto.
287
288 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
289
290         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
291
292 2016-05-16  Nathan Sidwell  <nathan@acm.org>
293
294         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
295         (nvptx_name_replacement): Restore.  Add comment.
296         (write_fn_proto, write_fn_proto_from_insn,
297         nvptx_output_call_insn): Restore
298         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
299
300 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
301
302         * config/aarch64/aarch64.md
303         (add<mode>3_compareC_cconly_imm): Remove use of %w.
304         (add<mode>3_compareC_imm): Likewise.
305         (<optab>si3_uxtw): Split into register and immediate variants.
306         (andsi3_compare0_uxtw): Likewise.
307         (and<mode>3_compare0): Likewise.
308         (and<mode>3nr_compare0): Likewise.
309         (stack_protect_test_<mode>): Don't use %x for memory operands.
310
311 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
312
313         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
314
315 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
316
317          * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
318         Split integer shifts into shift_reg and bfm.
319         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
320         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
321         (ror<mode>3_insn): Likewise.
322         (<optab>si3_insn_uxtw): Likewise.
323         (<optab><mode>3_insn): Change to rotate_imm.
324         (extr<mode>5_insn_alt): Likewise.
325         (extrsi5_insn_uxtw): Likewise.
326         (extrsi5_insn_uxtw_alt): Likewise.
327
328 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
329
330         * doc/tm.texi: Regenerate.
331         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
332         (TARGET_INVALID_RETURN_TYPE): Remove.
333         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
334         TARGET_INVALID_RETURN_TYPE.
335         * target.def (invalid_parameter_type): Remove.
336         (invalid_return_type): Remove.
337
338 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
339
340         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
341         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
342         calls from thunk.
343         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
344         gimple body.
345         (preserve_function_body_p): No need to preserve function body
346         * cif-codes.def (CIF_THUNK): Remove.
347         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
348
349 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
350
351         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
352
353 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
354
355         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
356         for thunks.
357
358 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
359
360         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
361         (inline_small_functions): Do not look for function symbol when
362         resetting caches.
363
364 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
365
366         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
367         of inline thunks
368
369 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
370             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
371             Jiong Wang  <jiong.wang@arm.com>
372
373         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
374         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
375         Define __ARM_FP16_ARGS when appropriate.
376         * config/arm/arm.c (arm_invalid_parameter_type): Remove
377         declaration.
378         (arm_invalid_return_type): Likewise.
379         (TARGET_INVALID_PARAMETER_TYPE): Remove.
380         (TARGET_INVALID_RETURN_TYPE): Remove.
381         (aapcs_vfp_sub_candidate): Allow HFmode.
382         (aapcs_vfp_allocate): Add comment.  Support HFmode.
383         (aapcs_vfp_allocate_return_reg): Likewise.
384         (struct aapcs_cp_arg_layout): Slightly reword comments for
385         is_return_candidate and allocate_return_reg.
386         (output_mov_vfp): Update assert.
387         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
388         condition.
389         (arm_invalid_parameter_type): Remove.
390         (amr_invalid_return_type): Remove.
391         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
392         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
393         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
394
395 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
396
397         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
398         * config/aarch64/arch64-protos.h
399         (aarch64_legitimize_reload_address): Remove.
400         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
401         Remove.
402
403 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
404
405         * configure.ac: Add ACX_NONCANONICAL_HOST.
406         * configure: Regenerate.
407         * Makefile.in: Set host_noncanonical.
408
409 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
410
411         PR target/71097
412         * config/i386/i386.md (*movtf_internal): Before register allocation,
413         do not allow FP constants for CM_MEDIUM memory model, allow only
414         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
415         (*movxf_internal): Ditto.
416         (*movdf_internal): Ditto.
417         (*movsf_internal): Ditto.
418
419 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
420
421         PR rtl-optimization/67483
422         * combine.c (make_compound_operation): Don't call extract_left_shift
423         with negative shift amounts.
424
425 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
426
427         PR bootstrap/71071
428         * fold-const.c (fold_checksum_tree): Allow modification
429         of TYPE_ALIAS_SET during folding.
430
431         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
432         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
433         (ix86_split_to_parts): Likewise.  Fix up formatting.
434
435 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
436
437         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
438         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
439         printf format.
440
441 2016-05-13  Nathan Sidwell  <nathan@acm.org>
442
443         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
444         (nvptx_name_replacement): Delete.
445         (write_fn_proto, write_fn_proto_from_insn,
446         nvptx_output_call_insn): Remove nvptx_name_replacement call.
447         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
448         * langhooks.c (add_builtin_funcction_common): Call
449         targetm.mangle_decl_assembler_name.
450
451         * config/nvptx/nvptx.c (write_fn_proto): Handle
452         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
453
454 2016-05-13  Martin Liska  <mliska@suse.cz>
455
456         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
457         and PRIu64 in printf format.
458
459 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
460
461         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
462         comment.
463
464 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
465
466         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
467         Change --param max-completely-peeled-times to
468         --param max-completely-peel-times in dump file printing.
469
470 2016-05-13  Richard Biener  <rguenther@suse.de>
471
472         PR tree-optimization/42587
473         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
474         (find_bswap_or_nop_1): Likewise.
475         (bswap_replace): Likewise.
476
477 2016-05-13  Martin Liska  <mliska@suse.cz>
478
479         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
480         Initialize a variable with default value.
481
482 2016-05-13  Martin Liska  <mliska@suse.cz>
483
484         * doc/invoke.texi: Enhance explanation of error recovery
485         of sanitizers.
486
487 2016-05-13  Martin Liska  <mliska@suse.cz>
488
489         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
490         (struct cost_pair): Change inv_expr_id (int) to inv_expr
491         (iv_inv_expr_ent *).
492         (struct iv_inv_expr_ent): Comment struct fields.
493         (sort_iv_inv_expr_ent): New function.
494         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
495         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
496         a hash_map between iv_inv_expr_ent and number of usages.
497         (niter_for_exit): Fix coding style.
498         (tree_ssa_iv_optimize_init): Use renamed variable.
499         (determine_base_object): Fix coding style.
500         (alloc_iv): Likewise.
501         (find_interesting_uses_outside): Likewise.
502         (add_candidate_1): Likewise.
503         (add_standard_iv_candidates): Likewise.
504         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
505         (prepare_decl_rtl): Fix coding style.
506         (get_address_cost): Likewise.
507         (get_shiftadd_cost): Likewise.
508         (force_expr_to_var_cost): Likewise.
509         (compare_aff_trees): Likewise.
510         (get_expr_id): Restructure the function.
511         (get_loop_invariant_expr_id): Renamed to
512         get_loop_invariant_expr.
513         (get_computation_cost_at): Replace usage of inv_expr_id with
514         inv_expr.
515         (get_computation_cost): Likewise.
516         (determine_group_iv_cost_generic): Likewise.
517         (determine_group_iv_cost_address): Likewise.
518         (iv_period): Fix coding style.
519         (iv_elimination_compare_lt): Likewise.
520         (may_eliminate_iv): Likewise.
521         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
522         inv_expr.
523         (determine_group_iv_costs): Dump invariant expressions.
524         (iv_ca_recount_cost): Use the newly added hash_map.
525         (iv_ca_set_remove_invariants): Fix coding style.
526         (iv_ca_set_add_invariants): Fix coding style.
527         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
528         invariants.
529         (iv_ca_set_cp): Likewise.
530         (iv_ca_new): Initialize the newly added hash_map and remove
531         initialization of fields.
532         (iv_ca_free): Delete the hash_map.
533         (iv_ca_dump): Dump invariant expressions.
534         (iv_ca_extend): Fix coding style.
535         (try_add_cand_for): Likewise.
536         (create_new_ivs): Dump information about # of avg iterations and
537         # of used invariant expressions.
538         (rewrite_use_compare): Fix coding style.
539         (free_loop_data): Set default value for max_inv_expr_id.
540
541 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
542
543         * cse.c (rest_of_handle_cse): Use cleanup_cfg
544         returned value cse_cfg_altered computation.
545         (rest_of_handle_cse2): Likewise.
546         (rest_of_handle_cse_after_global_opts): Likewise.
547
548 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
549
550         PR target/53440
551         * config/arm/arm.c (arm32_output_mi_thunk): New.
552         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
553         to split Thumb1 vs TARGET_32BIT functionality.
554         (arm_thumb1_mi_thunk): New.
555
556 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
557
558         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
559         to true.
560
561 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
562
563         PR target/71080
564         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
565
566 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
567
568         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
569         (expand_builtin_trap): Emit a regular call.
570         (set_builtin_user_assembler_name): Remove obsolete cases.
571         * dse.c (scan_insn): Adjust.
572         * except.c: Include calls.h.
573         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
574         emit a regular call to setjmp.
575         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
576         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
577         (emit_block_move_via_libcall): Delete.
578         (block_move_fn): Delete.
579         (init_block_move_fn): Likewise.
580         (emit_block_move_libcall_fn): Likewise.
581         (emit_block_op_via_libcall): New function.
582         (set_storage_via_libcall): Tidy up and use memset builtin.
583         (block_clear_fn): Delete.
584         (init_block_clear_fn): Likewise.
585         (clear_storage_libcall_fn): Likewise.
586         (expand_assignment): Call emit_block_move_via_libcall.
587         Do not include gt-expr.h.
588         * expr.h (emit_block_op_via_libcall): Declare.
589         (emit_block_copy_via_libcall): New inline function.
590         (emit_block_move_via_libcall): Likewise.
591         (emit_block_comp_via_libcall): Likewise.
592         (block_clear_fn): Delete.
593         (init_block_move_fn): Likewise.
594         (init_block_clear_fn): Likewise.
595         (emit_block_move_via_libcall): Likewise.
596         (set_storage_via_libcall): Add default parameter value.
597         * libfuncs.h (enum libfunc_index): Remove obsolete values.
598         (abort_libfunc): Delete.
599         (memcpy_libfunc): Likewise.
600         (memmove_libfunc): Likewise.
601         (memcmp_libfunc): Likewise.
602         (memset_libfunc): Likewise.
603         (setbits_libfunc): Likewise.
604         (setjmp_libfunc): Likewise.
605         (longjmp_libfunc): Likewise.
606         (profile_function_entry_libfunc): Likewise.
607         (profile_function_exit_libfunc): Likewise.
608         (gcov_flush_libfunc): Likewise.
609         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
610         and DECL_VISIBILITY on the declaration.
611         (init_optabs): Do not initialize obsolete libfuncs.
612         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
613         * tree-core.h (ECF_RET1): Define.
614         (ECF_TM_PURE): Adjust.
615         (ECF_TM_BUILTIN): Likewise.
616         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
617         (build_common_builtin_nodes): Initialize abort builtin.
618         Add ECF_RET1 on memcpy, memmove and memset builtins.
619         Pass final flags for alloca and alloca_with_align builtins.
620         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
621         obsolete builtins.
622         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
623         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
624         set_storage_via_libcall and call emit_block_copy_via_libcall.
625
626 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
627
628         * config/i386/i386.md (*call_got_x32): Change operand 0 to
629         DImode before it is passed to ix86_output_call_operand.
630         (*call_value_got_x32): Ditto for operand 1.
631
632 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
633
634         PR rtl-optimization/70904
635         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
636         reload for wide mode.
637
638 2016-05-12  Marek Polacek  <polacek@redhat.com>
639
640         PR c/70756
641         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
642         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
643         * langhooks.h (incomplete_type_error): Likewise.
644         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
645         parameter, pass it down to incomplete_type_error.
646         * tree.h (size_in_bytes): New inline overload.
647         (size_in_bytes_loc): Renamed from size_in_bytes.
648
649 2016-05-12  Richard Biener  <rguenther@suse.de>
650
651         PR tree-optimization/71059
652         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
653         nary before looking up or entering the expression into the VN
654         hashes.
655         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
656         Make sure to re-use NARYs without result as inserted by
657         phi-translation.
658
659 2016-05-12  Richard Biener  <rguenther@suse.de>
660
661         PR tree-optimization/71062
662         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
663         field.
664         * tree-ssa-structalias.c (set_uids_in_ptset): Set
665         vars_contains_restrict if the var is a restrict tag.
666         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
667         do not disambiguate pointers against it.
668         (dump_points_to_solution): Re-structure and adjust for new
669         vars_contains_restrict flag.
670         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
671
672 2016-05-12  Martin Liska  <mliska@suse.cz>
673
674         * doc/invoke.texi: Explain connection between
675         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
676
677 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
678
679         PR tree-optimization/71006
680         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
681         consider COND_EXPR as a mask producer.
682
683 2016-05-12  Marek Polacek  <polacek@redhat.com>
684
685         PR driver/71063
686         * opts.c (common_handle_option): Detect missing argument for --help^.
687
688 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
689
690         PR target/70830
691         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
692         when popping the PC and within an interrupt handler routine.
693         Add missing tab to output of "ldmfd".
694         (output_return_instruction): Output LDMFD with SP update rather
695         than POP when returning from interrupt handler.
696
697 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
698
699         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
700         TARGET_64BIT && TARGET_AVX512DQ.
701         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
702         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
703         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
704         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
705         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
706         (*vec_extractv4si_zext): Add avx512dq alternative.
707         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
708         use v instead of x constraint in other alternatives where possible.
709
710         * config/i386/sse.md (sse2_loadld): Use v instead of x
711         constraint in alternatives 0,1,4.
712
713         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
714         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
715         v constraints instead of x and <pinsr_evex_isa> isa attribute.
716
717         PR target/71019
718         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
719         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
720         is not emitted unless TARGET_AVX512BW.
721         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
722         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
723         for the result operand.
724
725         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
726         constraint instead of x in avx alternatives.  Use maybe_evex instead
727         of vex prefix.
728
729         * config/i386/constraints.md (Yv): New constraint.
730         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
731         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
732         * config/i386/i386.md (avx512fvecmode): New mode attr.
733         (*pushtf): Use v constraint instead of x.
734         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
735         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
736         (*absneg<mode>2): Use Yv constraint instead of x constraint.
737         (*absnegtf2_sse): Likewise.
738         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
739         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
740         avx512f alternatives.
741         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
742
743 2016-05-12  Richard Biener  <rguenther@suse.de>
744
745         PR tree-optimization/71060
746         * tree-data-ref.c (initialize_data_dependence_relation): Do not
747         require exact match of DR_BASE_OBJECT but only matching address and
748         type.
749
750 2016-05-12  Richard Biener  <rguenther@suse.de>
751
752         PR tree-optimization/70986
753         * cfganal.c: Include cfgloop.h.
754         (dfs_find_deadend): Prefer to take edges exiting loops.
755
756 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
757
758         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
759         compile and run time.
760
761 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
762
763         PR c/43651
764         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
765
766 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
767
768         * config/i386/i386.c (legitimize_pic_address): Use
769         copy_to_suggested_reg instead of gen_movsi.
770
771 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
772
773         * config/rs6000/predicates.md (quad_memory_operand): Move most of
774         the code into quad_address_p and call it to share code with
775         vsx_quad_dform_memory_operand.
776         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
777         d-form support.
778         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
779         bit instead of being a separate word.  Split -mpower9-dform into
780         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
781         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
782         for the register class supporting 128-bit quad word memory offsets.
783         (mode_supports_vsx_dform_quad): Helper function to return if the
784         register class uses quad word memory offsets.
785         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
786         (rs6000_debug_reg_global): Always print if we are using LRA or not.
787         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
788         instructions are enabled, set up the appropriate addr_masks for
789         128-bit types.
790         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
791         -mpower9-dform-scalar, instead of -mpower9-dform.
792         (rs6000_option_override_internal): Split -mpower9-dform into two
793         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
794         -mpower9-dform switch sets or clears both.  If we are not using
795         the LRA register allocator, do not enable -mpower9-dform-vector by
796         default.  If we are using LRA, enable -mpower9-dform-vector and
797         -mvsx-timode if it is appropriate.  Issue a warning if either
798         -mpower9-dform-vector or -mvsx-timode are explicitly used without
799         enabling LRA.
800         (quad_address_offset_p): New helper function to return if the
801         offset is legal for quad word memory instructions.
802         (quad_address_p): New function to determin if GPR or vector
803         register quad word memory addresses are legal.
804         (mem_operand_gpr): Validate quad word address offsets.
805         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
806         d-form (register + offset) instructions.
807         (offsettable_ok_by_alignment): Likewise.
808         (rs6000_legitimate_offset_address_p): Likewise.
809         (legitimate_lo_sum_address_p): Likewise.
810         (rs6000_legitimize_address): Likewise.
811         (rs6000_legitimize_reload_address): Add more debug statements for
812         -mdebug=addr.
813         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
814         d-form instructions.
815         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
816         d-form instructions.  Distinguish different cases in debug
817         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
818         d-form instructions.
819         (rs6000_preferred_reload_class): Likewise.
820         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
821         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
822         of the ISA 2.06 indexed memory instructions.
823         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
824         use them to save/restore the saved vector registers instead of
825         using Altivec instructions.
826         (rs6000_emit_epilogue): Likewise.
827         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
828         (rs6000_opt_masks): Split -mpower9-dform into
829         -mpower9-dform-scalar and -mpower9-dform-vector.
830         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
831         was not selected.
832         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
833         ISA 3.0 vector indexed memory instructions, and fold the code into
834         the normal mov<mode> patterns.
835         (p9_vecstore_<mode>): Likewise.
836         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
837         instructions.
838         (vsx_movti_64bit): Likewise.
839         (vsx_movti_32bit): Likewise.
840         * config/rs6000/constraints.md (wO constraint): New constraint for
841         ISA 3.0 vector d-form support.
842         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
843         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
844         include -mpower9-dform-vector until we switch over to LRA.
845         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
846         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
847         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
848         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
849         for -mpower9-dform and -mlra.
850         * doc/md.texi (wO constraint): Document wO constraint.
851
852 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
853
854         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
855         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
856         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
857         Move handling of non-insn arguments inline into the sole user:
858         (output_trans_func): ...here.
859         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
860         in emitted function prototype.
861         (output_internal_insn_latency_func): Ditto.  Simplify.
862         (output_internal_maximal_insn_latency_func): Ditto.  Delete
863         always-unused argument.
864         (output_insn_latency_func): Ditto.
865         (output_maximal_insn_latency_func): Ditto.
866
867 2016-05-11  Richard Biener  <rguenther@suse.de>
868
869         PR tree-optimization/71055
870         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
871         sth with precision not equal to access size verify we don't chop
872         off bits.
873
874 2016-05-11  Richard Biener  <rguenther@suse.de>
875
876         PR debug/71057
877         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
878         (dwarf2out_finish): Move retry_incomplete_types call ...
879         (dwarf2out_early_finish): ... here.
880
881 2016-05-11  Richard Biener  <rguenther@suse.de>
882
883         PR middle-end/71002
884         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
885         if the langhook insists on it.
886         * fold-const.c (make_bit_field_ref): Add arg for the original
887         reference and preserve its alias-set.
888         (decode_field_reference): Take exp by reference and adjust it
889         to the original memory reference.
890         (optimize_bit_field_compare): Adjust callers.
891         (fold_truth_andor_1): Likewise.
892         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
893
894 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
895
896         PR middle-end/70807
897         * cfgrtl.h (delete_insn_and_edges): Now return bool.
898         * cfgrtl.c (delete_insn_and_edges): Likewise.
899         * config/i386/i386.c (convert_scalars_to_vector): Remove
900         redundant code.
901         * cse.c (cse_insn): Compute cse_cfg_altered.
902         (delete_trivially_dead_insns): Likewise.
903         (cse_cc_succs): Likewise.
904         (rest_of_handle_cse): Free dominance info if required.
905         (rest_of_handle_cse2): Likewise.
906         (rest_of_handle_cse_after_global_opts): Likewise.
907
908 2016-05-11  Alan Modra  <amodra@gmail.com>
909
910         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
911         abi_v4_pass_in_fpr): New functions.
912         (rs6000_function_arg_boundary): Exclude complex IBM long double
913         from 64-bit alignment when ABI_V4.
914         (rs6000_function_arg, rs6000_function_arg_advance_1,
915         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
916
917 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
918
919         PR rtl-optimization/71028
920         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
921         jump with just a return in the fallthrough block if the branch
922         block contains just a return as well.
923
924 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
925
926         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
927         * match.pd ((X & Y) ^ Y): ... this.
928         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
929         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
930
931 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
932
933         * read-md.c (require_char_ws): New function.
934         (read_string): Simplify using require_char_ws.
935         (handle_constants): Likewise.
936         (handle_enum): Likewise.
937         (handle_file): Likewise.
938         * read-md.h (require_char_ws): New declaration.
939         * read-rtl.c (read_conditions): Simplify using require_char_ws.
940         (read_mapping): Likewise.
941         (read_rtx_code): Likewise.
942         (read_nested_rtx): Likewise.
943
944 2016-05-10  James Norris  <jnorris@codesourcery.com>
945
946         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
947         if offloading is enabled and -fopenacc or -fopenmp is specified.
948         (CRTOFFLOADEND): Likewise.
949         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
950         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
951
952 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
953
954         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
955         gotoff_operand code paths.  Use copy_to_suggested_regs and
956         expand_simple_binop where appropriate.  Cleanup.
957
958 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
959
960         PR target/70799
961         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
962         integer constants.
963         (dimode_scalar_chain::vector_const_cost): New.
964         (dimode_scalar_chain::compute_convert_gain): Handle constants.
965         (dimode_scalar_chain::convert_op): Likewise.
966         (dimode_scalar_chain::convert_insn): Likewise.
967
968 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
969
970         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
971         unary operation, not a binary one.
972
973 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
974
975         PR middle-end/70877
976         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
977         calls with type casted fndecl.
978
979 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
980
981         PR tree-optimization/70786
982         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
983         * gcc/calls.c (initialize_argument_information): Bind bounds
984         with corresponding args passed by reference.
985
986 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
987
988         PR target/70927
989         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
990         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
991         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
992         accordingly.
993
994 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
995
996         PR target/70963
997         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
998         code for a zero scale factor.
999         (vsx_xvcvdpuxds_scale): Likewise.
1000
1001 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
1002
1003         * diagnostic-show-locus.c (layout::layout): Call show_ruler
1004         if show_ruler_p was set on the context.
1005         (layout::show_ruler): New method.
1006         * diagnostic.h (struct diagnostic_context): Add field
1007         "show_ruler_p".
1008
1009 2016-05-10  Richard Biener  <rguenther@suse.de>
1010
1011         PR tree-optimization/71039
1012         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1013         (chk_uses): New function.
1014         (propagate_with_phi): Verify we can safely replicate the lhs of an
1015         aggregate assignment on all incoming edges.
1016
1017 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
1018
1019         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
1020         Forward declare.
1021         (rx_atomic_sequence): New class.
1022         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
1023         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
1024         non-inline.
1025         (rx_atomic_sequence::rx_atomic_sequence,
1026         rx_atomic_sequence::~rx_atomic_sequence): New functions.
1027         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
1028         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
1029         CTRLREG_INTB): New constants.
1030         (FETCHOP): New code iterator.
1031         (fethcop_name, fetchop_name2): New iterator code attributes.
1032         (QIHI): New mode iterator.
1033         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
1034         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
1035         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
1036
1037 2016-05-10  Martin Liska  <mliska@suse.cz>
1038
1039         * tree-inline.c (remap_dependence_clique): Do not remap
1040         debugging statements.
1041
1042 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1043
1044         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
1045         ("*fixuns_truncdfdi2_z13")
1046         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
1047         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
1048         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
1049
1050 2016-05-10  Richard Biener  <rguenther@suse.de>
1051
1052         PR tree-optimization/70497
1053         PR tree-optimization/28367
1054         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
1055         split out from ...
1056         (visit_reference_op_load): ... here.
1057         (vn_reference_lookup_3): Use it to handle subreg-like accesses
1058         with simplified BIT_FIELD_REFs.
1059         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
1060         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
1061         correctly.
1062
1063 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
1064
1065         * dwarf2out.c (add_abstract_origin_attribute): Adjust
1066         documentation comment.  For BLOCK nodes, add a
1067         DW_AT_abstract_origin attribute that points to the DIE generated
1068         for the origin BLOCK.
1069         (gen_lexical_block_die): Call add_abstract_origin_attribute for
1070         blocks from inlined functions.
1071
1072 2016-05-10  Alan Modra  <amodra@gmail.com>
1073
1074         PR target/70947
1075         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
1076         regrename modifying insns saving lr before __morestack call.
1077         * config/rs6000/rs6000.md (split_stack_return): Similarly for
1078         insns restoring lr after __morestack call.
1079
1080 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
1081
1082         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
1083         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
1084         expanders.
1085         * config/i386/sse.md (vec_interleave_high<mode>,
1086         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
1087         <avx512>_vpermt2var<mode>3_maskz): Likewise.
1088
1089 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1090
1091         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
1092         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
1093         parallel reassociation for power8 and forward.
1094
1095 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
1096
1097         * config/i386/i386.md (absneg splitters with general regs): Use
1098         general_reg_operand predicate.
1099         (btsq peephole2): Use x86_64_immediate_operand to check if new
1100         value is suitable for immediate operand.  Generate emitted insn
1101         using RTL expressions.
1102         (btcq peephole2): Ditto.
1103         (btrq peephole2): Ditto.  Generate correct immediate operand
1104         for AND masking.
1105
1106 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1107
1108         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
1109         bitpos.
1110
1111 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1112
1113         * tree-affine.c (wide_int_constant_multiple_p): Add missing
1114         pointer dereference.
1115
1116 2016-05-09  Richard Biener  <rguenther@suse.de>
1117
1118         PR tree-optimization/70985
1119         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
1120         op0 isn't a gimple register.
1121
1122 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
1123
1124         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
1125         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
1126         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
1127         (i6400_fpu_mult): New cpu units.
1128         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
1129         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
1130         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
1131         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
1132         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
1133         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
1134         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
1135         (i6400_msa_long_float4, i6400_msa_long_float5)
1136         (i6400_msa_long_float8, i6400_msa_fdiv_df)
1137         (i6400_msa_fdiv_sf): New reservations.
1138         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
1139         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
1140         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
1141         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
1142         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
1143         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
1144         (msa_short_cmp, msa_short_float2, msa_short_logic3)
1145         (msa_short_store4, msa_long_load, msa_short_store)
1146         (msa_long_logic, msa_long_float2, msa_long_float4)
1147         (msa_long_float5, msa_long_float8, msa_long_mult)
1148         (msa_long_fdiv, msa_long_div): New reservations.
1149
1150 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
1151             Sameera Deshpande  <sameera.deshpande@imgtec.com>
1152             Matthew Fortune  <matthew.fortune@imgtec.com>
1153             Graham Stott  <graham.stott@imgtec.com>
1154             Chao-ying Fu  <chao-ying.fu@imgtec.com>
1155
1156         * config.gcc: Add MSA header file for mips*-*-* target.
1157         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
1158         (Ubv8i, Urv8):  New constraints.
1159         * config/mips/mips-ftypes.def: Add function types for MSA
1160         builtins.
1161         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
1162         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
1163         * config/mips/mips-msa.md: New file.
1164         * config/mips/mips-protos.h
1165         (mips_split_128bit_const_insns): New prototype.
1166         (mips_msa_idiv_insns): Likewise.
1167         (mips_split_128bit_move): Likewise.
1168         (mips_split_128bit_move_p): Likewise.
1169         (mips_split_msa_copy_d): Likewise.
1170         (mips_split_msa_insert_d): Likewise.
1171         (mips_split_msa_fill_d): Likewise.
1172         (mips_expand_msa_branch): Likewise.
1173         (mips_const_vector_same_val_p): Likewise.
1174         (mips_const_vector_same_bytes_p): Likewise.
1175         (mips_const_vector_same_int_p): Likewise.
1176         (mips_const_vector_shuffle_set_p): Likewise.
1177         (mips_const_vector_bitimm_set_p): Likewise.
1178         (mips_const_vector_bitimm_clr_p): Likewise.
1179         (mips_msa_vec_parallel_const_half): Likewise.
1180         (mips_msa_output_division): Likewise.
1181         (mips_ldst_scaled_shift): Likewise.
1182         (mips_expand_vec_cond_expr): Likewise.
1183         * config/mips/mips.c (enum mips_builtin_type): Add
1184         MIPS_BUILTIN_MSA_TEST_BRANCH.
1185         (mips_gen_const_int_vector_shuffle): New prototype.
1186         (mips_const_vector_bitimm_set_p): New function.
1187         (mips_const_vector_bitimm_clr_p): Likewise.
1188         (mips_const_vector_same_val_p): Likewise.
1189         (mips_const_vector_same_bytes_p): Likewise.
1190         (mips_const_vector_same_int_p): Likewise.
1191         (mips_const_vector_shuffle_set_p): Likewise.
1192         (mips_symbol_insns): Forbid loading symbols via immediate for
1193         MSA.
1194         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
1195         stores.
1196         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
1197         MSA.
1198         (mips_lx_address_p): Add support load indexed address for MSA.
1199         (mips_address_insns): Add calculation of instructions needed for
1200         stores and loads for MSA.
1201         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
1202         CONST_VECTOR for MSA and let it fall through.
1203         (mips_ldst_scaled_shift): New function.
1204         (mips_subword_at_byte): Likewise.
1205         (mips_msa_idiv_insns): Likewise.
1206         (mips_legitimize_move): Validate MSA moves.
1207         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
1208         calculation of costs for MSA division.
1209         (mips_split_move_p): Check if MSA moves need splitting.
1210         (mips_split_move): Split MSA moves if necessary.
1211         (mips_split_128bit_move_p): New function.
1212         (mips_split_128bit_move): Likewise.
1213         (mips_split_msa_copy_d): Likewise.
1214         (mips_split_msa_insert_d): Likewise.
1215         (mips_split_msa_fill_d): Likewise.
1216         (mips_output_move): Handle MSA moves.
1217         (mips_expand_msa_branch): New function.
1218         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
1219         Reinstate 'y' modifier.
1220         (mips_file_start): Add MSA .gnu_attribute.
1221         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
1222         FPRs.
1223         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
1224         (mips_class_max_nregs): Add register size for MSA supported mode.
1225         (mips_cannot_change_mode_class): Allow conversion between MSA
1226         vector modes and TImode.
1227         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
1228         instruction.
1229         (mips_secondary_reload_class): Force MSA loads/stores via memory.
1230         (mips_preferred_simd_mode): Add preffered modes for MSA.
1231         (mips_vector_mode_supported_p): Add MSA supported modes.
1232         (mips_autovectorize_vector_sizes): New function.
1233         (mips_msa_output_division): Likewise.
1234         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
1235         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
1236         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
1237         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
1238         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
1239         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
1240         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
1241         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
1242         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
1243         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
1244         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
1245         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
1246         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
1247         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
1248         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
1249         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
1250         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
1251         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
1252         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
1253         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
1254         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
1255         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
1256         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
1257         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
1258         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
1259         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
1260         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
1261         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
1262         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
1263         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
1264         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
1265         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
1266         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
1267         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
1268         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
1269         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
1270         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
1271         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
1272         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
1273         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
1274         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
1275         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
1276         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
1277         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
1278         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1279         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1280         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1281         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1282         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1283         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1284         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1285         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1286         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
1287         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
1288         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
1289         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
1290         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
1291         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
1292         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
1293         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
1294         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
1295         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
1296         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
1297         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
1298         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
1299         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
1300         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
1301         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
1302         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
1303         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
1304         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
1305         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
1306         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
1307         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
1308         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
1309         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
1310         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
1311         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
1312         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
1313         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
1314         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
1315         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
1316         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
1317         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
1318         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
1319         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
1320         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
1321         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
1322         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
1323         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
1324         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
1325         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
1326         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
1327         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
1328         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
1329         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
1330         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
1331         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
1332         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
1333         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
1334         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
1335         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
1336         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
1337         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
1338         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
1339         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
1340         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
1341         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
1342         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
1343         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
1344         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
1345         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
1346         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
1347         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
1348         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
1349         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
1350         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
1351         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
1352         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
1353         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
1354         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
1355         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
1356         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
1357         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
1358         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
1359         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
1360         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
1361         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
1362         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
1363         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
1364         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
1365         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
1366         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
1367         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
1368         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
1369         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
1370         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
1371         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
1372         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
1373         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
1374         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
1375         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
1376         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
1377         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
1378         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
1379         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
1380         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
1381         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
1382         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
1383         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
1384         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
1385         move_v builtins.
1386         (mips_get_builtin_decl_index): New array.
1387         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
1388         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
1389         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
1390         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
1391         (mips_init_builtins): Initialize mips_get_builtin_decl_index
1392         array.
1393         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1394         hook.
1395         (mips_expand_builtin_insn): Prepare operands for
1396         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
1397         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
1398         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
1399         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
1400         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
1401         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
1402         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
1403         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
1404         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
1405         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
1406         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
1407         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
1408         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
1409         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
1410         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
1411         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
1412         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
1413         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
1414         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
1415         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
1416         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
1417         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1418         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1419         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1420         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1421         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1422         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1423         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1424         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1425         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1426         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1427         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1428         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1429         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1430         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1431         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1432         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1433         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1434         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1435         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1436         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1437         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1438         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1439         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1440         These are set implicitly and an error is reported if overridden.
1441         (mips_expand_builtin_msa_test_branch): New function.
1442         (mips_expand_msa_shuffle): Likewise.
1443         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1444         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1445         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1446         (mips_expand_vec_unpack): Add support for MSA.
1447         (mips_expand_vector_init): Likewise.
1448         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1449         instead of const0_rtx.
1450         (mips_msa_vec_parallel_const_half): New function.
1451         (mips_gen_const_int_vector): Likewise.
1452         (mips_gen_const_int_vector_shuffle): Likewise.
1453         (mips_expand_msa_cmp): Likewise.
1454         (mips_expand_vec_cond_expr): Likewise.
1455         * config/mips/mips.h
1456         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1457         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1458         specified.
1459         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1460         (ISA_HAS_MSA): New macro.
1461         (UNITS_PER_MSA_REG): Likewise.
1462         (BITS_PER_MSA_REG): Likewise.
1463         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1464         (MSA_REG_FIRST): New macro.
1465         (MSA_REG_LAST): Likewise.
1466         (MSA_REG_NUM): Likewise.
1467         (MSA_REG_P): Likewise.
1468         (MSA_REG_RTX_P): Likewise.
1469         (MSA_SUPPORTED_MODE_P): Likewise.
1470         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1471         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1472         * config/mips/mips.md: Include mips-msa.md.
1473         (alu_type): Add simd_add.
1474         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1475         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1476         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1477         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1478         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1479         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1480         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1481         simd_move, simd_load, simd_store.  Choose "multi" for moves
1482         for "qword_mode".
1483         (qword_mode): New attribute.
1484         (insn_count): Add instruction count for quad moves.
1485         Increase the count for MIPS SIMD division.
1486         (UNITMODE): Add UNITMODEs for vector types.
1487         (addsub): New code iterator.
1488         * config/mips/mips.opt (mmsa): New option.
1489         * config/mips/msa.h: New file.
1490         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1491         specified.
1492         * config/mips/mti-linux.h: Likewise.
1493         * config/mips/predicates.md
1494         (const_msa_branch_operand): New constraint.
1495         (const_uimm3_operand): Likewise.
1496         (const_uimm4_operand): Likewise.
1497         (const_uimm5_operand): Likewise.
1498         (const_uimm8_operand): Likewise.
1499         (const_imm5_operand): Likewise.
1500         (aq10b_operand): Likewise.
1501         (aq10h_operand): Likewise.
1502         (aq10w_operand): Likewise.
1503         (aq10d_operand): Likewise.
1504         (const_m1_operand): Likewise.
1505         (reg_or_m1_operand): Likewise.
1506         (const_exp_2_operand): Likewise.
1507         (const_exp_4_operand): Likewise.
1508         (const_exp_8_operand): Likewise.
1509         (const_exp_16_operand): Likewise.
1510         (const_vector_same_val_operand): Likewise.
1511         (const_vector_same_simm5_operand): Likewise.
1512         (const_vector_same_uimm5_operand): Likewise.
1513         (const_vector_same_uimm6_operand): Likewise.
1514         (const_vector_same_uimm8_operand): Likewise.
1515         (par_const_vector_shf_set_operand): Likewise.
1516         (reg_or_vector_same_val_operand): Likewise.
1517         (reg_or_vector_same_simm5_operand): Likewise.
1518         (reg_or_vector_same_uimm6_operand): Likewise.
1519         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1520         section.
1521         * doc/invoke.texi (-mmsa): Document new option.
1522
1523 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1524
1525         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1526         * configure: Regenerate.
1527         * config.in: Regenerate.
1528         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1529         on -fvtable-verify.
1530         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1531         (ENDFILE_VTV_SPEC): Define.
1532
1533 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1534
1535         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1536         registers in all interrupt handlers if necessary.
1537         (rl78_option_override): Add warning.
1538         (MUST_SAVE_MDUC_REGISTERS): New macro.
1539         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1540         * config/rl78/rl78.c (check_mduc_usage): New function.
1541         (mduc_regs): New structure to hold MDUC register data.
1542         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1543         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1544         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1545         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1546         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1547         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1548
1549 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1550
1551         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1552         (tree-ssa-loop-niter.h): Ditto.
1553         (idx_within_array_bound, ref_within_array_bound): New functions.
1554         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1555         Factor out check on writable base object to ...
1556         (base_object_writable): ... here.
1557
1558 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1559
1560         * config/arm/arm.md (probe_stack): Add modes to set source
1561         and destination.
1562
1563 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1564
1565         * regrename.c (base_reg_class_for_rename): New static function.
1566         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1567
1568 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1569
1570         * cgraph.c (thunk_adjust): Export.
1571         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1572         * cgraphunit.c (thunk_adjust): Export.
1573         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1574         thunks.
1575         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1576         inlinable.
1577         * tree-inline.c (expand_call_inline): Expand thunks inline.
1578
1579 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1580
1581         PR target/70998
1582         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1583         (*sse2_vd_cvtss2sd): Ditto.
1584         * config/i386/i386.md
1585         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1586         Generate *sse2_vd_cvtsd2ss pattern.
1587         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1588         Generate *sse2_vd_cvtss2sd pattern.
1589
1590 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1591
1592         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1593         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1594         users.
1595
1596 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1597
1598         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1599         * config/sh/sh.c: Define and declare variables on first use throughout
1600         the file.
1601         (current_function_interrupt): Change to bool type.
1602         (frame_insn): Rename to emit_frame_insn and update users.
1603         (push_regs): Use bool for 'interrupt_handler' argument.
1604         (save_schedule_s): Remove.
1605         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1606         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1607         targetm.asm_out.unaligned_op.di.
1608         (gen_far_branch): Remove redundant forward declaration.
1609         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1610         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1611         (sh_set_return_address, sh_function_ok_for_sibcall,
1612         scavenge_reg): Update comments.
1613         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1614         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1615         (sh_attr_renesas_p): Remove unnecessary parentheses.
1616         (branch_dest): Simplify.
1617         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1618         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1619         (CUMULATIVE_ARGS): Change macro to typedef.
1620         (current_function_interrupt): Change to bool type.
1621         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1622         Surround with __cplusplus ifdef.
1623         (sh_compare_op0, sh_compare_op1): Remove.
1624         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1625
1626 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1627
1628         * config/arm/arm.md: (arch): Add neon.
1629         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1630         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1631         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1632         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1633         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1634         (thumb2_movdf_vfp): Likewise.
1635
1636 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1637
1638         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1639         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1640         (*andqi_1): Add preferred_for_speed attribute to disparage
1641         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1642         (*<code>qi_1): Ditto.
1643         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1644         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1645         (*ashlqi3_1): Ditto.
1646         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1647         Add preferred_for_size attribute to disparage alternative 0 and
1648         preferred_for_speed attribute to disparage alternative 1 for
1649         TARGET_PARTIAL_REG_STALL targets.
1650
1651 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1652
1653         PR tree-optimization/70956
1654         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1655         def.
1656
1657 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1658
1659         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1660         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1661         * config/sh/sh.md (branch_zero): Remove define_attr.
1662         (define_delay): Disable delay slot if branch distance is one insn.
1663
1664 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1665
1666         * config/i386/i386.md (LEAMODE): New mode attribute.
1667         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1668         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1669         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1670         operand 2 predicate.
1671         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1672         (*lea<mode>_general_3): Ditto.
1673         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1674
1675 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1676
1677         * genmddump.c (main): Convert argv from char ** to const char **.
1678
1679 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1680
1681         * coretypes.h (OVERRIDE): New macro.
1682         (FINAL): New macro.
1683
1684 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1685
1686         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1687         allow coalescing if the types are compatible.
1688
1689 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1690
1691         * pass_manager.h (pass_manager::register_pass_name): New method.
1692         (pass_manager::get_pass_by_name): New method.
1693         (pass_manager::create_pass_tab): New method.
1694         (pass_manager::m_name_to_pass_map): New field.
1695         * passes.c (name_to_pass_map): Delete global in favor of field
1696         "m_name_to_pass_map" of pass_manager.
1697         (register_pass_name): Rename from a function to...
1698         (pass_manager::register_pass_name): ...this method, updating
1699         for renaming of global "name_to_pass_map" to field
1700         "m_name_to_pass_map".
1701         (create_pass_tab): Rename from a function to...
1702         (pass_manager::create_pass_tab): ...this method, updating
1703         for renaming of global "name_to_pass_map" to field.
1704         (get_pass_by_name): Rename from a function to...
1705         (pass_manager::get_pass_by_name): ...this method.
1706         (enable_disable_pass): Convert use of get_pass_by_name to
1707         a method call, locating the pass_manager singleton.
1708
1709 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1710
1711         * genattr-common.c (main): Convert argv from char ** to const char **.
1712         * genattr.c (main): Likewise.
1713         * genattrtab.c (main): Likewise.
1714         * genautomata.c (initiate_automaton_gen): Likewise.
1715         (main): Likewise.
1716         * gencodes.c (main): Likewise.
1717         * genconditions.c (main): Likewise.
1718         * genconfig.c (main): Likewise.
1719         * genconstants.c (main): Likewise.
1720         * genemit.c (main): Likewise.
1721         * genenums.c (main): Likewise.
1722         * genextract.c (main): Likewise.
1723         * genflags.c (main): Likewise.
1724         * genmddeps.c (main): Likewise.
1725         * genopinit.c (main): Likewise.
1726         * genoutput.c (main): Likewise.
1727         * genpeep.c (main): Likewise.
1728         * genpreds.c (main): Likewise.
1729         * genrecog.c (main): Likewise.
1730         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1731         (init_rtx_reader_args): Likewise.
1732         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1733         (init_rtx_reader_args): Likewise.
1734         * gentarget-def.c (main): Likewise.
1735         * read-md.c (read_md_files): Likewise.
1736         * read-md.h (read_md_files): Likewise.
1737
1738 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1739
1740         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1741         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1742         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1743         Remove unused predicate.
1744         (register_and_not_fp_reg_operand): Ditto.
1745
1746 2016-05-06  Martin Liska  <mliska@suse.cz>
1747
1748         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1749         instead of vec as the vector is local to the function.
1750
1751 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1752
1753         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1754         avx512bw alternative.
1755
1756         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1757         before the ashr<mode>3 pattern.
1758
1759         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1760         v instead of x in vex or maybe_vex alternatives, use
1761         maybe_evex instead of vex in prefix.
1762
1763         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1764         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1765         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1766         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1767         in prefix.
1768
1769         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1770         v instead of x in vex or maybe_vex alternatives, use
1771         maybe_evex instead of vex in prefix.
1772
1773         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1774         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1775         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1776         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1777         alternatives, use maybe_evex instead of vex in prefix.
1778
1779         * config/i386/sse.md (vec_interleave_lowv4sf,
1780         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1781         v instead of x in vex or maybe_vex alternatives, use
1782         maybe_evex instead of vex in prefix.
1783
1784         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1785         v instead of x in vex or maybe_vex alternatives, use
1786         maybe_evex instead of vex in prefix.
1787
1788         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1789         v constraint instead of x.
1790
1791 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1792
1793         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1794         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1795         equality first.
1796
1797 2016-05-06  Richard Biener  <rguenther@suse.de>
1798
1799         PR tree-optimization/70948
1800         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1801         Properly clobber all fields of va_list for __builtin_va_start.
1802
1803 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1804
1805         PR debug/70935
1806         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1807         loop latch destination.
1808
1809 2016-05-06  Martin Liska  <mliska@suse.cz>
1810
1811         * tree-ssa-uninit.c: Apply manual changes
1812         to the GNU coding style.
1813         (prune_uninit_phi_opnds): Rename from
1814         prune_uninit_phi_opnds_in_unrealizable_paths.
1815
1816 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1817
1818         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1819         mspace): Remove deprecated options.
1820         * doc/invoke.texi (SH options): Remove -mspace.
1821
1822 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1823
1824         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1825
1826 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1827
1828         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1829         corresponding combine split pattern.
1830
1831 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1832
1833         PR target/58219
1834         * config/sh/predicates.md (long_displacement_mem_operand): New.
1835         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1836         Add movi20, movi20s alternatives.  Adjust length attribute for
1837         alternatives.
1838         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1839         alternatives.
1840         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1841         attribute for alternatives.
1842         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1843         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1844         length attribute for alternatives.
1845
1846 2016-05-06  Richard Biener  <rguenther@suse.de>
1847
1848         PR tree-optimization/70960
1849         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1850
1851 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1852
1853         PR target/52933
1854         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1855         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1856
1857 2016-05-06  Marek Polacek  <polacek@redhat.com>
1858
1859         PR sanitizer/70875
1860         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1861
1862 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1863
1864         PR target/54089
1865         * config/sh/sh.md (*rotcr): Add another variant.
1866
1867 2016-05-06  Richard Biener  <rguenther@suse.de>
1868
1869         PR middle-end/70931
1870         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1871
1872 2016-05-06  Richard Biener  <rguenther@suse.de>
1873
1874         PR middle-end/70941
1875         * fold-const.c (split_tree): Always convert to the original type
1876         before negating.
1877
1878 2016-05-06  Richard Biener  <rguenther@suse.de>
1879
1880         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1881         (fwprop_addr): Likewise.
1882
1883 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1884
1885         PR target/70873
1886         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1887         New prototype.
1888         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1889         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1890         the splitter condition.
1891         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1892         the splitter condition.
1893         (FP float_extend load splitter): Ditto.
1894
1895 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1896
1897         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1898         to REGNO in all peephole2 patterns.
1899         (post-reload splitters): Change true_regnum to REGNO in
1900         post-reload splitters.
1901         (zero_extend splitters): Use general_reg_operand and
1902         nonimmediate_gr_operand predicates.
1903
1904 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1905
1906         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1907         v constraint instead of x.
1908
1909 2016-05-05  Alan Modra  <amodra@gmail.com>
1910
1911         PR target/68662
1912         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1913         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1914         TARGET_NO_FP_IN_TOC for -mrelocatable.
1915         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1916         TARGET_RELOCATABLE test.
1917         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1918         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1919         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1920         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1921         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1922         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1923         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1924         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1925         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1926         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1927         Likewise.
1928         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1929         (rs6000_stack_info): Likewise.
1930         (rs6000_elf_asm_out_constructor): Likewise.
1931         (rs6000_elf_asm_out_destructor): Likewise.
1932         (rs6000_elf_declare_function_name): Likewise.
1933         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1934         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1935         Don't define.
1936
1937 2016-05-05  Alan Modra  <amodra@gmail.com>
1938
1939         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1940
1941 2016-05-05  Alan Modra  <amodra@gmail.com>
1942
1943         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1944         out-of-line gpr restore for one or two regs if that would add
1945         a save of lr.
1946
1947 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1948
1949         PR target/70873
1950         * config/i386/i386.md
1951         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1952         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1953         as operand 0 predicate.
1954         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1955         Ditto.
1956         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1957         Ditto.  Emit the pattern using RTX.
1958
1959         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1960         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1961         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1962         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1963         Ditto.
1964         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1965         sse_reg_operand as operand 0 predicate.
1966
1967         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1968         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
1969         instead of gen_rtx_REG.
1970         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
1971         Ditto.
1972
1973 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1974
1975         * function.c (emit_use_return_register_into_block): Delete.
1976         (gen_return_pattern): Delete.
1977         (emit_return_into_block): Delete.
1978         (active_insn_between): Delete.
1979         (convert_jumps_to_returns): Delete.
1980         (emit_return_for_exit): Delete.
1981         (thread_prologue_and_epilogue_insns): Delete all code dealing with
1982         simple_return for shrink-wrapped blocks.
1983         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
1984         end of blocks that need one.
1985         (get_unconverted_simple_return): Delete.
1986         (convert_to_simple_return): Delete.
1987         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
1988         (convert_to_simple_return): Ditto.
1989
1990 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1991
1992         * cfgcleanup.c (bb_is_just_return): New function.
1993         (try_optimize_cfg): Simplify jumps to return, branches to return,
1994         and branches around return.
1995
1996 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1997
1998         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
1999         branch to a return.
2000
2001 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2002
2003         PR c++/70906
2004         PR c++/70933
2005         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2006         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2007         assert flags & OEP_HASH_CHECK, instead of asserting it
2008         never happens.  Handle TARGET_EXPR.
2009         * fold-const.c (operand_equal_p): For hash verification,
2010         or in OEP_HASH_CHECK into flags.
2011
2012 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2013
2014         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2015         comment.
2016         (compute_samebase_partition_bases): Fix typo.
2017
2018 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2019
2020         * config/i386/sse.md (vec_interleave_highv8sf,
2021         vec_interleave_lowv8sf, vec_interleave_highv4df,
2022         vec_interleave_lowv4df): Remove constraints from expanders.
2023
2024         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
2025
2026 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2027
2028         * tree-inline.c (expand_call_inline): Fix path dealing with
2029         making lhs of call statement undefined.
2030
2031 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2032
2033         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
2034         Check availability on NODE, too.
2035         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
2036         (cgraph_node::call_for_symbol_and_aliases): Likewise.
2037         (varpool_node::call_for_symbol_and_aliase): Likewise.
2038         * ipa-pure-const.c (add_new_function): Analyze all bodies.
2039         (propagate_pure_const): Propagate across interposable functions, too.
2040         (skip_function_for_local_pure_const): Do not skip interposable bodies
2041         with aliases.
2042         (pass_local_pure_const::execute): Update.
2043
2044 2016-05-04  Marek Polacek  <polacek@redhat.com>
2045
2046         * doc/invoke.texi: Document -Wdangling-else.
2047
2048 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2049
2050         * config.gcc: Error out when conflicting multilib is detected.  Do not
2051         loop over multilibs since no combination is legal.
2052
2053 2016-05-04  Alan Modra  <amodra@gmail.com>
2054
2055         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
2056         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
2057         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2058         Align .toc.
2059
2060 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
2061
2062         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
2063         Clean up p5600 comments.
2064
2065 2016-05-04  Richard Biener  <rguenther@suse.de>
2066
2067         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
2068         constructor simplifications.
2069         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
2070
2071 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
2072
2073         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
2074         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
2075         result.set_rtx is null instead of aborting.
2076         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
2077         Always enable.
2078         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
2079         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
2080         *mov<mode>_store_postinc): New patterns.
2081
2082 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
2083
2084         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
2085         as commutative.  Check both conversions are NOP.
2086         ((A & B) OP (C & B)): Remove.
2087
2088 2016-05-04  Alan Modra  <amodra@gmail.com>
2089
2090         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
2091
2092 2016-05-04  Alan Modra  <amodra@gmail.com>
2093
2094         PR target/70866
2095         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
2096         when cr2,3,4 are all fixed regs.
2097
2098 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
2099
2100         PR rtl-optimization/57193
2101         * opts.c (default_options_table): Revert OPT_frename_registers change.
2102         * doc/invoke.texi (-frename-registers, -O2): Likewise.
2103
2104 2016-05-03  Martin Sebor  <msebor@redhat.com>
2105
2106         PR c++/66561
2107         * builtins.c (fold_builtin_FILE): New function.
2108         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
2109         (fold_builtin_0): Call them.
2110         * gimplify.c (gimplify_call_expr): Remove the handling of
2111         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
2112
2113         PR c++/66561
2114         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
2115         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
2116         constants.
2117
2118         PR c++/66639
2119         * doc/extend.texi (Function Names as Strings): Update __func__,
2120         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
2121         constants.
2122
2123 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2124             Richard Biener  <rguenther@suse.de>
2125
2126         PR tree-optimization/70916
2127         * tree-if-conv.c: Include cfganal.h.
2128         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
2129         and remove_fake_exit_edges around the optimization pass.
2130
2131 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
2132
2133         * cgraph.c (symbol_table::create_edge): Set inline_failed.
2134         (cgraph_edge::make_direct): Likewise.
2135         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
2136         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
2137         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
2138         (CIF_THUNK): New code.
2139         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
2140         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
2141         (compute_inline_parameters): Set inline_failed for thunks.
2142         (inline_analyze_function): Cleanup.
2143         * ipa-inline.c (can_inline_edge_p): Do not deal with
2144         call_stmt_cannot_inline_p.
2145         (can_early_inline_edge_p): Likewise.
2146         (early_inliner): Initialize inline_failed.
2147         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
2148
2149 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
2150
2151         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
2152         from nonimm_ssenomem_operand.
2153         (nonimm_ssenomem_operand): New predicate.
2154         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
2155         as operand 0 predicate.
2156         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
2157         Disable unsupported alternatives using "enabled" attribute.
2158         Use register_ssemem_operand as operand 0 predicate.
2159         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
2160
2161 2016-05-03  Marek Polacek  <polacek@redhat.com>
2162
2163         PR c/70859
2164         * input.c (expansion_point_location): New function.
2165         * input.h (expansion_point_location): Declare.
2166
2167 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
2168
2169         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
2170         occurence with frame_offset_ ones.
2171
2172 2016-05-03  Alan Modra  <amodra@gmail.com>
2173
2174         PR rtl-optimization/70890
2175         * ira.c (combine_and_move_insns): When moving def_insn, remove
2176         equivs on use_insn.
2177
2178 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2179
2180         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
2181         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
2182         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
2183         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
2184
2185 2016-05-03  Alan Modra  <amodra@gmail.com>
2186
2187         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
2188         for SAVE_MULTIPLE/STORE_MULTIPLE.
2189
2190 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2191
2192         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
2193         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
2194
2195 2016-05-03  Richard Biener  <rguenther@suse.de>
2196
2197         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
2198         default true.
2199         (gimplify_arg): Likewise.
2200         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
2201         re-writing the result to a decl if required.
2202         (internal_get_tmp_var): Add allow_ssa parameter
2203         and override into_ssa with it.
2204         (get_formal_tmp_var): Adjust.
2205         (get_initialized_tmp_var): Add allow_ssa parameter.
2206         (gimplify_arg): Add allow_ssa parameter and avoid generating
2207         SSA names for the result false.
2208         (gimplify_call_expr): If the call may return twice do not
2209         gimplify parameters into SSA.
2210         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
2211         (gimplify_modify_expr): Adjust assert.  For noreturn calls
2212         with a SSA name LHS adjust its def.
2213         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
2214         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
2215         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
2216         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
2217         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
2218         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
2219         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
2220         (optimize_target_teams): Do not allow SSA names for clause operands.
2221         (gimplify_expr): Likewise for where we mark the result addressable.
2222         * passes.def (pass_init_datastructures): Remove.
2223         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
2224         (rewrite_stmt): Likewise.
2225         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
2226         (replace_locals_op): Replace SSA names.
2227         (copy_gimple_seq_and_replace_locals): Init src_cfun.
2228         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
2229         * cgraph.c (release_function_body): Free CFG annotations only
2230         when we have a CFG.  Simplify.
2231         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2232         force_gimple_operand instead of get_initialized_tmp_var.
2233         * tree-pass.h (make_pass_init_datastructures): Remove.
2234         * tree-ssa.c (execute_init_datastructures): Remove.
2235         (pass_data_init_datastructures): Likewise.
2236         (class pass_init_datastructures): Likewise.
2237         (make_pass_init_datastructures): Likewise.
2238         * omp-low.c (create_omp_child_function): Init SSA data structures.
2239         (grid_expand_target_grid_body): Likewise.
2240         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
2241         name before adding it to names_to_release.
2242         (remove_bb): Always release SSA defs.
2243         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
2244         before dereferencing it.
2245         * cgraphunit.c (init_lowered_empty_function): Always
2246         int SSA data structures.
2247         * tree-ssanames.c (release_defs): Remove assert that we are in
2248         SSA form.
2249         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
2250
2251 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2252             Uros Bizjak  <ubizjak@gmail.com>
2253
2254         PR rtl-optimization/70467
2255         * config/i386/predicates.md (x86_64_hilo_int_operand,
2256         x86_64_hilo_general_operand): New predicates.
2257         * config/i386/constraints.md (Wd): New constraint.
2258         * config/i386/i386.md (mode attr di): Use Wd instead of e.
2259         (general_hilo_operand): New mode attr.
2260         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
2261         instead of <general_operand>.
2262         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
2263         x86_64_hilo_general_operand instead of <general_operand>.
2264
2265 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2266
2267         PR tree-optimization/70916
2268         * tree-if-conv.c (constant_or_ssa_name): Removed.
2269         (fold_build_cond_expr): Use is_gimple_val instead of
2270         constant_or_ssa_name.
2271
2272         PR tree-optimization/70916
2273         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
2274         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
2275
2276         PR target/49244
2277         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
2278         (optimize_atomic_bit_test_and): New function.
2279         (pass_fold_builtins::execute): Use it.
2280         * optabs.def (atomic_bit_test_and_set_optab,
2281         atomic_bit_test_and_complement_optab,
2282         atomic_bit_test_and_reset_optab): New optabs.
2283         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
2284         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
2285         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
2286         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
2287         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
2288         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
2289         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
2290         * doc/md.texi (atomic_bit_test_and_set@var{mode},
2291         atomic_bit_test_and_complement@var{mode},
2292         atomic_bit_test_and_reset@var{mode}): Document.
2293         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
2294         atomic_bit_test_and_complement<mode>,
2295         atomic_bit_test_and_reset<mode>): New expanders.
2296         (atomic_bit_test_and_set<mode>_1,
2297         atomic_bit_test_and_complement<mode>_1,
2298         atomic_bit_test_and_reset<mode>_1): New insns.
2299
2300 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
2301
2302         PR rtl-optimization/70687
2303         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
2304         instead of unsigned HOST_WIDE_INT.
2305
2306 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
2307
2308         PR rtl-optimization/44281
2309         * hard-reg-set.h (struct target_hard_regs): New field
2310         x_fixed_nonglobal_reg_set.
2311         (fixed_nonglobal_reg_set): New macro.
2312         * reginfo.c (init_reg_sets_1): Initialize it.
2313         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
2314         of fixed_reg_set.
2315         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
2316
2317 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2318
2319         PR tree-optimization/56541
2320         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
2321         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
2322         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
2323         (any_complicated_phi): new static variable.
2324         (aggressive_if_conv): delete.
2325         (if_convertible_phi_p): support phis with more than two arguments.
2326         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
2327         critical pred edges.
2328         (ifcvt_split_critical_edges): support phis with more than two
2329         arguments by checking new parameter.  only split critical edges
2330         if needed.
2331         (tree_if_conversion): handle simd pragma marked loop using new
2332         local variable aggressive_if_conv.  check any_complicated_phi.
2333
2334 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2335
2336         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
2337         before using it.
2338
2339 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2340
2341         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
2342         cbase.
2343
2344 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2345
2346         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
2347         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
2348         define_insn_and_split.
2349         (mulsi3_i): New define_insn_and_split.
2350         (mulsi3_call): Convert to define_insn.
2351         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
2352         Remove constraints.
2353
2354 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2355
2356         * machmode.h (mode_complex): Add support to give the complex mode
2357         for a given mode.
2358         (GET_MODE_COMPLEX_MODE): Likewise.
2359         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2360         stored by build_complex_type and gfc_build_complex_type instead of
2361         trying to figure out the appropriate mode based on the size. Raise
2362         an assertion error, if the type was not set.
2363         * genmodes.c (struct mode_data): Add field for the complex type of
2364         the given type.
2365         (blank_mode): Likewise.
2366         (make_complex_modes): Remember the complex mode created in the
2367         base type.
2368         (emit_mode_complex): Write out the mode_complex array to map a
2369         type mode to the complex version.
2370         (emit_insn_modes_c): Likewise.
2371         * tree.c (build_complex_type): Set the complex type to use before
2372         calling layout_type.
2373         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2374         support for __float128 complex datatypes.
2375         (rs6000_hard_regno_mode_ok): Likewise.
2376         (rs6000_setup_reg_addr_masks): Likewise.
2377         (rs6000_complex_function_value): Likewise.
2378         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2379         __float128 and __ibm128 complex.
2380         (FLOAT128_IBM_P): Likewise.
2381         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2382         * doc/extend.texi (Additional Floating Types): Document that
2383         -mfloat128 must be used to enable __float128.  Document complex
2384         __float128 and __ibm128 support.
2385
2386 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2387
2388         PR target/49244
2389         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
2390         char/short arguments promoted to int because of promote_prototypes.
2391
2392 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2393
2394         * config/i386/predicates.md (register_ssemem_operand): New predicate.
2395         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
2396         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
2397         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
2398         alternatives using "enabled" attribute.  Use register_ssemem_operand
2399         as operand 1 predicate.
2400         (*cmpi<unord>xf_i387): Split XFmode pattern from
2401         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
2402         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
2403         *absneg<mode>2_i387.  Disable unsupported alternatives using
2404         "enabled" attribute.
2405         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
2406
2407 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2408
2409         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
2410         marker.
2411         (oacc_loop_process): Check mask for loop termination.
2412
2413 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2414
2415         * cif-code.def (CIF_THUNK): Add.
2416         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
2417         accidental change.
2418
2419 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2420
2421         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2422         (dump_inline_summary): Dump it.
2423         (fp_expression_p): New predicate.
2424         (estimate_function_body_sizes): Use it.
2425         (inline_merge_summary): Merge fp_expressions.
2426         (inline_read_section): Read fp_expressions.
2427         (inline_write_summary): Write fp_expressions.
2428         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2429         codegen boundary if either caller or callee is !fp_expressions.
2430         * ipa-inline.h (inline_summary): Add fp_expressions.
2431         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2432         to fp_expressions be sure the fp generation flags are updated.
2433
2434 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2435
2436         PR rtl-optimization/70467
2437         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2438
2439         PR rtl-optimization/70467
2440         * ipa-pure-const.c (check_call): Handle internal calls even in
2441         ipa mode like in local mode.
2442
2443 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2444
2445         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2446
2447 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2448
2449         * match.pd (X u< X, X u> X): New transformations.
2450
2451 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2452
2453         * flag-types.h (enum warn_strict_overflow_code): Move ...
2454         * coretypes.h: ... here.
2455         * fold-const.h (fold_overflow_warning): Declare.
2456         * fold-const.c (fold_overflow_warning): Make non-static.
2457         (fold_comparison): Move the transformation of X +- C1 CMP C2
2458         into X CMP C2 -+ C1 ...
2459         * match.pd: ... here.
2460         * gimple-fold.c (fold_stmt_1): Protect with
2461         fold_defer_overflow_warnings.
2462
2463 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2464
2465         * omp-low.c (struct oacc_loop): Add 'inner' field.
2466         (new_oacc_loop_raw): Initialize it to zero.
2467         (oacc_loop_fixed_partitions): Initialize it.
2468         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2469         available partitioning.
2470
2471 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2472
2473         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2474         register_operand.
2475         (umulsidi3): Likewise.
2476         (indirect_jump): Fix jump instruction assembly patterns.
2477
2478 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2479
2480         PR target/70860
2481         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2482         (nvptx_function_value): Assert non-NULL cfun.
2483
2484 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2485
2486         PR rtl-optimization/70886
2487         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2488
2489         * cselib.h (rtx_equal_for_cselib_1): Declare.
2490         (rtx_equal_for_cselib_p: New inline function.
2491         * cselib.c (rtx_equal_for_cselib_p): Delete.
2492         (rtx_equal_for_cselib_1): Make public.
2493
2494 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2495
2496         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2497         (register_mixssei387nonimm_operand): Remove predicate.
2498         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2499         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2500         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2501         for TARGET_MIX_SSE_I387 alternatives.
2502         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2503         Disable unsupported alternatives using "enabled" attribute.  Use
2504         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2505         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2506
2507 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2508
2509         * tree.c (cst_and_fits_in_hwi): Simplify.
2510
2511 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2512
2513         * tree.h (wi::to_wide): New function.
2514         * expr.c (expand_expr_real_1): Use wi::to_wide.
2515         * fold-const.c (int_const_binop_1): Likewise.
2516         (extract_muldiv_1): Likewise.
2517
2518 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2519
2520         * wide-int.h: Update offset_int and widest_int documentation.
2521         (WI_SIGNED_SHIFT_RESULT): New macro.
2522         (wi::binary_shift): Define signed_shift_result_type for
2523         shifts on offset_int- and widest_int-like types.
2524         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2525         * tree.h (int_bit_position): Use shift operators instead of wi::
2526          shifts.
2527         * alias.c (adjust_offset_for_component_ref): Likewise.
2528         * expr.c (get_inner_reference): Likewise.
2529         * fold-const.c (fold_comparison): Likewise.
2530         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2531         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2532         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2533         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2534         (stmt_kills_ref_p): Likewise.
2535         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2536         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2537         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2538         (ao_ref_init_from_vn_reference): Likewise.
2539
2540 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2541
2542         * wide-int.h: Update offset_int and widest_int documentation.
2543         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2544         (wi::binary_traits): Allow ordered comparisons between offset_int and
2545         offset_int, between widest_int and widest_int, and between either
2546         of these types and basic C types.
2547         (operator <, <=, >, >=): Define for the same combinations.
2548         * tree.h (tree_int_cst_lt): Use comparison operators instead
2549         of wi:: comparisons.
2550         (tree_int_cst_le): Likewise.
2551         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2552         (fold_nonarray_ctor_reference): Likewise.
2553         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2554         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2555         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2556         * tree-sra.c (completely_scalarize): Likewise.
2557         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2558         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2559         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2560         (check_for_binary_op_overflow): Likewise.
2561         (search_for_addr_array): Likewise.
2562         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2563
2564 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2565
2566         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2567         (arc_save_restore): Likewise.
2568         (arc_dwarf_register_span): Likewise.
2569         (arc_output_pic_addr_const): Initialize suffix variable.
2570
2571 2016-05-02  Martin Liska  <mliska@suse.cz>
2572
2573         * symbol-summary.h (function_summary::function_summary):
2574         Remove checking assert for all cgraph nodes.
2575         (function_summary::get): Check summary_uid.
2576         (symtab_insertion): Check summary_uid.
2577
2578 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2579
2580         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2581         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2582         bmaskn instruction.
2583         (arc_dwarf_register_span): Remove enum keyword.
2584         (compact_memory_operand_p): New function.
2585         * config/arc/arc.h (reg_class): Add code density register classes.
2586         (REG_CLASS_NAMES): Likewise.
2587         (REG_CLASS_CONTENTS): Likewise.
2588         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2589         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2590         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2591         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2592         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2593         constraints.
2594         (h, Rcd, Rsd, Rzd): New register constraints.
2595         (T): Use compact_memory_operand_p function.
2596         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2597
2598 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2599
2600         * config/sh/sh.md (*negnegt, *movtt): Remove.
2601
2602 2016-05-02  Marek Polacek  <polacek@redhat.com>
2603             Tom de Vries  <tom@codesourcery.com>
2604
2605         PR tree-optimization/70700
2606         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2607         bigger than FIRST_REF_NODE.
2608
2609 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2610
2611         PR target/52898
2612         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2613         TARGET_CMPEQDI_T.
2614         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2615         function is used when pseudos can be created.
2616         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2617         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2618         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2619         define_expand.  Allow it only when pseudos can be created.
2620         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2621
2622 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2623
2624         * config/i386/constraints.md (BC): Only allow -1 operands.
2625         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2626         Add "enabled" attribute.  Update XI mode attribute calculation.
2627         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2628         (*movoi_internal_avx): Update XI mode attribute calculation.
2629         (*movti_internal): Ditto.
2630
2631 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2632
2633         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2634         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2635
2636 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2637
2638         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2639         statement on instruction code.  Remove trailing spaces.
2640         (altivec_expand_stv_builtin): Likewise.
2641
2642 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2643
2644         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2645         (TARGET_FPU_DOUBLE): Simplify.
2646         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2647         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2648         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2649         with 'TARGET_FPU_DOUBLE'.
2650         * config/sh/sh.md: Likewise.
2651
2652 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2653
2654         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2655         SH_DIV_STR_FOR_SIZE): Remove.
2656         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2657         SH_DIV_STR_FOR_SIZE): Remove.
2658
2659 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2660
2661         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2662         logical_reg_operand): Delete.
2663         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2664         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2665         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2666         match_operand and match_test.
2667         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2668         variables on their first use.  Return bool values.
2669         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2670         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2671         arith_reg_operand for input operand.  Remove empty constraints.
2672         (xorsi3): Delete.
2673         (*xorsi3_compact): Rename to xorsi3.
2674         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2675         (*zero_extend<mode>si2_disp_mem): Update comment.
2676         (mov_nop): Delete.
2677
2678 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2679
2680         * config/sh/t-sh: Remove SH5 support.
2681         * config.gcc: Likewise.
2682         * configure: Likewise.
2683
2684 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2685
2686         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2687
2688 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2689
2690         * config/sh/sh.c (register_sh_passes, sh_option_override,
2691         sh_print_operand, prepare_move_operands,
2692         sh_can_follow_jump): Remove TARGET_SH1 checks.
2693         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2694         PROMOTE_MODE): Likewise.
2695         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2696         movdi): Likewise.
2697
2698 2016-04-30  Alan Modra  <amodra@gmail.com>
2699
2700         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2701         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2702         Check for user regs later to avoid unnecessary looping over regs.
2703         Merge user reg check with non-saved reg check.  Don't force
2704         inline VR restore when static chain used.
2705         (rs6000_frame_related): Omit eh_frame info for user regs when
2706         saving.
2707         (fixed_regs_p): Delete.
2708
2709 2016-04-30  Alan Modra  <amodra@gmail.com>
2710
2711         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2712         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2713         Update all uses.
2714
2715 2016-04-30  Alan Modra  <amodra@gmail.com>
2716
2717         PR target/69645
2718         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2719         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2720         Update all uses.
2721
2722 2016-04-30  Alan Modra  <amodra@gmail.com>
2723
2724         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2725         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2726         flag_pic test for Darwin.
2727
2728 2016-04-30  Alan Modra  <amodra@gmail.com>
2729
2730         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2731         throw_calls_crossed.
2732         (REG_FREQ_CALLS_CROSSED): Delete.
2733         (REG_N_THROWING_CALLS_CROSSED): Delete.
2734         * regstat.c (regstat_bb_compute_ri): Don't calculate
2735         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2736         (dump_reg_info): Don't print call cross frequency.
2737         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2738         and REG_N_THROWING_CALLS_CROSSED.
2739
2740 2016-04-30  Alan Modra  <amodra@gmail.com>
2741
2742         * regs.h (struct reg_info_t): Delete live_length.
2743         (REG_LIVE_LENGTH): Delete macro.
2744         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2745         local_live, local_processed and local_live_last_luid params.
2746         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2747         Formatting fixes.
2748         (regstat_compute_ri): Adjust for above.  Don't set
2749         REG_LIVE_LENGTH.
2750         (dump_reg_info): Don't print live length.
2751         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2752         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2753         Localize loop_depth var.
2754
2755 2016-04-30  Alan Modra  <amodra@gmail.com>
2756
2757         * ira.c (enum valid_equiv): New.
2758         (validate_equiv_mem): Return enum.
2759         (update_equiv_mem): Create replacement in more cases.
2760         (add_store_equivs): Update validate_equiv_mem call.
2761
2762 2016-04-30  Alan Modra  <amodra@gmail.com>
2763
2764         * ira.c (combine_and_move_insns): Rather than scanning insns,
2765         use DF infrastucture to find use and def insns.
2766
2767 2016-04-30  Alan Modra  <amodra@gmail.com>
2768
2769         ira.c (combine_and_move_insns): Move invariant conditions..
2770         (ira.c): ..to here.  Call combine_and_move_insns before
2771         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2772         req_equiv later using max_reg_num() rather than global max_regno.
2773         (contains_replace_regs): Delete.
2774         (add_store_equivs): Remove contains_replace_regs test.
2775
2776 2016-04-30  Alan Modra  <amodra@gmail.com>
2777
2778         * ira.c (struct equiv_mem_data): New.
2779         (equiv_mem, equiv_mem_modified): Delete static vars.
2780         (validate_equiv_mem_from_store): Use "data" param to communicate..
2781         (validate_equiv_mem): ..from here.
2782
2783 2016-04-30  Alan Modra  <amodra@gmail.com>
2784
2785         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2786         split out from..
2787         (update_reg_equivs): ..here.  Move allocation and freeing of
2788         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2789         end_alias_analysis to..
2790         (ira): ..here.
2791
2792 2016-04-30  Alan Modra  <amodra@gmail.com>
2793
2794         * ira.c (pdx_subregs): Delete.
2795         (struct equivalence): Add pdx_subregs field.
2796         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2797         pdx_subregs access.
2798         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2799         pdx_subregs access.
2800
2801 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2802
2803         * config/rs6000/altivec.h: Change definitions of vec_xl and
2804         vec_xst.
2805         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2806         (LD_ELEMREV_V2DI): New.
2807         (LD_ELEMREV_V4SF): New.
2808         (LD_ELEMREV_V4SI): New.
2809         (LD_ELEMREV_V8HI): New.
2810         (LD_ELEMREV_V16QI): New.
2811         (ST_ELEMREV_V2DF): New.
2812         (ST_ELEMREV_V2DI): New.
2813         (ST_ELEMREV_V4SF): New.
2814         (ST_ELEMREV_V4SI): New.
2815         (ST_ELEMREV_V8HI): New.
2816         (ST_ELEMREV_V16QI): New.
2817         (XL): New.
2818         (XST): New.
2819         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2820         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2821         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2822         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2823         (altivec_expand_builtin): Add handling for
2824         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2825         (rs6000_invalid_builtin): Add error-checking for
2826         RS6000_BTM_P9_VECTOR.
2827         (altivec_init_builtins): Define builtins used to implement vec_xl
2828         and vec_xst.
2829         (rs6000_builtin_mask_names): Define power9-vector.
2830         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2831         (RS6000_BTM_P9_VECTOR): Define.
2832         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2833         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2834         (vsx_ld_elemrev_v2df): Likewise.
2835         (vsx_ld_elemrev_v4sf): Likewise.
2836         (vsx_ld_elemrev_v4si): Likewise.
2837         (vsx_ld_elemrev_v8hi): Likewise.
2838         (vsx_ld_elemrev_v16qi): Likewise.
2839         (vsx_st_elemrev_v2df): Likewise.
2840         (vsx_st_elemrev_v2di): Likewise.
2841         (vsx_st_elemrev_v4sf): Likewise.
2842         (vsx_st_elemrev_v4si): Likewise.
2843         (vsx_st_elemrev_v8hi): Likewise.
2844         (vsx_st_elemrev_v16qi): Likewise.
2845         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2846         grammar.
2847
2848 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2849
2850         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2851         out into ...
2852         (simplify_control_stmt_condition_1): ... here.  Recurse into
2853         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2854
2855 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2856
2857         PR target/69810
2858         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2859         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2860         define_insn_and_split to define_insn.
2861         (zero_extendqi<mode>2_dot2): Same.
2862         (extendqi<mode>2_dot): Same.
2863         (extendqi<mode>2_dot2): Same.
2864
2865 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2866
2867         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2868         (probe_stack): New expander.
2869         (probe_stack_<mode>): New insn pattern.
2870
2871 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2872
2873         * config/i386/i386.md
2874         (operations with memory inputs setting flags peephole2):
2875         Remove uneeded REG_P checks.  Cleanup pattern generation.
2876
2877 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2878
2879         * tree-vect-loop.c (vect_transform_loop): Fix
2880         nb_iterations_upper_bound computation for vectorized loop.
2881
2882 2016-04-29  Marek Polacek  <polacek@redhat.com>
2883             Jakub Jelinek  <jakub@redhat.com>
2884
2885         PR sanitizer/70342
2886         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2887         TARGET_EXPR_SLOT as a base.
2888
2889 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2890
2891         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2892         with 'rCm2' constraints to limit possible immediate size.
2893         (*load_zeroextendqisi_update): Likewise.
2894         (*load_signextendqisi_update): Likewise.
2895         (*loadhi_update): Likewise.
2896         (*load_zeroextendhisi_update): Likewise.
2897         (*load_signextendhisi_update): Likewise.
2898         (*loadsi_update): Likewise.
2899         (*loadsf_update): Likewise.
2900
2901 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2902
2903         * config/i386/predicates.md (constm1_operand): Fix comparison.
2904
2905 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2906
2907         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2908
2909 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2910
2911         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2912         remaining SH5 related settings.
2913         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2914         shmedia_prepare_call_address): Delete.
2915         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2916         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2917         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2918         UNSUPPORTED_SH2A): Remove m5 checks.
2919         (sh_divide_strategy_e): Remove SH5 division strategies.
2920         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2921         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2922
2923 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2924
2925         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2926
2927 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2928
2929         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2930         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2931         Change lder to ldr.
2932         * config/s390/vector.md ("mov<mode>"): Likewise.
2933
2934 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2935
2936         * config/s390/constraints.md ("U", "W"): Invoke
2937         s390_mem_constraint with "ZR" and "ZT".
2938         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2939         addresses when using LRA.  Accept also short displacements for S
2940         and T constraints.  Do not check for long displacement target for
2941         S and T constraints.
2942         (s390_mem_constraint): Remove handling of U and W constraints.
2943         * config/s390/s390.md (various patterns): Remove the short
2944         displacement constraints (Q and R) if a long displacement
2945         constraint is present.  Add longdisp as required CPU capability.
2946         * config/s390/vector.md: Likewise.
2947         * config/s390/vx-builtins.md: Likewise.
2948
2949 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2950
2951         PR target/60040
2952         * reload1.c (reload): Call finish_spills before
2953         restarting reload loop. Skip select_reload_regs
2954         if update_eliminables_and_spill returns true.
2955
2956 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2957
2958         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2959         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2960         (umulhisi3_imm): Update predicates and constraint letters.
2961         (umulhisi3_reg): Declare instruction as commutative.
2962         * config/arc/constraints.md (J12, J16): New constraints.
2963         * config/arc/predicates.md (short_unsigned_const_operand): New
2964         predicate.
2965         (arc_short_operand): Likewise.
2966         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2967
2968 2016-04-29  Richard Biener  <rguenther@suse.de>
2969
2970         PR tree-optimization/13962
2971         PR tree-optimization/65686
2972         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
2973         * tree-ssa-alias.c (ptrs_compare_unequal): New function
2974         using PTA to compare pointers.
2975         * match.pd: Add pattern for pointer equality compare simplification
2976         using ptrs_compare_unequal.
2977
2978 2016-04-29  Richard Biener  <rguenther@suse.de>
2979
2980         * stor-layout.c (layout_type): Do not build a pointer-to-element
2981         type for arrays.
2982
2983 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2984
2985         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
2986         Use SWI mode iterator.  Use general_reg_operand predicate.
2987         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
2988         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
2989         predicates.
2990
2991 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
2992
2993         PR middle-end/70843
2994         * fold-const.c (operand_equal_p): Don't verify hash value equality
2995         if arg0 == arg1.
2996         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
2997         and OMP_CLAUSE.
2998
2999 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3000
3001         PR target/70858
3002         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3003         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3004         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3005         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3006         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3007
3008 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3009
3010         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3011         to info.  Don't initialize separate fields to 0.  Clean up
3012         formatting a bit.
3013
3014 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3015
3016         * config/i386/i386.md (peephole2s for operations with memory inputs):
3017         Use SWI mode iterator.
3018         (peephole2s for operations with memory outputs): Ditto.
3019         Do not check for stack checking probe.
3020
3021         (probe_stack): Remove expander.
3022
3023 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3024             Andrew Burgess  <andrew.burgess@embecosm.com>
3025
3026         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
3027         operands as 32-bits.
3028
3029 2016-04-28  Jason Merrill  <jason@redhat.com>
3030
3031         * gdbinit.in: Skip line-map.h.
3032
3033 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3034             Andrew Burgess  <andrew.burgess@embecosm.com>
3035
3036         * config/arc/arc.c (arc_conditional_register_usage): Take
3037         TARGET_RRQ_CLASS into account.
3038         (arc_print_operand): Support printing 'p' and 's' operands.
3039         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
3040         as 0.
3041         (TARGET_RRQ_CLASS): Define.
3042         (IS_POWEROF2_OR_0_P): Define.
3043         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
3044         alternatives.
3045         (*tst_movb): New define_insn.
3046         (*tst): Avoid recognition if it could prevent '*tst_movb'
3047         combination; replace c/CnL with c/Chs alternative.
3048         (*tst_bitfield_tst): New define_insn.
3049         (*tst_bitfield_asr): New define_insn.
3050         (*tst_bitfield): New define_insn.
3051         (andsi3_i): Add Rrq variant.
3052         (extzv): New define_expand.
3053         (insv): New define_expand.
3054         (*insv_i): New define_insn.
3055         (*movb): New define_insn.
3056         (*movb_signed): New define_insn.
3057         (*movb_high): New define_insn.
3058         (*movb_high_signed): New define_insn.
3059         (*movb_high_signed + 1): New define_split pattern.
3060         (*mrgb): New define_insn.
3061         (*mrgb + 1): New define_peephole2 pattern.
3062         (*mrgb + 2): New define_peephole2 pattern.
3063         * config/arc/arc.opt (mbitops): New option for nps400, uses
3064         TARGET_NPS_BITOPS_DEFAULT.
3065         * config/arc/constraints.md (q): Make register class conditional.
3066         (Rrq): New register constraint.
3067         (Chs): New constraint.
3068         (Clo): New constraint.
3069         (Chi): New constraint.
3070         (Cbf): New constraint.
3071         (Cbn): New constraint.
3072         (C18): New constraint.
3073         (Cbi): New constraint.
3074
3075 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3076
3077         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
3078         dst->popcount.
3079         (bitmap_intersection_of_preds): Ditto.
3080         (bitmap_union_of_succs): Ditto.
3081         (bitmap_union_of_preds): Ditto.
3082         * sbitmap.c (do_popcount): Delete.
3083         (BITMAP_DEBUGGING): Delete.
3084         (sbitmap_verify_popcount): Delete.
3085         (sbitmap_alloc): Don't initialize the popcount field.
3086         (sbitmap_alloc_with_popcount): Delete.
3087         (sbitmap_resize): Don't resize the popcount array.
3088         (sbitmap_vector_alloc): Don't initialize the popcount field.
3089         (bitmap_copy): Don't copy the popcount array.
3090         (bitmap_clear): Don't clear the popcount array.
3091         (bitmap_clear): Delete the popcount array handling.
3092         (bitmap_ior_and_compl): Delete the popcount assert.
3093         (bitmap_not): Ditto.
3094         (bitmap_and_compl): Ditto.
3095         (bitmap_and): Delete the popcount array handling.
3096         (bitmap_xor): Ditto.
3097         (bitmap_ior): Ditto.
3098         (bitmap_or_and): Delete the popcount assert.
3099         (bitmap_and_or): Ditto.
3100         (popcount_table): Delete.
3101         (sbitmap_elt_popcount): Delete.
3102         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
3103         (bitmap_set_bit): Delete the popcount assert.
3104         (bitmap_clear_bit): Ditto.
3105         (sbitmap_free): Don't free the popcount array.
3106         (sbitmap_alloc_with_popcount): Delete declaration.
3107         (sbitmap_popcount): Ditto.
3108
3109 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3110             Andrew Burgess  <andrew.burgess@embecosm.com>
3111
3112         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
3113         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
3114         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
3115         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
3116         * config/arc/arc.opt (mcmem): New option.
3117         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
3118         supply length for r/m alternative.
3119         (*extendqisi2_ac): Likewise.
3120         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
3121         r/Uex alternative.
3122         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
3123         (movhi_insn): Likewise.
3124         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
3125         (*zero_extendqihi2_i): Add r/Ucm alternative.
3126         (*zero_extendqisi2_ac): Likewise.
3127         (*zero_extendhisi2_i): Likewise.
3128         * config/arc/constraints.md (Uex): New memory constraint.
3129         (Ucm): New define_constraint.
3130         * config/arc/predicates.md (long_immediate_loadstore_operand):
3131         Return 0 for MEM with cmem_address address.
3132         (cmem_address_0): New predicates.
3133         (cmem_address_1): Likewise.
3134         (cmem_address_2): Likewise.
3135         (cmem_address): Likewise.
3136
3137 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3138
3139         * config/rs6000/rs6000.c (machine_function): Rename
3140         insn_chain_scanned_p to spe_insn_chain_scanned_p.
3141         (rs6000_stack_info): Adjust.
3142
3143 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3144             Andrew Burgess  <andrew.burgess@embecosm.com>
3145
3146         * config/arc/constraints.md (Usd): Convert to define_constraint.
3147         (Us<): Likewise.
3148         (Us>): Likewise.
3149
3150 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3151
3152         PR target/70821
3153         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
3154         Add new peephole2 where the first insn is *mov<mode>_or instead of
3155         *mov<mode>_internal.
3156
3157 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
3158
3159         * tracer.c (bb_seen): Make static.
3160
3161 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
3162
3163         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
3164         support, setup defaults.
3165         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
3166         * config/arc/arc.c (arc_init): Add NPS400 support.
3167         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
3168         (TARGET_ARC700): NPS400 is also an ARC700.
3169         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
3170
3171 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3172
3173         PR target/70668
3174         * config/nds32/nds32.md (casesi): Don't access the operands array
3175         out of bounds.
3176
3177 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3178
3179         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
3180         (or $-1,reg peephole2): Ditto.
3181         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
3182
3183 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3184
3185         * doc/extend.texi (Common Function Attributes) [optimize]:
3186         Discourage use of the optimize attribute.
3187
3188 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
3189
3190         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
3191         special case builtin.
3192         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3193         ALTIVEC_BUILTIN_VEC_ADDE.
3194         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3195         support for ALTIVEC_BUILTIN_VEC_ADDE.
3196         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3197         for __builtin_vec_adde.
3198
3199 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3200
3201         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
3202         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
3203
3204 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3205
3206         PR testsuite/70595
3207         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3208         attributes): Document cilkplus_runtime.
3209
3210 2016-04-28  Martin Jambor  <mjambor@suse.cz>
3211
3212         * tree-cfg.c (verify_expr): Verify that local declarations belong to
3213         this function.  Call verify_expr on MEM_REFs and bases of other
3214         handled_components.
3215
3216 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3217
3218         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
3219         for WORD_REGISTER_OPERATIONS to runtime check.
3220
3221 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3222
3223         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
3224
3225 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3226
3227         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
3228         big-endian compilation.
3229         * config/arc/arc.md (addf3): Likewise.
3230         (subdf3): Likewise.
3231         (muldf3): Likewise.
3232
3233 2016-04-28  Richard Biener  <rguenther@suse.de>
3234
3235         PR tree-optimization/70840
3236         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
3237         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
3238         Mark x * pow(x,c) -> pow(x,c+1) commutative.
3239         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
3240
3241 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3242
3243         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
3244         and explain why in a comment.
3245
3246 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3247
3248         * config/arc/arc.md (cpu_facility): Add fpx variant.
3249         (subdf3): Prohibit use reverse sub when assist operations option
3250         is enabled.
3251         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
3252         instructions only when FPX is enabled.
3253         * testsuite/gcc.target/arc/trsub.c: New test.
3254
3255 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3256
3257         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
3258         mult_operator when calculating "type" attribute.
3259         (*fop_<mode>_1_i387): Ditto.
3260         (*fop_xf_1_i387): Ditto.
3261         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
3262         Use std::swap to swap operands.  Use RTL expressions to generate
3263         converted pattern.
3264
3265 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3266             Joern Rennecke  <joern.rennecke@embecosm.com>
3267
3268         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
3269         declaration.
3270         (emit_pic_move): Remove.
3271         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
3272         * config/arc/arc.c (emit_pic_move): Removed.
3273         (TARGET_HAVE_TLS): Define.
3274         (arc_conditional_register_usage): Test for arc_tp_regno.
3275         (arc_print_operand, arc_print_operand_address): Handle TLS
3276         unspecs.
3277         (arc_needs_pcl_p): New function.
3278         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
3279         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
3280         (arc_raw_symbolic_reference_mentioned_p): Likewise.
3281         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
3282         (arc_legitimize_tls_address): Likewise.
3283         (DTPOFF_ZERO_SYM): Define.
3284         (arc_legitimize_pic_address): Make it static, handle TLS cases.
3285         (arc_output_pic_addr_const): Print TLS unspecs.
3286         (prepare_pic_move): New function, replaces emit_pic_move.
3287         (arc_legitimate_constant_p): Handle TLS unspecs.
3288         (arc_legitimate_address_p): Likewise.
3289         (arc_rewrite_small_data_p): Use assert for TLS constants.
3290         (prepare_move_operands): Use prepare_pic_move.
3291         (arc_legitimize_address): Legitimize tls addresses.
3292         (arc_epilogue_uses): Check for arc_tp_regno.
3293         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
3294         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
3295         Define.
3296         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
3297         Likewise.
3298         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
3299         %(arc_tls_extra_start_spec).
3300         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
3301         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
3302         (EH_USES): Define.
3303         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
3304         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
3305         (UNSPEC_TLS_OFF): Add.
3306         (R10_REG): Define.
3307         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
3308         (get_thread_pointersi): New patterns.
3309         * config/arc/arc.opt (mtp-regno): New option.
3310         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
3311         (move_dest_operand): Likewise.
3312         * configure: Regenerate.
3313         * configure.ac: Add arc*-*-* case to test for tls.
3314         * doc/invoke.texi (ARC options): Document mtp-regno.
3315
3316 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3317
3318         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
3319         the new ARC HS SIMD instructions.
3320         (arc_preferred_simd_mode): New function.
3321         (arc_autovectorize_vector_sizes): Likewise.
3322         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
3323         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3324         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
3325         (arc_init_builtins): Add new SIMD builtin types.
3326         (arc_split_move): Handle 64 bit vector moves.
3327         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
3328         (TARGET_PLUS_QMACW): Define.
3329         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
3330         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
3331         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
3332         (VSUBADD4H): New builtins.
3333         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
3334         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
3335
3336 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
3337             Matthias Klose  <doko@debian.org>
3338
3339         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
3340
3341 2016-04-28  Richard Biener  <rguenther@suse.de>
3342
3343         PR middle-end/70777
3344         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
3345         canonicalization.
3346
3347 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
3348
3349         * common/config/sh/sh-common.c: Remove SH5 support.
3350         * config/sh/constraints.md: Likewise.
3351         * config/sh/config/sh/elf.h: Likewise.
3352         * config/sh/linux.h: Likewise.
3353         * config/sh/netbsd-elf.h: Likewise.
3354         * config/sh/predicates.md: Likewise.
3355         * config/sh/sh-c.c: Likewise.
3356         * config/sh/sh-protos.h: Likewise.
3357         * config/sh/sh.c: Likewise.
3358         * config/sh/sh.h: Likewise.
3359         * config/sh/sh.md: Likewise.
3360         * config/sh/sh.opt: Likewise.
3361         * config/sh/sync.md: Likewise.
3362         * config/sh/sh64.h: Delete.
3363         * config/sh/shmedia.h: Likewise.
3364         * config/sh/shmedia.md: Likewise.
3365         * config/sh/sshmedia.h: Likewise.
3366         * config/sh/t-netbsd-sh5-64: Likewise.
3367         * config/sh/t-sh64: Likewise.
3368         * config/sh/ushmedia.h: Likewise.
3369
3370 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3371
3372         * config/i386/i386.md (sign_extend to memory peephole2s): Use
3373         general_reg_operand instead of register_operand predicate.
3374
3375 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3376
3377         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
3378
3379 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
3380
3381         * match.pd (A - B > A, A + B < A): New transformations.
3382
3383 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
3384
3385         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
3386         which defaults to true.  Emit an outer pair of parentheses only if
3387         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
3388         don't emit parentheses for the right-hand operand.
3389
3390 2016-04-27  Jeff Law  <law@redhat.com>
3391
3392         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
3393
3394 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3395
3396         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
3397         (altivec_lvx_<mode>_internal): Document.
3398         (altivec_lvx_<mode>_2op): New define_insn.
3399         (altivec_lvx_<mode>_1op): Likewise.
3400         (altivec_lvx_<mode>_2op_si): Likewise.
3401         (altivec_lvx_<mode>_1op_si): Likewise.
3402         (altivec_stvx_<mode>): Remove.
3403         (altivec_stvx_<mode>_internal): Document.
3404         (altivec_stvx_<mode>_2op): New define_insn.
3405         (altivec_stvx_<mode>_1op): Likewise.
3406         (altivec_stvx_<mode>_2op_si): Likewise.
3407         (altivec_stvx_<mode>_1op_si): Likewise.
3408         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3409         Expand vec_ld and vec_st during parsing.
3410         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
3411         changes.
3412         (altivec_expand_stvx_be): Likewise.
3413         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
3414         address-masking behavior in RTL.
3415         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
3416         address-masking behavior in RTL.
3417         (altivec_expand_builtin): Change builtin code arguments for calls
3418         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3419         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3420         presence of lvx/stvx patterns.
3421         (alignment_with_canonical_addr): New function.
3422         (alignment_mask): Likewise.
3423         (find_alignment_op): Likewise.
3424         (recombine_lvx_pattern): Likewise.
3425         (recombine_stvx_pattern): Likewise.
3426         (recombine_lvx_stvx_patterns): Likewise.
3427         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3428         stvx patterns from expand.
3429         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3430         expansions.
3431         (vector_altivec_store_<mode>): Likewise.
3432
3433 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3434
3435         * config/aarch64/aarch64.md
3436         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3437         remove the "fp" attributes.
3438         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3439         add the "simd" attributes.
3440         (*movdf_aarch64): Likewise.
3441         (*movtf_aarch64): Remove the "fp" attributes.
3442         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3443         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3444
3445 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3446
3447         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3448         rtx to rtx_code_label *.
3449         * rtl.h (maybe_set_first_label_num): Likewise.
3450
3451 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3452
3453         * df-core.c (df_add_problem): Make the problem param be const.
3454         (df_remove_problem): Make local "problem" be const.
3455         * df-problems.c (problem_RD): Make const.
3456         (problem_LR): Likewise.
3457         (problem_LIVE): Likewise.
3458         (problem_MIR): Likewise.
3459         (problem_CHAIN): Likewise.
3460         (problem_WORD_LR): Likewise.
3461         (problem_NOTE): Likewise.
3462         (problem_MD): Likewise.
3463         * df-scan.c (problem_SCAN): Likewise.
3464         * df.h (struct df_problem): Make field "dependent_problem" be
3465         const.
3466         (struct dataflow): Likewise for field "problem".
3467         (df_add_problem): Make param const.
3468
3469 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3470
3471         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3472         inter-unit moves to/from vector registers are enabled.  Do not disable
3473         for TARGET_MMX.
3474
3475 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3476
3477         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3478         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3479         #define to...
3480         (enum df_problem_id): ...this new enum.
3481         (struct df_problem): Convert field "id" from "int" to
3482         enum df_problem_id.
3483
3484 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3485
3486         * rtl.def: Update comment for "things in the instruction chain" to
3487         reflect the removal of the leading "i" field for INSN_UID in
3488         r210360.  Fix bogus apostrophe.
3489
3490 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3491
3492         * config/i386/i386.md
3493         (lea arith with mem operand + setcc peephole2): Set operator mode.
3494
3495 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3496
3497         PR target/70155
3498         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3499         (dimode_scalar_to_vector_candidate_p): This.
3500         (timode_scalar_to_vector_candidate_p): New function.
3501         (scalar_to_vector_candidate_p): Likewise.
3502         (timode_check_non_convertible_regs): Likewise.
3503         (timode_remove_non_convertible_regs): Likewise.
3504         (remove_non_convertible_regs): Likewise.
3505         (remove_non_convertible_regs): Renamed to ...
3506         (dimode_remove_non_convertible_regs): This.
3507         (scalar_chain::~scalar_chain): Make it virtual.
3508         (scalar_chain::compute_convert_gain): Make it pure virtual.
3509         (scalar_chain::mark_dual_mode_def): Likewise.
3510         (scalar_chain::convert_insn): Likewise.
3511         (scalar_chain::convert_registers): Likewise.
3512         (scalar_chain::add_to_queue): Make it protected.
3513         (scalar_chain::emit_conversion_insns): Likewise.
3514         (scalar_chain::replace_with_subreg): Likewise.
3515         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3516         (scalar_chain::convert_op): Likewise.
3517         (scalar_chain::convert_reg): Likewise.
3518         (scalar_chain::make_vector_copies): Likewise.
3519         (scalar_chain::convert_registers): New pure virtual function.
3520         (class dimode_scalar_chain): New class.
3521         (class timode_scalar_chain): Likewise.
3522         (scalar_chain::mark_dual_mode_def): Renamed to ...
3523         (dimode_scalar_chain::mark_dual_mode_def): This.
3524         (timode_scalar_chain::mark_dual_mode_def): New function.
3525         (timode_scalar_chain::convert_insn): Likewise.
3526         (dimode_scalar_chain::convert_registers): Likewise.
3527         (scalar_chain::compute_convert_gain): Renamed to ...
3528         (dimode_scalar_chain::compute_convert_gain): This.
3529         (scalar_chain::replace_with_subreg): Renamed to ...
3530         (dimode_scalar_chain::replace_with_subreg): This.
3531         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3532         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3533         (scalar_chain::make_vector_copies): Renamed to ...
3534         (dimode_scalar_chain::make_vector_copies): This.
3535         (scalar_chain::convert_reg): Renamed to ...
3536         (dimode_scalar_chain::convert_reg ): This.
3537         (scalar_chain::convert_op): Renamed to ...
3538         (dimode_scalar_chain::convert_op): This.
3539         (scalar_chain::convert_insn): Renamed to ...
3540         (dimode_scalar_chain::convert_insn): This.
3541         (scalar_chain::convert): Call convert_registers.
3542         (convert_scalars_to_vector): Change to scalar_chain pointer to
3543         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3544         in 32-bit mode.  Delete scalar_chain pointer.  Call
3545         free_dominance_info in 64-bit mode.
3546         (pass_stv::gate): Remove TARGET_64BIT check.
3547         (ix86_option_override): Put the 64-bit STV pass before the CSE
3548         pass.
3549
3550 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3551
3552         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3553         dw_loc_frame_offset field.
3554         * dwarf2out.c (new_loc_descr): Likewise.
3555         (resolve_args_picking_1): Turn the VISITED hash set into a
3556         FRAME_OFFSET hash map. Use it to associate a frame offset to
3557         visited nodes. Remove uses of the CHECKING_P macro.
3558         (resolve_args_picking): Update call to resolve_args_picking_1.
3559
3560 2016-04-27  Martin Liska  <mliska@suse.cz>
3561
3562         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3563         (free_loop_data): Release vuses of groups.
3564
3565 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3566
3567         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3568         instead of redundant use_id and boolean have_use_for.
3569         (struct iv_use): Change sub_id into group_id.  Remove field next.
3570         Move fields: related_cands, n_map_members, cost_map and selected
3571         to ...
3572         (struct iv_group): ... here.  New structure.
3573         (struct iv_common_cand): Use structure declaration directly.
3574         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3575         (MAX_CONSIDERED_USES): Rename macro to ...
3576         (MAX_CONSIDERED_GROUPS): ... here.
3577         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3578         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3579         (dump_uses): Rename to ...
3580         (dump_groups): ... here.  Update all uses.
3581         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3582         (find_induction_variables): Refactor format of dump information.
3583         (record_sub_use): Delete.
3584         (record_use): Update all uses.
3585         (record_group): New function.
3586         (record_group_use, find_interesting_uses_op): Call above functions.
3587         Update all uses.
3588         (find_interesting_uses_cond): Ditto.
3589         (group_compare_offset): New function.
3590         (split_all_small_groups): Rename to ...
3591         (split_small_address_groups_p): ... here.  Update all uses.
3592         (split_address_groups):  Update all uses.
3593         (find_interesting_uses): Refactor format of dump information.
3594         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3595         base and step.
3596         (add_candidate, record_common_cand): Remove redundant assert.
3597         (add_iv_candidate_for_biv): Update use.
3598         (add_iv_candidate_derived_from_uses): Update all uses.
3599         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3600         (alloc_use_cost_map): Ditto.
3601         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3602         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3603         (determine_use_iv_cost_generic): Ditto.
3604         (determine_group_iv_cost_generic): Ditto.
3605         (determine_use_iv_cost_address): Ditto.
3606         (determine_group_iv_cost_address): Ditto.
3607         (determine_use_iv_cost_condition): Ditto.
3608         (determine_group_iv_cost_cond): Ditto.
3609         (determine_use_iv_cost): Ditto.
3610         (determine_group_iv_cost): Ditto.
3611         (set_autoinc_for_original_candidates): Update all uses.
3612         (find_iv_candidates): Update all uses.  Refactor dump information.
3613         (determine_use_iv_costs): Ditto.
3614         (determine_iv_costs): Ditto.
3615         (iv_ca_cand_for_use): Rename to ...
3616         (iv_ca_cand_for_group): ... here.  Update all uses.
3617         (iv_ca_add_use, iv_ca_add_group): Ditto.
3618         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3619         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3620         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3621         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3622         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3623         (create_new_iv, adjust_iv_update_pos): Ditto.
3624         (rewrite_use_address): Delete.
3625         (rewrite_use_address_1): Rename to ...
3626         (rewrite_use_address): ... here.
3627         (rewrite_use_compare): Update all uses.
3628         (rewrite_use): Delete.
3629         (rewrite_uses): Rename to ...
3630         (rewrite_groups): ... here.  Update all uses.
3631         (remove_unused_ivs, free_loop_data): Update all uses.
3632         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3633
3634 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3635
3636         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3637         for WORD_REGISTER_OPERATIONS to runtime check.
3638
3639 2016-04-27  Richard Biener  <rguenther@suse.de>
3640
3641         PR ipa/70760
3642         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3643         aggregate_value_p to determine if a function result is
3644         returned by reference.
3645         (ipa_pta_execute): Functions having their address taken are
3646         not automatically nonlocal.
3647
3648 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3649
3650         PR sanitizer/70683
3651         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3652         * fold-const.c (operand_equal_p): If flag_checking and
3653         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3654         and if it returns non-zero, assert iterative_hash_expr on both
3655         args is the same.
3656
3657 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3658
3659         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3660
3661 2016-04-27  Nick Clifton  <nickc@redhat.com>
3662
3663         PR middle-end/49889
3664         * varasm.c (merge_weak): Generate an error if an attempt is made
3665         to convert a non-weak static function into a weak, public function.
3666
3667 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3668
3669         * params.def (MAX_PARTITION_SIZE): New param.
3670         * doc/invoke.texi: Document lto-max-partition.
3671
3672 2016-04-27  Richard Biener  <rguenther@suse.de>
3673
3674         PR ipa/70785
3675         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3676         function cummulating used_from_other_partition, externally_visible
3677         and force_output from aliases.
3678         (refered_from_nonlocal_var): Likewise.
3679         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3680         node flags properly.
3681
3682 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3683
3684         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3685         (-Wmemset-elt-size): New item.
3686
3687 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3688
3689         PR ada/70759
3690         * stor-layout.h (internal_reference_types): Delete.
3691         * stor-layout.c (reference_types_internal): Likewise.
3692         (internal_reference_types): Likewise.
3693         (layout_type) <REFERENCE_TYPE>: Adjust.
3694
3695 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3696
3697         PR sanitizer/70683
3698         * tree.h (inchash::add_expr): Add FLAGS argument.
3699         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3700         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3701         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3702         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3703         if swap_tree_comparison (code) is smaller than code, hash that
3704         and arguments in the other order.  Hash CONVERT_EXPR the same
3705         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3706         of ADDR_EXPR of decl as the decl itself.  Add or remove
3707         OEP_ADDRESS_OF from recursive flags as needed.  For
3708         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3709         operands commutatively and only the third one normally.
3710         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3711
3712 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3713
3714         * config/rtems.h (LIB_SPEC): Add -latomic.
3715
3716 2016-04-27  Joel Sherrill  <joel@rtems.org>
3717
3718         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3719         xilink.ld and flags not relevant to RTEMS.
3720
3721 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3722
3723         * toplev.c (backend_init_target): Avoid calling init_reload when using
3724         LRA.
3725
3726 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3727
3728         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3729         for loops rather than one for the whole function.
3730
3731 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3732
3733         * match.pd (X + CST CMP X): New transformation.
3734
3735 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3736
3737         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3738         * fold-const.c (fold_binary_loc): Remove 2 transformations
3739         superseded by match.pd.
3740         * match.pd (x+x -> x*2): Generalize to integers.
3741
3742 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3743
3744         * config/i386/i386.md (operation on memory peephole): Duplicate an
3745         existing peephole and adapt it to match lea rather than an operation
3746         that clobbers CC.
3747
3748         PR rtl-optimization/57193
3749         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3750         and above.
3751         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3752
3753 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3754
3755         * tree-if-conv.c (any_pred_load_store): New static variable.
3756         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3757         any_pred_load_store instead of and_mask_load_store.
3758         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3759         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3760         (combine_blocks, tree_if_conversion): Ditto.
3761
3762 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3763
3764         PR tree-optimization/70771
3765         PR tree-optimization/70775
3766         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3767         virtual PHI nodes.  Delete parameter.
3768         (if_convertible_loop_p_1): Delete argument to above function.
3769         (predicate_all_scalar_phis): Delete code handling single-argument
3770         PHIs.
3771         (tree_if_conversion): Mark and update virtual SSA.
3772
3773 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3774
3775         PR target/61821
3776         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3777         (x86_elf_aligned_common): Rename to ...
3778         (x86_elf_aligned_decl_common): ... this.
3779         Add decl arg.  Switch to .lbss for largecomm object.  Use
3780         LARGECOMM_SECTION_ASM_OP.
3781         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3782         renaming.
3783         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3784         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3785         Pass new decl arg.
3786         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3787         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3788
3789 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3790
3791         PR target/59407
3792         * config/i386/i386.c (SECTION_LARGE): Define.
3793         (x86_64_elf_select_section): Set it for large data/bss sections.
3794         Only clear SECTION_WRITE for .lrodata.
3795         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3796         data/bss sections.
3797         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3798         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3799         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3800         SECTION_MACH_DEP.
3801         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3802         * doc/tm.texi: Regenerate.
3803
3804 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3805
3806         PR bootstrap/70704
3807         * configure.ac (--enable-checking): Document extra flag, for
3808         non-release builds default to --enable-checking=yes,extra.
3809         If misc checking and extra checking, define CHECKING_P to 2 instead
3810         of 1.
3811         * common.opt (fchecking=): Add.
3812         * doc/invoke.texi (-fchecking=): Document.
3813         * doc/install.texi: Document --enable-checking changes.
3814         * configure: Regenerated.
3815         * config.in: Regenerated.
3816
3817 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3818
3819         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3820         attribute instead of which_alternative.
3821         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3822         Use EXT_REX_SSE_REG_P where appropriate.
3823
3824 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3825
3826         * config/i386/predicates.md (const0_operand): Do not match
3827         const_wide_int code.
3828         (const1_operand): Ditto.
3829
3830 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3831
3832         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3833         for SSE constm1 operands and TARGET_AVX512VL.
3834         (*movti_internal): Ditto.
3835         (*mov<mode>_or): Use constm1_operand predicate.
3836         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3837         for SSE vector_all_ones operands and TARGET_AVX512VL.
3838         * config/i386/predicates.md (constm1_operand): New predicate.
3839         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3840         emission of constant -1 load.
3841
3842 2016-04-25  Jason Merrill  <jason@redhat.com>
3843
3844         * gdbinit.in: Skip is-a.h.
3845
3846         * attribs.c (register_scoped_attributes): Fix logic.
3847         * attribs.h: Declare register_scoped_attributes.
3848
3849 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3850
3851         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3852         stxvd2x and stxvw4x built-in functions.
3853
3854 2016-04-25  DJ Delorie  <dj@redhat.com>
3855
3856         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3857         (ashrhi3): Likewise.
3858         (lshrhi3): Likewise.
3859
3860 2016-04-25  Richard Biener  <rguenther@suse.de>
3861
3862         PR tree-optimization/70780
3863         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3864         wasn't visited yet.
3865         (compute_antic): Mark blocks with abnormal preds as visited as
3866         they have a final empty antic-in solution already.
3867
3868 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3869
3870         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3871
3872 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3873
3874         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3875         mode is VQI to improve mixed mode vectorization.
3876         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3877         define_insn to match low half of signed vaddw.
3878         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3879         define_insn to match high half of signed vaddw.
3880         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3881         define_insn to match low half of unsigned vaddw.
3882         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3883         define_insn to match high half of unsigned vaddw.
3884         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3885         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3886         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3887         for new function.
3888         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3889         * config/arm/predicates.md (vect_par_constant_high): Support
3890         big endian and simplify by calling
3891         arm_simd_check_vect_par_cnst_half
3892         (vect_par_constant_low): Likewise.
3893
3894 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3895
3896         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3897         predicate for operand 2.
3898
3899 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3900             H.J. Lu  <hongjiu.lu@intel.com>
3901
3902         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3903         machine_mode argument.
3904         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3905         constm1_rtx operands.  For VOIDmode constants, get mode from
3906         pred_mode.  Check mode size if the mode is supported by ABI.
3907         (standard_sse_constant_opcode): Do not use standard_constant_p.
3908         Strictly check ABI support for all-ones operands.
3909         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3910         immediates. Update calls to standard_sse_constant_p.
3911         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3912         (ix86_rtx_costs): Ditto.
3913         * config/i386/i386.md (*movxi_internal_avx512f): Use
3914         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3915         Use (v,BC) alternative instead of (v,C). Use register_operand
3916         checks instead of MEM_P.
3917         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3918         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3919         isa attribute.  Use register_operand checks instead of MEM_P.
3920         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3921         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3922         alternative and corresponding sse2 isa attribute.
3923         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3924         to standard_sse_constant_p.
3925         (FP constant splitters): Ditto.
3926         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3927         (C): Ditto.
3928         * config/i386/predicates.md (constm1_operand): Remove.
3929         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3930         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3931         vector_all_ones_operand instead of constm1_operand.
3932
3933 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3934
3935         * print-rtl.c (print_rtx_insn_vec): New function.
3936         * print-rtl.h: New prototype.
3937         * store-motion.c (struct st_expr): Make avail_stores a vector.
3938         (st_expr_entry): Adjust.
3939         (free_st_expr_entry): Likewise.
3940         (print_store_motion_mems): Likewise.
3941         (find_moveable_store): Likewise.
3942         (compute_store_table): Likewise.
3943         (delete_store): Likewise.
3944         (build_store_vectors): Likewise.
3945
3946 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3947
3948         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3949
3950 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3951
3952         * vec.h (vec_safe_contains): New function.
3953         (vec::contains): Likewise.
3954         (vec::begin): Likewise.
3955         (vec::end): Likewise.
3956
3957 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3958
3959         PR sanitizer/70712
3960         * cfgexpand.c (expand_stack_vars): Fix typo.
3961
3962 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3963
3964         * system.h (list, map, set, vector): Include conditionally.
3965         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3966         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3967         * ipa-icf.c (INCLUDE_LIST): Define.
3968         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
3969         * config/sh/sh.c (INCLUDE_VECTOR): Define.
3970         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
3971         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
3972         * cp/logic.cc (INCLUDE_LIST): Define.
3973         * fortran/trans-common.c (INCLUDE_MAP): Define.
3974
3975 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3976
3977         * auto-profile.c: Remove <string.h> include.
3978         * ipa-icf-gimple.c: Remove <list> include.
3979         * diagnostic.c: Remove <new> include.
3980         * genmatch.c: Likewise.
3981         * pretty-print.c: Likewise.
3982         * toplev.c: Likewise
3983         * c/c-objc-common.c: Likewise.
3984         * cp/error.c: Likewise.
3985         * fortran/error.c: Likewise.
3986
3987 2016-04-22  Richard Biener  <rguenther@suse.de>
3988
3989         * lto-streamer-in.c (input_ssa_names): Do not allocate
3990         GIMPLE_NOP for all SSA names.
3991         * lto-streamer-out.c (output_ssa_names): Do not output
3992         SSA names that should have been released.
3993
3994 2016-04-22  Richard Biener  <rguenther@suse.de>
3995
3996         PR tree-optimization/70740
3997         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
3998         VDEF.
3999
4000 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4001
4002         PR target/70750
4003         * config/i386/predicates.md (call_insn_operand): Replace
4004         sibcall_memory_operand with memory_operand.
4005
4006 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
4007
4008         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4009         has_single_use() tests.
4010         (register_edge_assert_for_1): Likewise.
4011         (find_assert_locations_1): Check the liveness bitmap instead of
4012         checking has_single_use().
4013
4014 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
4015
4016         PR target/70728
4017         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4018         Extract AVX-512BW constraint from AVX.
4019
4020 2016-04-21  Richard Biener  <rguenther@suse.de>
4021
4022         PR tree-optimization/70725
4023         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
4024         for phi_convertible_by_degenerating_args.
4025         (predicate_all_scalar_phis): Handle single-argument PHIs.
4026
4027 2016-04-21  Richard Biener  <rguenther@suse.de>
4028
4029         PR middle-end/70747
4030         * fold-const.c (fold_comparison): Return properly typed
4031         constant boolean.
4032
4033 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
4034
4035         PR tree-optimization/70715
4036         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4037         after expanding BASE using expand_simple_operations.
4038
4039 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4040
4041         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
4042         New transformations.
4043
4044 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4045
4046         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
4047
4048 2016-04-20  Jan Hubicka  <jh@suse.cz>
4049
4050         * ipa-inline.c (can_inline_edge_p): Pass caller info to
4051         ultiimate_alias_target.
4052         (update_callee_keys): Likewise.
4053         (lookup_recursive_calls): Likewise.
4054         (speculation_useful_p): Likewise.
4055
4056 2016-04-20  Jan Hubicka  <jh@suse.cz>
4057
4058         PR ipa/70018
4059         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
4060         (set_nothrow_flag_1): ... this; handle interposition correctly;
4061         recurse on aliases and thunks.
4062         (cgraph_node::set_nothrow_flag): New.
4063         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
4064         functions compiled with non-call exceptions that binds to current
4065         def.
4066         (propagate_nothrow): Be safe WRT interposition.
4067         * cgraph.h (set_nothrow_flag): Update prototype.
4068
4069 2016-04-18  Jan Hubicka  <jh@suse.cz>
4070
4071         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4072         max_loop_iterations_int.
4073         (tree_unswitch_outer_loop): Likewise.
4074
4075 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4076
4077         PR tree-optimization/69489
4078         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
4079         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
4080         Revise dump message.
4081         (if_convertible_bb_p): Remove check on edge count of basic block's
4082         predecessors.
4083
4084 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4085
4086         PR tree-optimization/56625
4087         PR tree-optimization/69489
4088         * tree-data-ref.h (DR_INNERMOST): New macro.
4089         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
4090         hashing struct innermost_loop_behavior.
4091         (ref_DR_map): Remove.
4092         (innermost_DR_map): New map.
4093         (baseref_DR_map): Revise comment.
4094         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
4095         to innermost_DR_map accroding to its innermost loop behavior.
4096         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
4097         to its innermost loop behavior.
4098         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
4099         Add initialization for innermost_DR_map.  Record memory reference
4100         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
4101         have innermost loop behavior.
4102         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
4103         innermost_DR_map.
4104
4105 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
4106
4107         * config/i386/i386.md (*lea<mode>_general_1): Rename from
4108         *lea_general_1.  Use explicit SWI12 mode interator.
4109         (*lea<mode>_general_2): Rename from *lea_general_2.
4110         Use explicit SWI12 mode interator.
4111         (*lea<mode>_general_3): Rename from *lea_general_3.
4112         Use explicit SWI12 mode interator.
4113         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
4114         Use explicit SWI12 mode interator.
4115         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
4116         Use explicit SWI48 mode interator.
4117
4118 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4119
4120         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4121         Short-cut unaligned load and store cases.  Handle all integer
4122         vector modes.
4123         (ix86_expand_vector_move_misalign): Short-cut unaligned load
4124         and store cases.  Call ix86_avx256_split_vector_move_misalign
4125         directly without checking mode class.
4126
4127 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4128             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4129
4130         PR target/64971
4131         * config/aarch64/aarch64.md (sibcall): Force call
4132         address to be DImode for ILP32.
4133         (sibcall_value): Likewise.
4134
4135 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4136
4137         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4138
4139 2016-04-20  Richard Biener  <rguenther@suse.de>
4140
4141         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
4142         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
4143         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
4144         (maybe_push_res_to_seq): Adjust.
4145         * gimple-fold.c (maybe_build_generic_op): Likewise.
4146
4147 2016-04-20  Marek Polacek  <polacek@redhat.com>
4148
4149         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4150         rather than true.
4151
4152 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
4153
4154         * config/i386/sse.md (vec_unpacks_lo_hi): Always
4155         use kmovw to support AVX512F target.
4156
4157 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4158
4159         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
4160
4161 2016-04-20  Marek Polacek  <polacek@redhat.com>
4162
4163         PR tree-optimization/70725
4164         * tree-if-conv.c (is_false_predicate): New function.
4165         (predicate_mem_writes): Use it.
4166
4167 2016-04-20  Richard Biener  <rguenther@suse.de>
4168
4169         PR tree-optimization/70726
4170         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4171         shift amounts from a pattern stmt operand.
4172
4173 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4174
4175         PR target/70674
4176         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4177         stack_restore_from_fpr pattern when restoring r15.
4178         (s390_optimize_prologue): Strip away the memory barrier in the
4179         parallel when trying to get rid of restore insns.
4180         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4181         definition for loading the stack pointer from an FPR.  Compared to
4182         the normal move insn this pattern includes a full memory barrier.
4183
4184 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4185
4186         PR middle-end/70680
4187         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4188         implicitly linear or lastprivate iterator on the outer context.
4189
4190 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4191
4192         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
4193         alignment check.
4194         * config/i386/i386.md (ssememalign): Removed.
4195         * config/i386/sse.md: Remove ssememalign attribute from patterns.
4196
4197 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4198
4199         PR target/69201
4200         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
4201         const short * to __builtin_ia32_loaddquhi512_mask.
4202         (_mm512_maskz_loadu_epi16): Likewise.
4203         (_mm512_mask_storeu_epi16): Pass short * to
4204         __builtin_ia32_storedquhi512_mask.
4205         (_mm512_mask_loadu_epi8): Pass const char * to
4206         __builtin_ia32_loaddquqi512_mask.
4207         (_mm512_maskz_loadu_epi8): Likewise.
4208         (_mm512_mask_storeu_epi8): Pass char * to
4209         __builtin_ia32_storedquqi512_mask.
4210         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
4211         const double * to __builtin_ia32_loadupd512_mask.
4212         (_mm512_mask_loadu_pd): Likewise.
4213         (_mm512_maskz_loadu_pd): Likewise.
4214         (_mm512_storeu_pd): Pass double * to
4215         __builtin_ia32_storeupd512_mask.
4216         (_mm512_mask_storeu_pd): Likewise.
4217         (_mm512_loadu_ps): Pass const float * to
4218         __builtin_ia32_loadups512_mask.
4219         (_mm512_mask_loadu_ps): Likewise.
4220         (_mm512_maskz_loadu_ps): Likewise.
4221         (_mm512_storeu_ps): Pass float * to
4222         __builtin_ia32_storeups512_mask.
4223         (_mm512_mask_storeu_ps): Likewise.
4224         (_mm512_mask_loadu_epi64): Pass const long long * to
4225         __builtin_ia32_loaddqudi512_mask.
4226         (_mm512_maskz_loadu_epi64): Likewise.
4227         (_mm512_mask_storeu_epi64): Pass long long *
4228         to __builtin_ia32_storedqudi512_mask.
4229         (_mm512_loadu_si512): Pass const int * to
4230         __builtin_ia32_loaddqusi512_mask.
4231         (_mm512_mask_loadu_epi32): Likewise.
4232         (_mm512_maskz_loadu_epi32): Likewise.
4233         (_mm512_storeu_si512): Pass int * to
4234         __builtin_ia32_storedqusi512_mask.
4235         (_mm512_mask_storeu_epi32): Likewise.
4236         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
4237         char * to __builtin_ia32_storedquqi256_mask.
4238         (_mm_mask_storeu_epi8): Likewise.
4239         (_mm256_mask_loadu_epi16): Pass const short * to
4240         __builtin_ia32_loaddquhi256_mask.
4241         (_mm256_maskz_loadu_epi16): Likewise.
4242         (_mm_mask_loadu_epi16): Pass const short * to
4243         __builtin_ia32_loaddquhi128_mask.
4244         (_mm_maskz_loadu_epi16): Likewise.
4245         (_mm256_mask_loadu_epi8): Pass const char * to
4246         __builtin_ia32_loaddquqi256_mask.
4247         (_mm256_maskz_loadu_epi8): Likewise.
4248         (_mm_mask_loadu_epi8): Pass const char * to
4249         __builtin_ia32_loaddquqi128_mask.
4250         (_mm_maskz_loadu_epi8): Likewise.
4251         (_mm256_mask_storeu_epi16): Pass short * to.
4252         __builtin_ia32_storedquhi256_mask.
4253         (_mm_mask_storeu_epi16): Pass short * to.
4254         __builtin_ia32_storedquhi128_mask.
4255         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
4256         const double * to __builtin_ia32_loadupd256_mask.
4257         (_mm256_maskz_loadu_pd): Likewise.
4258         (_mm_mask_loadu_pd): Pass onst double * to
4259         __builtin_ia32_loadupd128_mask.
4260         (_mm_maskz_loadu_pd): Likewise.
4261         (_mm256_mask_storeu_pd): Pass double * to
4262         __builtin_ia32_storeupd256_mask.
4263         (_mm_mask_storeu_pd): Pass double * to
4264         __builtin_ia32_storeupd128_mask.
4265         (_mm256_mask_loadu_ps): Pass const float * to
4266         __builtin_ia32_loadups256_mask.
4267         (_mm256_maskz_loadu_ps): Likewise.
4268         (_mm_mask_loadu_ps): Pass const float * to
4269         __builtin_ia32_loadups128_mask.
4270         (_mm_maskz_loadu_ps): Likewise.
4271         (_mm256_mask_storeu_ps): Pass float * to
4272         __builtin_ia32_storeups256_mask.
4273         (_mm_mask_storeu_ps): ass float * to
4274         __builtin_ia32_storeups128_mask.
4275         (_mm256_mask_loadu_epi64): Pass const long long * to
4276         __builtin_ia32_loaddqudi256_mask.
4277         (_mm256_maskz_loadu_epi64): Likewise.
4278         (_mm_mask_loadu_epi64): Pass const long long * to
4279         __builtin_ia32_loaddqudi128_mask.
4280         (_mm_maskz_loadu_epi64): Likewise.
4281         (_mm256_mask_storeu_epi64): Pass long long * to
4282         __builtin_ia32_storedqudi256_mask.
4283         (_mm_mask_storeu_epi64): Pass long long * to
4284         __builtin_ia32_storedqudi128_mask.
4285         (_mm256_mask_loadu_epi32): Pass const int * to
4286         __builtin_ia32_loaddqusi256_mask.
4287         (_mm256_maskz_loadu_epi32): Likewise.
4288         (_mm_mask_loadu_epi32): Pass const int * to
4289         __builtin_ia32_loaddqusi128_mask.
4290         (_mm_maskz_loadu_epi32): Likewise.
4291         (_mm256_mask_storeu_epi32): Pass int * to
4292         __builtin_ia32_storedqusi256_mask.
4293         (_mm_mask_storeu_epi32): Pass int * to
4294         __builtin_ia32_storedqusi128_mask.
4295         * config/i386/i386-builtin-types.def (PCSHORT): New.
4296         (PINT64): Likewise.
4297         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
4298         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
4299         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
4300         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
4301         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
4302         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
4303         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
4304         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
4305         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
4306         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
4307         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
4308         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
4309         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
4310         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
4311         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
4312         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
4313         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
4314         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
4315         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
4316         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
4317         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
4318         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
4319         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
4320         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
4321         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
4322         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
4323         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
4324         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
4325         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
4326         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
4327         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
4328         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
4329         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
4330         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
4331         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
4332         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
4333         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
4334         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
4335         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
4336         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
4337         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
4338         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
4339         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
4340         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
4341         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
4342         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
4343         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
4344         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
4345         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
4346         use UNSPEC_STOREU.
4347         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
4348         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
4349         load nor store.
4350         (ix86_expand_vector_move_misalign): Likewise.
4351         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
4352         to scalar function prototype for unaligned load/store builtins.
4353         (ix86_expand_special_args_builtin): Updated.
4354         * config/i386/sse.md (UNSPEC_LOADU): Removed.
4355         (UNSPEC_STOREU): Likewise.
4356         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
4357         (VI_ULOADSTORE_F_AVX512VL): Likewise.
4358         (ssescalarsize): Handle V4TI, V2TI and V1TI.
4359         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4360         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4361         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
4362         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
4363         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
4364         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
4365         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
4366         (<avx512>_storedqu<mode>_mask): Likewise.
4367         (*sse4_2_pcmpestr_unaligned): Likewise.
4368         (*sse4_2_pcmpistr_unaligned): Likewise.
4369         (*mov<mode>_internal): Renamed to ...
4370         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
4371         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
4372         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
4373         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
4374
4375 2016-04-19  Richard Biener  <rguenther@suse.de>
4376
4377         PR tree-optimization/70171
4378         * tree-ssa-phiprop.c: Include stor-layout.h.
4379         (phiprop_insert_phi): Handle the aggregate copy case.
4380         (propagate_with_phi): Likewise.
4381
4382 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
4383
4384         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
4385         instead of simplify_gen_subreg (... , 0).
4386         (ix86_delegitimize_address): Ditto.
4387         (ix86_split_divmod): Ditto.
4388         (ix86_split_copysign_const): Ditto.
4389         (ix86_split_copysign_var): Ditto.
4390         (ix86_expand_args_builtin): Ditto.
4391         (ix86_expand_round_builtin): Ditto.
4392         (ix86_expand_special_args_builtin): Ditto.
4393         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
4394         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
4395         (udivmodqi4): Ditto.
4396         (absneg splitters): Ditto.
4397         (*jcc_bt<mode>_1): Ditto.
4398
4399 2016-04-19  Richard Biener  <rguenther@suse.de>
4400
4401         PR tree-optimization/70724
4402         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4403         restoring out from ...
4404         (free_scc_vn): ... here.
4405         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4406         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4407         tail merging.
4408         (pass_fre::execute): Restore SSA info.
4409
4410 2016-04-19  Richard Biener  <rguenther@suse.de>
4411
4412         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
4413         * gimple-walk.c (walk_gimple_op): Initialize it.
4414         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
4415         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
4416         remapping SSA names of defs.
4417         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4418         adjustment.
4419
4420 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4421
4422         PR middle-end/70689
4423         * lra-constraints.c (equiv_substition_p): New.
4424         (process_alt_operands): Use it.
4425         (swap_operands): Swap it.
4426         (curr_insn_transform): Update it.
4427
4428 2016-04-18  Michael Matz  <matz@suse.de>
4429
4430         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4431         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4432         * tree-core.h (tree_type_common.align): Use bit-field.
4433         (tree_type_common.spare): New.
4434         (tree_decl_common.off_align): Make smaller.
4435         (tree_decl_common.align): Use bit-field.
4436
4437         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4438         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4439         (scan_sharing_clauses): Ditto.
4440         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4441         (omp_finish_file): Ditto.
4442         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4443         (layout_decl): Ditto.
4444         (relayout_decl): Ditto.
4445         (finalize_record_size): Use SET_TYPE_ALIGN.
4446         (finalize_type_size): Ditto.
4447         (finish_builtin_struct): Ditto.
4448         (layout_type): Ditto.
4449         (initialize_sizetypes): Ditto.
4450         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4451         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4452         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4453         (get_chain_field): Ditto.
4454         (get_trampoline_type): Ditto.
4455         (get_nl_goto_field): Ditto.
4456         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4457         SET_DECL_ALIGN.
4458         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4459         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4460         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4461         (build_qualified_type): Use SET_TYPE_ALIGN.
4462         (build_aligned_type, build_range_type_1): Ditto.
4463         (build_atomic_base): Ditto.
4464         (build_common_tree_nodes): Ditto.
4465         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4466         (expand_one_stack_var_at): Ditto.
4467         * coverage.c (build_var): Use SET_DECL_ALIGN.
4468         * except.c (init_eh): Ditto.
4469         * function.c (assign_parm_setup_block): Ditto.
4470         * symtab.c (increase_alignment_1): Ditto.
4471         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4472         * tree-vect-stmts.c (ensure_base_align): Ditto.
4473         * varasm.c (align_variable): Ditto.
4474         (assemble_variable): Ditto.
4475         (build_constant_desc): Ditto.
4476         (output_constant_def_contents): Ditto.
4477
4478         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4479         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4480         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4481         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4482         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4483
4484 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4485
4486         PR target/70708
4487         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4488         replace %vmovsd with "%vmovq".
4489         (vec_concatv2df): Likewise.
4490
4491 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4492
4493         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4494         (*vec_extractv2si_0): Ditto.
4495         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4496         (zero_extended_scalar_load_operand splitters): Ditto.
4497         (vec_extract splitters): Ditto.
4498         (*vec_extractv4si_0_zext): Ditto.
4499         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4500         and lowpart_subreg.
4501         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4502         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4503         (*sse4_1_extractps): Use lowpart_subreg.
4504         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4505
4506 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4507
4508         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4509         gld requirements.
4510         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4511         Mention Solaris 11 packaging changes.
4512         Update gas and gld requirements.
4513         Remove reference to pre-Solaris 10 bug.
4514         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4515         systems and bugs.
4516         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4517         with cc.
4518
4519 2016-04-17  Jan Hubicka  <jh@suse.cz>
4520
4521         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4522         max_loop_iterations_int.
4523
4524 2016-04-18  Richard Biener  <rguenther@suse.de>
4525
4526         PR tree-optimization/43434
4527         * tree-ssa-structalias.c (struct vls_data): New.
4528         (visit_loadstore): Handle all pointer-based accesses.
4529         (compute_dependence_clique): Compute a bitmap of restrict tags
4530         assigned bases and pass it to visit_loadstore.
4531
4532 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4533
4534         PR target/70711
4535         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4536         armv8.1-a and armv8.1-a+crc.
4537
4538 2016-04-18  Richard Biener  <rguenther@suse.de>
4539
4540         PR tree-optimization/70701
4541         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4542         references after translating through a memcpy.
4543
4544 2016-04-18  Richard Biener  <rguenther@suse.de>
4545
4546         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4547         (compute_antic): ... here.  For partial antic use regular
4548         postorder and scrap iteration.
4549         (compute_partial_antic_aux): Remove unused return value.
4550         (init_pre): Do not allocate postorder.
4551         (fini_pre): Do not free postorder.
4552
4553 2016-04-18  Richard Biener  <rguenther@suse.de>
4554
4555         PR middle-end/37870
4556         * expmed.c (extract_bit_field_1): Remove broken case
4557         using a wider MODE_INT mode.
4558
4559 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4560
4561         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4562         unless compiling with at least GCC-4.8.
4563
4564 2016-04-17  Jan Hubicka  <jh@suse.cz>
4565
4566         PR bootstrap/70706
4567         * graphite.c (graphite_finalize): Update call to
4568         tree_estimate_probability.
4569         * predict.h (tree_estimate_probability): Update prototype.
4570
4571 2016-04-17  Jan Hubicka  <jh@suse.cz>
4572
4573         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4574         (tree_estimate_probability): Likewise.
4575         (pass_profile::execute): Update.
4576         (report_predictor_hitrates): New function.
4577         * profile.c (compute_branch_probabilities): Use it.
4578         * predict.h (report_predictor_hitrates): Declare.
4579
4580 2016-04-17  Jan Hubicka  <jh@suse.cz>
4581
4582         PR ipa/70018
4583         * cgraph.h (cgraph_node::set_const_flag,
4584         cgraph_node::set_pure_flag): Update prototype to return bool;
4585         update comment.
4586         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4587         of interposable symbol are interposable, too.
4588         (cgraph_set_const_flag_1): Rename to ...
4589         (set_const_flag_1): ... this one; change to self recursive function
4590         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4591         clearnig the flag in all variants and also virtual thunks of const
4592         functions are pure; track if any change was done.
4593         (cgraph_node::set_const_flag): Update.
4594         (struct set_pure_flag_info): New struct.
4595         (cgraph_set_pure_flag_1): Rename to ...
4596         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4597         rather than pointer encoded flags; track if any changes was done;
4598         handle correctly clearning flag and setting flag of aliases already
4599         declared const.
4600         (cgraph_node::set_pure_flag): Update.
4601         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4602
4603 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4604
4605         PR other/70433
4606         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4607         backslash in label.
4608
4609 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4610
4611         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4612         '{}<> ' as escape-for-record.
4613
4614 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4615
4616         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4617         structure.
4618
4619 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4620
4621         PR other/70185
4622         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4623         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4624         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4625         * passes.c (finish_optimization_passes): Only call
4626         finish_graph_dump_file if dfi->graph_dump_initialized.
4627         (execute_function_dump, pass_init_dump_file): Use
4628         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4629
4630 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4631
4632         PR tree-optimization/70256
4633         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4634         (debug_varmap): New function.
4635
4636 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4637
4638         PR other/70183
4639         * passes.c (pass_manager::register_pass): Propagate pflags.
4640
4641 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4642
4643         PR other/68875
4644         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4645         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4646         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4647         check if it's equal to p_start.
4648         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4649
4650 2016-04-15  Jan Hubicka  <jh@suse.cz>
4651
4652         PR ipa/70018
4653         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4654         function does not bind to current def.
4655         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4656         handle conservatively calls to functions that does not need to bind
4657         to current def.
4658         (check_call): Update call of worse_state.
4659         (ignore_edge_for_nothrow): Update.
4660         (ignore_edge_for_pure_const): Likewise.
4661         (propagate_pure_const): Update calls to worse_state.
4662         (skip_function_for_local_pure_const): Reformat comments.
4663
4664 2016-04-15  Jan Hubicka  <jh@suse.cz>
4665
4666         PR ipa/70018
4667         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4668         (cgraph_node::function_symbol): Likewise.
4669         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4670         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4671         (symtab_node::ultimate_alias_target): Add REF parameter.
4672         (symtab_node::binds_to_current_def_p): Declare.
4673         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4674         (cgraph_node::function_symbol): Likewise.
4675         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4676         (cgraph_node::get_availability): Likewise.
4677         (cgraph_edge::binds_to_current_def_p): New inline function.
4678         (varpool_node::get_availability): Add REF parameter.
4679         (varpool_node::ultimate_alias_target): Likewise.
4680         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4681         (symtab_node::binds_to_current_def_p): Likewise.
4682         * varpool.c (varpool_node::get_availability): Likewise.
4683
4684 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4685
4686         PR target/70662
4687         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4688         Fix mode size check.
4689
4690 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4691
4692         * BASE-VER: Set to 7.0.0.
4693
4694 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4695
4696         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4697
4698 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4699
4700         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4701         architecture revisions.
4702
4703 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4704
4705         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4706         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4707         * config/i386/i386.md (stack decrement to push peepholes): Guard
4708         with !x86_using_red_zone ().
4709
4710 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4711
4712         PR c++/70675
4713         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4714         to dump_generic_node.
4715         (NIY): Pass also flags to do_niy.
4716
4717 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4718
4719         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4720         (simd_clone_vector_of_formal_parm_types)
4721         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4722         (simd_clone_mangle, simd_clone_create)
4723         (simd_clone_adjust_return_type, create_tmp_simd_array)
4724         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4725         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4726         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4727         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4728         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4729         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4730         * omp-simd-clone.c: ... this new file.
4731         (simd_clone_vector_of_formal_parm_types): Make it static.
4732         * Makefile.in (OBJS): Add omp-simd-clone.o.
4733
4734 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4735
4736         PR target/70662
4737         * config/i386/sse.md: Use proper memory operand modifiers.
4738
4739
4740 2016-04-15  Richard Biener  <rguenther@suse.de>
4741         Alan Modra  <amodra@gmail.com>
4742
4743         PR tree-optimization/70130
4744         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4745         when alignment stays not the same and no not use the realign
4746         scheme then.
4747
4748 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4749
4750         PR target/70669
4751         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4752         direct move handlers for KFmode. Change TFmode handlers test from
4753         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4754
4755 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4756
4757         PR c++/70594
4758         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4759         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4760         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4761         * tree-ssa-live.c (remove_unused_scope_block_p): When
4762         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4763         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4764         block_ultimate_origin is FUNCTION_DECL.
4765         (remove_unused_locals): If current_function_decl is
4766         polymorphic_ctor_dtor_p, pass initial true to
4767         remove_unused_scope_block_p' is_ctor_dtor_block.
4768
4769 2016-04-14  Martin Sebor  <msebor@redhat.com>
4770
4771         PR c++/69517
4772         PR c++/70019
4773         PR c++/70588
4774         * doc/extend.texi (Variable Length): Revert.
4775
4776 2016-04-14  Marek Polacek  <polacek@redhat.com>
4777             Jan Hubicka  <hubicka@ucw.cz>
4778
4779         PR c++/70029
4780         * tree.c (verify_type): Disable the canonical type of main variant
4781         check.
4782
4783 2016-04-14  Jason Merrill  <jason@redhat.com>
4784
4785         * cfgexpand.c, expr.c: Revert previous change.
4786
4787 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4788
4789         PR middle-end/70643
4790         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4791         when building a mem ref for the incoming reduction variable.
4792
4793 2016-04-14  Richard Biener  <rguenther@suse.de>
4794
4795         PR tree-optimization/70614
4796         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4797         loop if the evolution dropped to chrec_dont_know.
4798         (interpret_condition_phi): Likewise.
4799
4800 2016-04-14  Richard Biener  <rguenther@suse.de>
4801
4802         PR tree-optimization/70623
4803         * tree-ssa-pre.c (changed_blocks): Make global ...
4804         (compute_antic): ... local here.  Move and fix worklist
4805         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4806         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4807         worklist handling, dump when ANTIC_IN changed.
4808         (compute_partial_antic_aux): Remove worklist handling.
4809         (init_pre): Do not compute post dominators.  Add a comment about
4810         the CFG order chosen.
4811         (fini_pre): Do not free post dominators.
4812
4813 2016-04-13  Martin Sebor  <msebor@redhat.com>
4814
4815         PR c++/69517
4816         PR c++/70019
4817         PR c++/70588
4818         * doc/extend.texi (Variable Length): Document C++ specifics.
4819
4820 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4821
4822         PR c++/70641
4823         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4824         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4825         eh edges have been purged.
4826
4827         PR c++/70594
4828         * tree-sra.c (create_access_replacement,
4829         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4830         gets fancy name.
4831         * tree-pretty-print.c (dump_fancy_name): New function.
4832         (dump_decl_name, dump_generic_node): Use it.
4833
4834 2016-04-13  Jason Merrill  <jason@redhat.com>
4835
4836         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4837         * expr.c (expand_expr_real_1): Likewise.
4838
4839 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4840
4841         * config/i386/i386.md (kunpckhi): Swap operands.
4842         (kunpcksi): Likewise.
4843         (kunpckdi): Likewise.
4844         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4845         (vec_pack_trunc_<mode>): Likewise.
4846
4847 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4848
4849         PR debug/70628
4850         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4851
4852         PR middle-end/70633
4853         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4854         gimplification turns some element into non-constant.
4855
4856         PR debug/70628
4857         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4858         * explow.c (convert_memory_address_addr_space_1): No longer static,
4859         add NO_EMIT argument and don't call convert_modes if true, pass
4860         it down recursively, remove break after return.
4861         (convert_memory_address_addr_space): Adjust caller.
4862         * simplify-rtx.c (simplify_unary_operation_1): Call
4863         convert_memory_address_addr_space_1 instead of convert_memory_address,
4864         if it returns NULL, don't simplify.
4865
4866 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4867
4868         PR target/70630
4869         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4870
4871 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4872
4873         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4874         Bump the upper SIMDLEN limits, so that if the return type or
4875         characteristic type if the return type is void can be passed in
4876         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4877         allowed.
4878
4879 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4880
4881         PR target/70640
4882         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4883         Do not use "=" constraint on an input constraint.
4884         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4885         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4886         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4887         generates (neg (abs ...)) instead of (abs ...).
4888
4889 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4890
4891         PR rtl-optimization/70596
4892         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4893         just invalidate LRA data and reset them.  Adjust dump wording.
4894
4895 2016-04-12  Martin Liska  <mliska@suse.cz>
4896
4897         Revert
4898         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4899
4900         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4901         estimates here.
4902         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4903         max_loop_iterations_int.
4904         (tree_unswitch_outer_loop): Likewise.
4905         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4906         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4907
4908 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4909
4910         PR tree-optimization/68756
4911         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4912         instead of new_name.
4913
4914 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR tree-optimization/70602
4917         * tree-sra.c (generate_subtree_copies): Don't write anything into
4918         constant pool decls.
4919
4920         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4921         regardless whether there are depend clauses or not.
4922
4923 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4924
4925         PR target/70381
4926         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4927         target attribute and pragma from changing the -mfloat128
4928         and -mfloat128-hardware options.
4929
4930         * doc/extend.texi (Additional Floating Types): Document PowerPC
4931         __float128 restrictions.
4932
4933 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4934
4935         PR target/70133
4936         * config/aarch64/driver-aarch64.c
4937         (aarch64_get_extension_string_for_isa_flags): New.
4938         (arch_extension): Rename to...
4939         (aarch64_arch_extension): ...This.
4940         (ext_to_feat_string): Rename to...
4941         (aarch64_extensions): ...This.
4942         (aarch64_core_data): Keep track of architecture extension flags.
4943         (cpu_data): Rename to...
4944         (aarch64_cpu_data): ...This.
4945         (aarch64_arch_driver_info): Keep track of architecture extension
4946         flags.
4947         (get_arch_name_from_id): Rename to...
4948         (get_arch_from_id): ...This, change return type.
4949         (host_detect_local_cpu): Update and reformat for renames, handle
4950         extensions through common infrastructure.
4951
4952 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4953
4954         PR target/70133
4955         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4956         track of a canonical flag name.
4957         (all_extensions): Likewise.
4958         (arch_to_arch_name): Also track extension flags enabled by the arch.
4959         (all_architectures): Likewise.
4960         (aarch64_parse_extension): Move to here.
4961         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4962         rework.
4963         (aarch64_rewrite_selected_cpu): Update for above change.
4964         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4965         are handled, such that the single explicit value enabled by an
4966         extension is kept seperate from the implicit values it also enables.
4967         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4968         to here.
4969         (aarch64_parse_extension): New.
4970         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4971         here to config/aarch64/aarch64-protos.h.
4972         (aarch64_parse_extension): Move from here to
4973         common/config/aarch64/aarch64-common.c.
4974         (aarch64_option_print): Update.
4975         (aarch64_declare_function_name): Likewise.
4976         (aarch64_start_file): Likewise.
4977         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
4978         the canonical flag for extensions.
4979         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
4980         flags.
4981
4982 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4983
4984         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
4985         AARCH64_FL_CRC.
4986
4987 2016-04-09  Tom de Vries  <tom@codesourcery.com>
4988
4989         PR tree-optimization/68953
4990         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
4991         first to last subscript.
4992
4993 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
4994
4995         PR tree-optimization/70586
4996         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
4997         for any calls.
4998
4999 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
5000
5001         PR lto/70289
5002         PR ipa/70348
5003         PR tree-optimization/70373
5004         PR middle-end/70533
5005         PR middle-end/70534
5006         PR middle-end/70535
5007         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5008         clauses for acc parallel reductions as necessary.  Error on those
5009         that are private.
5010         * omp-low.c (scan_sharing_clauses): Don't install variables which
5011         are used in acc parallel reductions.
5012         (lower_rec_input_clauses): Remove dead code.
5013         (lower_oacc_reductions): Add support for reference reductions.
5014         (lower_reduction_clauses): Remove dead code.
5015         (lower_omp_target): Don't remap variables appearing in acc parallel
5016         reductions.
5017         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
5018
5019 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
5020
5021         PR middle-end/70593
5022         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
5023         with multiple SSA_NAME defs, force the outputs other than first
5024         to be live before calling live_track_process_def on each output.
5025
5026         PR rtl-optimization/70574
5027         * fwprop.c (forward_propagate_and_simplify): Don't add
5028         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
5029         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
5030         paradoxical subregs within *loc.
5031
5032 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
5033
5034         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
5035         -ftree-parallelize-loops={0,1}.
5036         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
5037         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
5038         * config/ia64/hpux.h (LIB_SPEC): Likewise.
5039         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5040         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
5041
5042 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
5043
5044         PR sanitizer/70541
5045         * asan.c (instrument_derefs): If we get unknown location, extract it
5046         with EXPR_LOCATION.
5047         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
5048
5049 2016-04-08  Tom de Vries  <tom@codesourcery.com>
5050
5051         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
5052         implicit firstprivate clause.
5053
5054 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5055
5056         PR target/70566
5057         * config/arm/thumb2.md (tst + branch-> lsls + branch
5058         peephole below *orsi_not_shiftsi_si): Require that condition
5059         register is dead after the peephole.
5060         (second peephole after the above): Likewise.
5061
5062 2016-04-08  Alan Modra  <amodra@gmail.com>
5063
5064         PR target/70117
5065         * builtins.c (fold_builtin_classify): For IBM extended precision,
5066         look at just the high-order double to test for NaN.
5067         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
5068         test just the high double for Inf but both doubles for subnormal
5069         limit.
5070
5071 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
5072
5073         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
5074         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
5075         node->simdclone->mask_mode != VOIDmode masks.
5076         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
5077         earlier, use it instead of node->simdclone.
5078         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5079         Set clonei->mask_mode.
5080
5081 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5082
5083         PR c/70436
5084         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
5085         Pass it through to cp_parser_already_scoped_statement.
5086         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
5087         it through to cp_parser_statement.
5088         (cp_parser_statement): Pass IF_P through to
5089         cp_parser_iteration_statement.
5090         (cp_parser_pragma): Adjust call to
5091         cp_parser_iteration_statement.
5092
5093 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5094
5095         PR c/70436
5096         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
5097         resolve a future -Wparentheses warning.
5098         * omp-low.c (scan_sharing_clauses): Likewise.
5099         * tree-parloops.c (eliminate_local_variables): Likewise.
5100
5101 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
5102
5103         PR rtl-optimization/70398
5104         * lra-constraints.c (process_address_1): Check zero scale and code
5105         for reloading with zero scale.
5106
5107 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
5108
5109         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
5110         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
5111
5112 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
5113
5114         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5115         Add support for AVX512F clones, include them by default for
5116         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
5117         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
5118         up to 128.
5119
5120         PR middle-end/70550
5121         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
5122         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
5123         firstprivate clauses.
5124         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
5125         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
5126         (lower_omp_target): Set TREE_NO_WARNING for
5127         non-addressable possibly uninitialized vars which are copied into
5128         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
5129
5130 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
5131
5132         * config/pa/predicates.md (integer_store_memory_operand): Accept
5133         REG+D operands with a large offset when reload_in_progress is true.
5134         (floating_point_store_memory_operand): Likewise.
5135
5136 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5137
5138         PR c++/70336
5139         * match.pd (nested int casts): Limit to GIMPLE.
5140
5141 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
5142
5143         PR ipa/66223
5144         * ipa-devirt.c (maybe_record_node): Fix comment; use
5145         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
5146
5147 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5148
5149         PR rtl-optimization/70542
5150         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
5151         if there are any uses other than insn or debug insns.
5152
5153 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
5154             Jakub Jelinek  <jakub@redhat.com>
5155
5156         PR tree-optimization/70509
5157         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
5158         Shift HOST_WIDE_INT_1U instead of 1.
5159
5160 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5161
5162         PR tree-optimization/70509
5163         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5164         of the vector base type for index.
5165
5166 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5167
5168         PR target/70510
5169         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5170
5171 2016-04-05  Richard Biener  <rguenther@suse.de>
5172
5173         PR tree-optimization/70526
5174         * tree-sra.c (build_ref_for_offset): Use prev_base to
5175         extract the alias pointer type.
5176
5177 2016-04-05  Richard Biener  <rguenther@suse.de>
5178
5179         * dse.c (struct store_info): Remove alias_set member.
5180         (struct read_info_type): Likewise.
5181         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5182         spill_deleted, clear_alias_set_lookup): Remove.
5183         (get_group_info): Remove dead base == NULL_RTX case.
5184         (dse_step0): Remove initialization of removed variables.
5185         (delete_dead_store_insn): Reomve alias set dumping.
5186         (free_read_records): Remove alias_set handling.
5187         (canon_address): Remove alias_set_out parameter.
5188         (record_store): Remove spill_alias_set, it's always zero.
5189         (check_mem_read_rtx): Likewise.
5190         (dse_step2): Rename from ...
5191         (dse_step2_nospill): ... this.  Adjust.
5192         (scan_stores): Rename from ...
5193         (scan_stores_nospill): ... this.
5194         (scan_reads): Rename from ...
5195         (scan_reads_nospill): ... this.
5196         (scan_stores_spill, scan_reads_spill): Remove.
5197         (dse_step3_scan): Remove for_spills argument which is always false.
5198         (dse_step3): Likewise.
5199         (dse_step5): Rename from ...
5200         (dse_step5_nospill): ... this.  Remove alias_set handling.
5201         (rest_of_handle_dse): Adjust.
5202
5203 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5204
5205         PR target/70525
5206         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5207         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5208         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5209         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5210
5211 2016-04-05  Richard Biener  <rguenther@suse.de>
5212
5213         PR middle-end/70499
5214         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5215         non-register type temporaries into SSA.
5216
5217 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5218
5219         PR ipa/66223
5220         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5221         calls when sanitizing.
5222         (possible_polymorphic_call_target_p): Fix formatting.
5223
5224 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5225             Jakub Jelinek <jakub@redhat.com>
5226
5227         PR middle-end/70457
5228         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5229         to ensure a call statement is compatible with a built-in's
5230         prototype.
5231         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5232         Likewise.
5233
5234 2016-04-04  Richard Biener  <rguenther@suse.de>
5235
5236         PR rtl-optimization/70484
5237         * rtl.h (canon_output_dependence): Declare.
5238         * alias.c (canon_output_dependence): New function.
5239         * dse.c (record_store): Use canon_output_dependence rather
5240         than canon_true_dependence.
5241
5242 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5243
5244         PR ipa/68881
5245         * cgraph.h (symtab_node::copy_visibility_from): New function.
5246         * symtab.c (symtab_node::copy_visibility_from): New function.
5247         * ipa-visibility.c (optimize_weakref): New function.
5248         (function_and_variable_visibility): Use it.
5249
5250 2016-04-04  Martin Liska  <mliska@suse.cz>
5251
5252         PR hsa/70402
5253         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5254         value that is really in range handled by SBR instruction.
5255         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5256         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5257         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5258
5259 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5260
5261         PR target/70416
5262         PR target/67391
5263         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5264         set, but not for SP_REG operands.
5265
5266 2016-04-02  Martin Sebor  <msebor@redhat.com>
5267
5268         PR c++/67376
5269         * fold-const.c (maybe_nonzero_address): New function.
5270         (fold_comparison): Call it.  Fold equality and relational
5271         expressions involving null pointers.
5272         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5273
5274 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5275
5276         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5277         the "Y" constraint (scalar FP 0.0 immediate).
5278
5279         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5280         Add the "const_double" to the list of operand constraints.
5281
5282 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5283
5284         PR rtl-optimization/70467
5285         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5286         If low word of the last operand is 0, just emit addition/subtraction
5287         for the high word.
5288
5289 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5290
5291         PR target/70404
5292         * config/s390/s390.c (s390_expand_insv): Check for everything
5293         constant instead of just VOIDmode stuff.
5294
5295 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5296
5297         PR target/70496
5298         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5299
5300 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5301
5302         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5303
5304 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5305
5306         PR rtl-optimization/70461
5307         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5308         is necessary.
5309
5310 2016-03-31  Martin Liska  <mliska@suse.cz>
5311
5312         PR hsa/70399
5313         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5314         a tree value or an immediate integer value to a buffer
5315         that is eventually copied to a BRIG section.
5316         (emit_immediate_operand): Call the function here.
5317         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5318         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5319         of class' fields that are removed.
5320         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5321         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5322         m_brig_repr_size fields.
5323
5324 2016-03-31  Martin Liska  <mliska@suse.cz>
5325
5326         PR hsa/70391
5327         * hsa-gen.c (hsa_function_representation::update_dominance): New
5328         function.
5329         (convert_addr_to_flat_segment): Likewise.
5330         (gen_hsa_memory_set): New alignment argument.
5331         (gen_hsa_ctor_assignment): Likewise.
5332         (gen_hsa_insns_for_single_assignment): Provide alignment
5333         to gen_hsa_ctor_assignment.
5334         (gen_hsa_insns_for_direct_call): Add new argument.
5335         (expand_lhs_of_string_op): New function.
5336         (expand_string_operation_builtin): Likewise.
5337         (expand_memory_copy): New function.
5338         (expand_memory_set): New function.
5339         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5340         (convert_switch_statements): Change signature.
5341         (generate_hsa): Use a return value of the function.
5342         (pass_gen_hsail::execute): Do not call
5343         convert_switch_statements here.
5344         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5345         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5346         (hsa_function_representation::update_dominance): New function.
5347
5348 2016-03-31  Martin Liska  <mliska@suse.cz>
5349
5350         PR hsa/70391
5351         * hsa-brig.c (emit_directive_variable): Emit alignment
5352         according to hsa_symbol::m_align.
5353         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5354         (dump_hsa_symbol): Dump alignment of HSA symbols.
5355         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5356         (gen_hsa_addr_with_align): New function.
5357         (hsa_bitmemref_alignment): Use newly added function.
5358         (gen_hsa_insns_for_load): Likewise.
5359         (gen_hsa_insns_for_store): Likewise.
5360         (gen_hsa_memory_copy): New argument added.
5361         (gen_hsa_insns_for_single_assignment): Respect
5362         alignment for assignments processed via gen_hsa_memory_copy.
5363         (gen_hsa_insns_for_direct_call): Likewise.
5364         (gen_hsa_insns_for_return): Likewise.
5365         (gen_function_def_parameters): Set default alignment.
5366         * hsa.c (hsa_object_alignment): New function.
5367         (hsa_byte_alignment): Pasted function.
5368         * hsa.h (hsa_symbol::m_align): New field.
5369
5370 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5371
5372         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5373         scratch field for goto case.
5374
5375 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5376
5377         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5378
5379 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5380
5381         PR target/70442
5382         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5383         (scalar_chain::convert_insn): Call convert_op for reg
5384         moves to handle undefined registers.
5385
5386 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5387
5388         PR c++/70393
5389         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5390         Assert we don't want to move backwards.
5391
5392 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5393
5394         PR target/70453
5395         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5396
5397 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5398
5399         PR rtl-optimization/70460
5400         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5401         with operand from REG_LABEL_OPERAND, instead substitute
5402         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5403         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5404
5405 2016-03-31  Martin Liska  <mliska@suse.cz>
5406
5407         * passes.c (execute_one_pass): Do not call
5408         todo_after for a discarded function.
5409
5410 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5411
5412         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5413         (no_cost, infinite_cost): Initialize the new field.
5414         (get_computation_cost_at): Record setup cost.
5415         (determine_use_iv_cost_address): Skip cost computation for sub
5416         uses if we can estimate it without losing accuracy.
5417
5418 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5419
5420         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5421         estimates here.
5422         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5423         max_loop_iterations_int.
5424         (tree_unswitch_outer_loop): Likewise.
5425         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5426         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5427
5428 2016-03-30  Richard Biener  <rguenther@suse.de>
5429
5430         PR middle-end/70450
5431         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5432
5433 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5434
5435         PR target/70421
5436         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5437         in gen_blendm expander.
5438
5439 2016-03-30  Nick Clifton  <nickc@redhat.com>
5440
5441         PR target/62254
5442         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5443         case where we are already provided with an SImode SUBREG.
5444
5445 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5446
5447         PR target/70439
5448         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5449         conflict between DRAP register and __builtin_eh_return.
5450
5451 2016-03-30  Michael Matz  <matz@suse.de>
5452             Richard Biener  <rguenther@suse.de>
5453
5454         PR ipa/12392
5455         * ipa-polymorphic-call.c (struct type_change_info): Change
5456         speculative to an unsigned allowing to limit the work we do.
5457         (csftc_abort_walking_p): New inline function..
5458         (check_stmt_for_type_change): Limit the number of may-defs
5459         skipped for speculative devirtualization to
5460         max-speculative-devirt-maydefs.
5461         * params.def (max-speculative-devirt-maydefs): New param.
5462         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5463
5464 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5465
5466         PR target/63890
5467         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5468         and TARGET_MACHO.
5469
5470 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5471
5472         PR tree-optimization/59124
5473         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5474         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5475
5476 2016-03-29  Jeff Law  <law@redhat.com>
5477
5478         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5479
5480 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5481
5482         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5483         to HOST_WIDE_INT.
5484
5485 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5486
5487         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5488         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5489         gcrt0.o if linking dynamically.
5490
5491 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5492
5493         PR ipa/70283
5494         * ipa-devirt.c (methods_equal_p): New function.
5495         (compare_virtual_tables): Use it.
5496         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5497         * cgraphclones.c (clone_function_name_1): Use
5498         symbol_table::symbol_suffix_separator.
5499         * coverage.c (build_var): Likewise.
5500         * symtab.c (symbol_table::symbol_suffix_separator): New.
5501
5502 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5503
5504         PR rtl-optimization/70429
5505         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5506         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5507         mode != result_mode.
5508
5509         PR c++/70353
5510         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5511
5512         PR tree-optimization/70405
5513         * ssa-iterators.h (num_imm_uses): Add missing braces.
5514
5515 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5516
5517         PR rtl-optimization/68695
5518         * ira-color.c (allocno_copy_cost_saving): New.
5519         (improve_allocation): Use it.
5520
5521 2016-03-29  Richard Henderson  <rth@redhat.com>
5522
5523         PR middle-end/70355
5524         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5525
5526 2016-03-29  Richard Biener  <rguenther@suse.de>
5527
5528         PR middle-end/70424
5529         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5530         use alignment returned by get_pointer_alignment_1 if it is
5531         bigger than BITS_PER_UNIT.
5532         * builtins.c (get_pointer_alignment_1): Do not return true
5533         for alignment extracted from SSA info.
5534
5535 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5536
5537         * config/ft32/ft32.opt (mnodiv): New.
5538         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5539         * doc/invoke.texi (FT32 Options -mnodiv): New.
5540
5541 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5542
5543         PR target/70406
5544         * config/i386/i386.md (define_split, andn): Fix modes.
5545
5546 2016-03-26  Richard Biener  <rguenther@suse.de>
5547             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5548
5549         PR ipa/70366
5550         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5551         instead of
5552         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5553         as 2nd argument to cl_optimization_restore().
5554
5555 2016-03-25  Richard Henderson  <rth@redhat.com>
5556
5557         PR target/70120
5558         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5559         * config/aarch64/aarch64-protos.h: Declare it.
5560         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5561
5562 2016-03-25  Alan Modra  <amodra@gmail.com>
5563
5564         PR target/70052
5565         * config/rs6000/constraints.md (j): Simplify.
5566         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5567         decimal float 0.D.
5568         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5569         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5570          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5571         in all constraint alternatives.
5572         (movtd_64bit_nodm): Delete "j" constraint alternative.
5573
5574 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5575
5576         * tree-ssa-propagate.c: Enhance docs for
5577         SSA_PROP_NOT_INTERESTING.
5578
5579 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5580
5581         * doc/extend.texi: Fix typo in documentation to pure attribute.
5582
5583 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5584
5585         PR target/70319
5586         * config/pa/pa.md (bswapdi2): Use a scratch register.
5587
5588 2016-03-24  Richard Henderson  <rth@redhat.com>
5589
5590         PR middle-end/69845
5591         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5592         overflow.
5593
5594 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5595
5596         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5597         using ix86_expand_binary_operator instead of gen_andsi3.
5598
5599 2016-03-24  Richard Biener  <rguenther@suse.de>
5600
5601         PR tree-optimization/70396
5602         * tree-vect-stmts.c (vectorizable_comparison): Use
5603         get_vectype_for_scalar_type.
5604
5605 2016-03-24  Richard Biener  <rguenther@suse.de>
5606
5607         PR middle-end/70370
5608         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5609         with register bases.
5610
5611 2016-03-24  Richard Biener  <rguenther@suse.de>
5612
5613         PR tree-optimization/70372
5614         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5615         build_all_ones_cst to also handle vector types correctly.
5616
5617 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5618
5619         PR target/70381
5620         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5621         -mfloat128 here.
5622
5623 2016-03-23  Marek Polacek  <polacek@redhat.com>
5624
5625         PR c++/69884
5626         * doc/invoke.texi: Document -Wignored-attributes.
5627
5628 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5629
5630         PR tree-optimization/69042
5631         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5632         parameter from 30 to 40.
5633
5634 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5635
5636         PR tree-optimization/69042
5637         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5638         for use with constant offset stripped in base.
5639
5640 2016-03-23  Richard Biener  <rguenther@suse.de>
5641
5642         PR middle-end/70251
5643         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5644         mode compatibility check.
5645         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5646
5647 2016-03-23  Jeff Law  <law@redhat.com>
5648
5649         PR tree-optimization/64058
5650         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5651         CONFLICT_COUNT.
5652         (struct ssa_conflicts): Move up earlier in the file.
5653         (conflicts_, var_map_): New static variables.
5654         (initialize_conflict_count): New function to initialize the
5655         CONFLICT_COUNT field for each conflict pair.
5656         (compare_pairs): Lazily initialize the conflict count and use it
5657         as the first tie-breaker.
5658         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5659         and wipe conflicts_ and map_ around the call to qsort.  Remove
5660         special case for 2 coalesce pairs.
5661         * bitmap.c (bitmap_count_unique_bits): New function.
5662         (bitmap_count_bits_in_word): New function, extracted from
5663         bitmap_count_bits.
5664         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5665         * bitmap.h (bitmap_count_unique_bits): Declare it.
5666
5667 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5668
5669         PR target/69917
5670         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5671         transparent alias chain for decl assembler name.
5672         * config/sol2.c (solaris_assemble_visibility): Likewise.
5673
5674 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5675
5676         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5677         duration.
5678         (v10_fdivs): Likewise.
5679         (v10_fdivd): Likewise.
5680
5681 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5682
5683         PR driver/70132
5684         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5685         to not call fclose twice on file.
5686
5687 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5688
5689         PR tree-optimization/70354
5690         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5691         oprnd0 is wider than oprnd1 and there is a cast from the wider
5692         type to oprnd1, mask it with the mask of the narrower type.
5693
5694         PR target/70321
5695         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5696         Optimize TARGET_STV splitters, if high or low word of last argument
5697         is 0 or -1.
5698
5699 2016-03-22  Jeff Law  <law@redhat.com>
5700
5701         PR target/70232
5702         tree-ssa-threadbackward.c
5703         (fsm_find_control_statement_thread_paths): Correctly distinguish
5704         between old style jump threads vs FSM jump threads.
5705
5706 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5707
5708         PR target/70302
5709         * config/i386/i386.c (scalar_chain::convert_op): Support
5710         uninitialized register usage case.
5711
5712 2016-03-22  Richard Biener  <rguenther@suse.de>
5713
5714         PR middle-end/70251
5715         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5716         int...
5717         (capture::gen_transform): ... to change behavior when substituting
5718         a condition into cond or not-cond expr context.
5719         (dt_simplify::gen_1): Adjust.
5720         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5721         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5722         last change and instead change to
5723         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5724         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5725
5726 2016-03-22  Anthony Green  <green@moxielogic.com>
5727
5728         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5729         issue for moxiebox targets.
5730         (CC1PLUS_SPEC): Ditto.
5731
5732 2016-03-22  Richard Biener  <rguenther@suse.de>
5733
5734         PR middle-end/70333
5735         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5736         in the wide type.
5737
5738 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5739
5740         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5741
5742 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5743
5744         PR target/70325
5745         * config/i386/i386.c (def_builtin): Handle
5746         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5747         bits.
5748         (const struct builtin_description bdesc_special_args[]):
5749         Remove duplicate ISA bits.
5750
5751 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5752
5753         PR target/70329
5754         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5755         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5756         in a way that works also for AVX512BW.
5757
5758         PR target/70300
5759         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5760         instead of source if operands[1] is xmm16 and above and
5761         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5762         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5763
5764         PR c++/70295
5765         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5766         on assign if (*from_p) is a comparison, set it to
5767         TREE_NO_WARNING (*from_p).
5768
5769 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5770
5771         PR middle-end/70326
5772         * lra.c (restore_scratches): Ignore deleted insns.
5773
5774 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5775             Jakub Jelinek  <jakub@redhat.com>
5776
5777         PR tree-optimization/70317
5778         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5779         to HONOR_NANS.
5780
5781 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5782
5783         PR target/70327
5784         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5785         of ix86_expand_move.
5786         (movoi): Ditto.
5787         (movti): Use general_operand for operand 1 predicate.
5788
5789 2016-03-21  Martin Liska  <mliska@suse.cz>
5790
5791         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5792         insns.
5793         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5794
5795 2016-03-21  Martin Liska  <mliska@suse.cz>
5796
5797         PR ipa/70306
5798         * ipa-icf.c (sem_function::parse): Skip static
5799         constructors and destructors.
5800
5801 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5802
5803         PR target/70296
5804         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5805         function-like macro, peek following token(s) if it is followed
5806         by CPP_OPEN_PAREN token with optional padding in between, and
5807         if not, don't treat it like a macro.
5808
5809 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5810             Alexander Monakov  <amonakov@ispras.ru>
5811
5812         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5813         for the stabs debug format.
5814
5815 2016-03-21  Richard Biener  <rguenther@suse.de>
5816
5817         PR tree-optimization/70310
5818         * tree-vect-generic.c (expand_vector_condition): Fold the built
5819         condition.
5820
5821 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5822
5823         PR target/70293
5824         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5825         Block third alternative for AVX-512VL target,
5826
5827 2016-03-21  Martin Liska  <mliska@suse.cz>
5828
5829         PR hsa/70234
5830         * hsa-brig.c (emit_function_directives): Mark unemitted
5831         global variables for emission.
5832         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5833         (get_symbol_for_decl): Likewise.
5834         * hsa.h (struct hsa_symbol): New flag.
5835
5836 2016-03-21  Richard Biener  <rguenther@suse.de>
5837
5838         PR tree-optimization/70288
5839         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5840         we do not estimate unsimplified all-constant conditionals or
5841         switches as optimized away.
5842
5843 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5844
5845         PR rtl-optimization/69102
5846         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5847         when we have a readonly dependency context.
5848
5849 2016-03-18  Jeff Law  <law@redhat.com>
5850
5851         PR rtl-optimization/70263
5852         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5853         (update_equiv_regs): When trying to move a store to after the insn
5854         that sets the source of the store, make sure the store occurs after
5855         the insn that sets the source of the store.  When successful note
5856         the REG_EQUIV note created in the dump file.
5857
5858 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5859             Bernd Schmidt  <bschmidt@redhat.com>
5860
5861         * doc/extend.texi: Document more potential problems with basic asms.
5862
5863 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5864
5865         PR rtl-optimization/70278
5866         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5867         VOIDmode.
5868
5869 2016-03-18  Jason Merrill  <jason@redhat.com>
5870
5871         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5872
5873 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5874
5875         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5876         values to 128b regs.
5877
5878 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5879
5880         PR tree-optimization/70252
5881         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5882         boolean vector has a proper number of elements.
5883         (supportable_narrowing_operation): Likewise.
5884
5885 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5886
5887         PR ipa/70269
5888         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5889
5890 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5891
5892         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5893         instead of replace_rtx for DEBUG_INSNs.
5894
5895 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5896
5897         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5898         load type reservations.
5899
5900 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5901
5902         PR target/70188
5903         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5904         define_constraint for "Q" and "T" constraints.
5905
5906 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5907
5908         Tweak the pipeline model for Exynos M1
5909
5910         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5911         model.
5912
5913 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5914
5915         PR c/70264
5916         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5917         where one or both locations aren't within a line_map.
5918
5919 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5920
5921         PR driver/70192
5922         * opts.c (finish_options): Don't set flag_pie to the default if
5923         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5924         if it is -1.
5925
5926 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5927
5928         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5929         true as ALL_REGS argument to replace_rtx.
5930
5931 2016-03-17  Richard Biener  <rguenther@suse.de>
5932
5933         PR debug/70271
5934         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5935         last.
5936
5937 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5938
5939         PR target/70245
5940         * rtl.h (replace_rtx): Add ALL_REGS argument.
5941         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5942         equality and assert mode is the same, instead of just rtx pointer
5943         equality.
5944         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5945         true as ALL_REGS argument to replace_rtx.
5946
5947 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5948
5949         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5950         for boolean vector with vector mode only.
5951         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5952
5953 2016-03-17  Nick Clifton  <nickc@redhat.com>
5954
5955         PR target/70162
5956         * config/rx/rx.c (rx_print_integer): Print negative constants in
5957         decimal.
5958
5959 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5960
5961         PR target/70261
5962         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5963
5964 2016-03-16  Richard Henderson  <rth@redhat.com>
5965             Richard Biener  <rguenth@suse.de>
5966
5967         PR middle-end/70240
5968         PR middle-end/68215
5969         PR tree-opt/68714
5970         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5971         first operand as is_gimple_condexpr.
5972
5973         PR middle-end/70240
5974         PR middle-end/68215
5975         Revert r231575
5976         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
5977         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
5978         Do not gimplify the result.
5979         (do_unop): Adjust call to tree_vec_extract.
5980         (do_binop): Likewise.
5981         (do_compare): Likewise.
5982         (do_plus_minus): Likewise.
5983         (do_negate): Likewise.
5984         (expand_vector_condition): Likewise.
5985         (do_cond): Likewise.
5986
5987 2016-03-16  Richard Henderson  <rth@redhat.com>
5988
5989         PR target/70048
5990         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
5991         (aarch64_classify_address): Use it.
5992         (aarch64_legitimize_address): Force all subexpressions of PLUS
5993         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
5994
5995 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
5996             Richard Biener  <rguenth@suse.de>
5997
5998         PR target/70245
5999         * rtlanal.c (replace_rtx): For REG, if from is a REG,
6000         return to even if only REGNO is equal, and assert
6001         mode is the same.
6002
6003 2016-03-11  Jeff Law  <law@redhat.com>
6004
6005         PR rtl-optimization/70224
6006         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6007
6008 2016-03-16  Richard Henderson  <rth@redhat.com>
6009
6010         PR middle-end/70199
6011         * function.h (struct function): Add has_forced_label_in_static.
6012         * gimplify.c (force_labels_r): Set it.
6013         * lto-streamer-in.c (input_struct_function_base): Read it.
6014         * lto-streamer-out.c (output_struct_function_base): Write it.
6015         * tree-inline.c (has_label_address_in_static_1): Remove.
6016         (copy_forbidden): Remove fndecl parameter; test
6017         has_forced_label_in_static.
6018         (inline_forbidden_p): Update call to copy_forbidden.
6019         (tree_versionable_function_p): Likewise.
6020         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
6021         (chkp_versioning): Likewise.
6022         * tree-inline.h (copy_forbidden): Update decl.
6023
6024 2016-03-16  Marek Polacek  <polacek@redhat.com>
6025
6026         PR c/70093
6027         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
6028         function being thunked if the result type doesn't have fixed size.
6029         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
6030         doesn't have fixed size.
6031
6032 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
6033
6034         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
6035         reporting malformed loop nest.
6036
6037 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6038
6039         PR lto/70187
6040         * ipa-devirt.c (possible_polymorphic_call_targets): Move
6041         nodes.length () == 1 test to before first nodes[0] access.
6042
6043 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6044
6045         PR tree-optimization/68715
6046         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
6047         single_pred_p test.
6048
6049 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6050
6051         PR tree-optimization/68809
6052         * graphite-scop-detection.c (same_close_phi_node): Test if result types
6053         are the same.
6054
6055 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
6056             Sandra Loosemore  <sandra@codesourcery.com>
6057
6058         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
6059         on leaf attribute. Mention ELF interposition problems.
6060
6061 2016-03-16  Alan Modra  <amodra@gmail.com>
6062
6063         PR rtl-optimization/69195
6064         PR rtl-optimization/47992
6065         * ira.c (indirect_jump_optimize): Ignore artificial defs.
6066         Add comments.
6067
6068 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6069
6070         PR bootstrap/69513
6071         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
6072
6073 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6074
6075         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
6076
6077 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
6078
6079         PR rtl-optimization/70222
6080         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
6081         optimization if mode is different from result_mode, queue up masking
6082         of the result in outer_op.  Formatting fix.
6083
6084         PR middle-end/70239
6085         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
6086         of safe_grow.
6087
6088 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6089
6090         PR rtl-optimization/69032
6091         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
6092         looping backwards over basic block insns.
6093
6094 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6095
6096         PR target/66660
6097         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
6098         to non-speculative when propagating trap bits.
6099
6100 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6101
6102         PR rtl-optimization/63384
6103         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
6104         DEBUG_INSN_P insns.
6105
6106 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6107
6108         PR target/64411
6109         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
6110         factored out from ...
6111         (sched_analyze_insn): ... here.
6112         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
6113         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
6114         get_implicit_reg_pending_clobbers in it.
6115         (setup_id_reg_sets): Use setup_id_implicit_regs.
6116         (deps_init_id): Ditto.
6117
6118 2016-03-15  Tom de Vries  <tom@codesourcery.com>
6119
6120         PR ipa/70161
6121         * cgraph.c (cgraph_node::get_body): Save, reset and restore
6122         dump_file_name.
6123         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
6124         execute_function_dump.
6125         (execute_one_pass): Don't dump function if it will be dumped after ipa
6126         transform.
6127
6128 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
6129
6130         * genrecog.c (match_pattern_2): If pred is NULL don't call
6131         safe_predicate_mode on it.
6132
6133 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
6134
6135         PR middle-end/70219
6136         * lra-constraints.c (delete_move_and_clobber): Change assertion
6137         to also allow dregno == 0.
6138
6139 2016-03-14  Richard Henderson  <rth@redhat.com>
6140
6141         PR tree-opt/68714
6142         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
6143         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
6144         (reassociate_bb): Use optimize_vec_cond_expr; avoid
6145         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
6146         on vectors.
6147
6148 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6149
6150         PR target/70083
6151         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
6152         regs.
6153         (lra_create_live_ranges_1): initialize hard register biggest_mode to
6154         VOIDmode.
6155         * lra-constraints.c (split_reg): For hard regs, try to find the
6156         biggest single-register mode used in the function.
6157
6158 2016-03-14  Richard Biener  <rguenther@suse.de>
6159
6160         PR tree-optimization/56365
6161         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6162         constants to compare against.
6163
6164 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6165
6166         PR target/70098
6167         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6168         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6169         (define_split for the GPR case): Use int_reg_operand instead of
6170         gpc_reg_operand for the output.
6171
6172 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6173
6174         PR tree-optimization/70045
6175         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6176         create_empty_if_region_on_edge argument.
6177
6178 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6179
6180         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6181         (STACK_CHECK_PROTECT): Likewise.
6182         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6183         (STACK_CHECK_PROTECT): Likewise.
6184         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6185         (STACK_CHECK_PROTECT): Likewise.
6186         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6187         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6188         (STACK_CHECK_PROTECT): Likewise.
6189
6190 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6191
6192         PR rtl-optimization/69307
6193         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6194         registers in modes that span more than one register.
6195
6196 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6197
6198         PR target/69614
6199         * lra-constraints.c (delete_move_and_clobber): New.
6200         (remove_inheritance_pseudos): Use it.
6201
6202 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6203
6204         PR ada/70017
6205         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6206         the libcall is LCT_THROW.
6207         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6208         for the checking routine.
6209
6210 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6211
6212         PR target/70131
6213         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6214         optimization if we have direct move.
6215         (roundu32<mode>2_fprs): Likewise.
6216
6217 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6218
6219         PR target/70123
6220         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6221         be rematerialized.
6222         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6223         Arguments swapped.  All callers changed.  Take reg_renumber into
6224         account, and Calculate and compare register ranges for hard regs.
6225
6226 2016-03-11  Jeff Law  <law@redhat.com>
6227
6228         PR tree-optimization/70190
6229         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6230         Handle cases where we can not extract the taken edge, even though we
6231         found a constant value.
6232
6233         PR tree-optimization/64058
6234         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6235         (num_coalesce_pairs): Move up earlier in file.
6236         (find_coalesce_pair): Initialize the INDEX field for each pair
6237         discovered.
6238         (compare_pairs): No longer sort on the elements in each pair.
6239         Instead break ties with the index of the coalesce pair.
6240
6241 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6242
6243         PR target/70002
6244         * config/aarch64/aarch64-protos.h
6245         (aarch64_save_restore_target_globals): New prototype.
6246         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6247         Call the above when popping pragma.
6248         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6249         New function.
6250         (aarch64_set_current_function): Rewrite using the above.
6251
6252 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6253
6254         PR tree-optimization/70177
6255         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6256         (extract_ops_from_tree): ... this.  In the 2 argument
6257         overload remove _1 suffix.
6258         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6259         (extract_ops_from_tree): ... this.
6260         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6261         Adjust callers.
6262         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6263         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6264         extract_ops_from_tree instead of 2 operand one.
6265
6266 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6267
6268         PR tree-optimization/70013
6269         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6270         for constant-pool entries.
6271
6272 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6273
6274         PR rtl-optimization/70174
6275         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6276         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6277
6278         PR tree-optimization/70169
6279         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6280         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6281         for unknown codes.
6282
6283 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6284             Jakub Jelinek  <jakub@redhat.com>
6285
6286         PR target/70160
6287         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6288         of uninitialized values.
6289
6290 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6291
6292         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6293         define_expand.
6294         ("*trunctddd2"): New pattern definition.
6295         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6296         TD->DD truncation.
6297
6298 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6299
6300         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6301         definitions for BFP and DFP rounding modes.
6302         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6303         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6304         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6305         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6306         numbers.
6307
6308 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6309
6310         * config/s390/constraints.md: Adjust comment.
6311         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6312         s390_decompose_addrstyle_without_index.
6313         * config/s390/predicates.md (shift_count_or_setmem_operand):
6314         Rename to setmem_operand.
6315         * config/s390/s390-protos.h
6316         (s390_decompose_shift_count): Rename to
6317         s390_decompose_addrstyle_without_index.
6318         * config/s390/s390.c (s390_decompose_shift_count)
6319         (s390_mem_constraint, print_shift_count_operand)
6320         (print_operand_address, print_operand): Rename
6321         s390_decompose_shift_count to
6322         s390_decompose_addrstyle_without_index and rename
6323         print_shift_count_operand to print_addrstyle_operand troughout the
6324         file.
6325         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6326         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6327         Rename shift_count_or_setmem_operand to setmem_operand.
6328         * config/s390/vx-builtins.md ("vec_insert<mode>")
6329         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6330         nonmemory_operand.
6331
6332 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6333
6334         PR target/70168
6335         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6336         Handle overlapping retval and newval.
6337
6338 2016-03-10  Nick Clifton  <nickc@redhat.com>
6339
6340         PR target/7044
6341         * config/aarch64/aarch64.c
6342         (aarch64_override_options_after_change_1): When forcing
6343         flag_omit_frame_pointer to be true, use a special value that can
6344         be detected if this function is called again, thus preventing
6345         flag_omit_leaf_frame_pointer from being forced to be false.
6346
6347 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6348
6349         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6350         Set x_flag_omit_leaf_frame_pointer when handling
6351         -momit-leaf-frame-pointer.
6352
6353 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6354
6355         PR lto/69589
6356         * cgraph.c (cgraph_node::dump): Dump split_part and
6357         indirect_call_target.
6358         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6359         * ipa.c (has_addr_references_p): Cleanup.
6360         (is_indirect_call_target_p): New.
6361         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6362         called indirectly as local.
6363         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6364
6365 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6366
6367         PR ipa/69630
6368         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6369         on cxa_pure_virtual.
6370
6371 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6372
6373         PR lto/69589
6374         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6375
6376 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6377
6378         PR lto/69589
6379         * tree.c (need_assembler_name_p): Only record main variant type names.
6380
6381 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6382
6383         PR target/70113.
6384         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6385         Always define to 0 or 1.
6386         (TARGET_FIX_ERR_A53_843419): New macro.
6387         * config/aarch64/aarch64-elf-raw.h
6388         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6389         * config/aarch64/aarch64-linux.h: Likewise.
6390         * config/aarch64/aarch64.c
6391         (aarch64_override_options_after_change_1): Do not default
6392         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6393         843419 is on.
6394         (aarch64_attributes): Handle fix-cortex-a53-843419.
6395         (aarch64_can_inline_p): Likewise.
6396         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6397
6398 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6399         Jakub Jelinek <jakub@redhat.com>
6400
6401         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6402         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6403         DECL_COMMONS if flag_unconstrained_commons is set.
6404         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6405         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6406         (funconstrained-commons): Document.
6407
6408 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6409
6410         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6411         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6412
6413 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6414
6415         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6416         has a proper number of elements.
6417
6418 2016-03-10  Alan Modra  <amodra@gmail.com>
6419
6420         PR rtl-optimization/69195
6421         PR rtl-optimization/47992
6422         * ira.c (recorded_label_ref): Delete.
6423         (update_equiv_regs): Return void.
6424         (indirect_jump_optimize): New function.
6425         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6426         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6427         Delete update_regstat.
6428
6429 2016-03-10  Richard Biener  <rguenther@suse.de>
6430
6431         PR tree-optimization/70128
6432         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6433         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6434
6435 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6436
6437         PR tree-optimization/70152
6438         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6439         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6440
6441         PR target/70086
6442         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6443         instead of gen_sse2_loadlpd.
6444         * config/i386/sse.md (*vec_concatv2df): Rename to...
6445         (vec_concatv2df): ... this.
6446
6447         PR tree-optimization/70127
6448         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6449
6450 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6451
6452         PR c/68473
6453         PR c++/70105
6454         * diagnostic-show-locus.c (compatible_locations_p): New function.
6455         (layout::layout): Sanitize ranges using compatible_locations_p.
6456
6457 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6458
6459         PR c/68473
6460         PR c++/70105
6461         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6462         location_range param with three const expanded_locations * and a
6463         bool.
6464         (layout::layout): Replace call to
6465         rich_location::lazily_expand_location with get_expanded_location.
6466         Extract the range and perform location expansion here, passing
6467         the results to the layout_range ctor.
6468         * diagnostic.c (source_range::debug): Delete.
6469         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6470         of rich_location::get_expanded_location.
6471         * gcc-rich-location.c (get_range_for_expr): Delete.
6472         (gcc_rich_location::add_expr): Reimplement to avoid the
6473         rich_location::add_range overload that took a location_range,
6474         passing a location_t instead.
6475
6476 2016-03-09  Richard Biener  <rguenther@suse.de>
6477         Jakub Jelinek  <jakub@redhat.com>
6478
6479         PR tree-optimization/70138
6480         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6481         Also skip vect_double_reduction_def.
6482
6483 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6484
6485         PR target/70049
6486         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6487         if the operand is "m".
6488
6489 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6490
6491         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6492
6493 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6494
6495         * config/i386/i386.c (processor_target_table): Fix cost table
6496         intialization order for znver1.
6497
6498 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6499
6500         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6501         - becuase -> because.
6502         * ipa-reference.c (ignore_module_statics): Likewise.
6503         * cgraph.c (cgraph_node::get_body): Likewise.
6504         * ipa-inline.c (early_inliner): Likewise.
6505         * ipa-devirt.c (types_same_for_odr): Likewise.
6506         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6507         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6508
6509 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6510
6511         * tree-ssa-math-opts.c: Fix typo in comment.
6512
6513 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6514
6515         PR target/70110
6516         * config/i386/i386.c (scalar_chain::make_vector_copies,
6517         scalar_chain::convert_reg): Call end_sequence in between
6518         get_insns and emit_conversion_insns rather than after both
6519         calls.
6520
6521 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6522
6523         PR target/70064
6524         * config/i386/i386.h (machine_function): Add
6525         pc_thunk_call_expanded flag.
6526         (ix86_pc_thunk_call_expanded): New define.
6527         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6528         (*set_got): Rename insn pattern from set_got.
6529         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6530         * config/i386/i386.c (ix86_compute_frame_layout): Use
6531         ix86_pc_thunk_call_expanded to prevent red-zone.
6532
6533 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6534
6535         * hsa.h (hsa_get_ctor_statements): Declare.
6536         (hsa_get_dtor_statements): Likewise.
6537         (hsa_get_kernel_dispatch_type): Likewise.
6538         * hsa.c (hsa_get_ctor_statements): New function.
6539         (hsa_get_dtor_statements): Likewise.
6540         (hsa_get_kernel_dispatch_type): Likewise.
6541         * hsa-brig.c (hsa_cdtor_statements): Removed.
6542         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6543         hsa_get_dtor_statements.
6544         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6545         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6546
6547 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6548
6549         * config/arm/arm-cores.def (cortex-r8): New.
6550         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6551         * config/arm/arm-tune.md: Likewise.
6552         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6553
6554 2016-03-07  Martin Sebor  <msebor@redhat.com>
6555
6556         PR rtl-optimization/19705
6557         * doc/invoke.texi (Options That Control Optimization): Clarify
6558         -fno-branch-count-reg.
6559
6560 2016-02-26  Richard Biener  <rguenther@suse.de>
6561             Jeff Law  <law@redhat.com>
6562
6563         PR tree-optimization/69740
6564         * cfghooks.c (remove_edge): Request loop fixups if we delete
6565         an edge that might turn an irreducible loop into a natural
6566         loop.
6567         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6568         Move after definition of loops_state_clear.
6569
6570 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6571
6572         PR rtl-optimization/69052
6573         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6574         to CONST_WIDE_INT.
6575
6576 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6577
6578         PR tree-optimization/70116
6579         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6580         is_tm_ending stmts and ubsan/asan internal functions.
6581         (find_duplicate): Use it.  Don't test is_tm_ending here.
6582
6583 2016-03-07  Richard Biener  <rguenther@suse.de>
6584
6585         PR tree-optimization/70115
6586         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6587         (propagate_constants_for_unrolling): Use replace_uses_by.
6588
6589 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6590
6591         PR middle-end/69916
6592         * omp-low.c (struct oacc_loop): Add ifns.
6593         (new_oacc_loop_raw): Initialize it.
6594         (finish_oacc_loop): Clear mask & flags if no ifns.
6595         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6596         (oacc_loop_xform_loop): Add ifns arg & adjust.
6597         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6598
6599 2016-03-07  Richard Henderson  <rth@redhat.com>
6600
6601         PR rtl-opt/70061
6602         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6603         (insert_value_copy_on_edge): Likewise.
6604
6605 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6606
6607         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6608
6609 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6610
6611         PR target/62281
6612         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6613
6614 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6615
6616         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6617
6618 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6619
6620         Fix sseimul type attribute.
6621         * config/i386/znver1.md
6622         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6623         znver1_sseimul_avx256_load) : Fix the type attribute.
6624         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6625         pipe usage and latency.
6626
6627 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6628
6629         PR c++/70084
6630         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6631         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6632         to the right type.
6633
6634 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6635
6636         PR c/69973
6637         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6638
6639         PR rtl-optimization/69941
6640         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6641         the reg share its mode.
6642
6643 2016-03-04  Jeff Law  <law@redhat.com>
6644
6645         PR tree-optimization/69196
6646         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6647         If the both SSA_NAMEs are anonymous, then consider them unassociated
6648         and include the PHI in the statement count.
6649
6650 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6651
6652         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6653         construct in oacc routine.  Check for oacc region in oacc routine.
6654
6655 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6656
6657         PR target/70062
6658         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6659         2016-02-22 changes, instead don't recurse if RECUR is already true.
6660         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6661         to pass true to the new argument.
6662         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6663
6664         PR target/70059
6665         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6666         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6667         fixes.
6668         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6669
6670 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6671
6672         PR rtl-optimization/57676
6673         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6674         with flag_checking.
6675
6676 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6677
6678         * tree-vect-patterns.c (search_type_for_mask): Handle
6679         comparison of booleans.
6680
6681 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6682
6683         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6684         Fix @xref usage.
6685
6686         PR debug/69947
6687         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6688         all other ops that have dw_val_class_die_ref operands,
6689         and DW_OP_GNU_entry_value.
6690
6691 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6692
6693         PR rtl-optimization/69904
6694         * config/arm/arm.c (arm_cannot_copy_insn_p):
6695         Return true for load-exclusive instructions.
6696
6697 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6698
6699         PR target/70021
6700         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6701         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6702         the pattern no matter if it is used just by non-pattern, pattern
6703         or mix thereof.
6704         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6705         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6706         oprnd1 def_stmt is in pattern, don't look through it.
6707
6708 2016-03-03  Marek Polacek  <polacek@redhat.com>
6709
6710         PR middle-end/70050
6711         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6712
6713 2016-03-03  Martin Liska  <mliska@suse.cz>
6714
6715         PR tree-optimization/70043
6716         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6717         previous statement if we see a debug statement.
6718
6719 2016-03-03  Richard Biener  <rguenther@suse.de>
6720
6721         PR tree-optimization/55936
6722         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6723         parameter and guard unsafe equivalence use.
6724         (vrp_evaluate_conditional_warnv_with_ops): Always use
6725         safe equivalences but not via the quadratic compare_names
6726         helper.
6727
6728 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6729
6730         PR target/70014
6731         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6732         for operand 1 to s_register_operand. Change predicate for operand
6733         2 to arm_not_immediate_operand.
6734
6735 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6736
6737         * doc/tm.texi: Regenerated.
6738
6739 2016-03-02  Richard Henderson  <rth@redhat.com>
6740
6741         PR rtl-opt/67145
6742         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6743         simplification when all args are positive non-fixed registers.
6744
6745 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6746
6747         * target.def (lra_p): Specify that new ports should use LRA.
6748
6749 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6750
6751         PR libgomp/69555
6752         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6753         gimplify_type_sizes the type they refer to.
6754         (omp_notice_variable): Handle reference vars to VLAs.
6755         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6756         reference to VLA decls in the second pass instead of first pass.
6757
6758 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6759
6760         PR tree-optimization/68659
6761         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6762         new_expr == NULL_TREE.
6763         (get_new_name): Handle ADDR_EXPR.
6764
6765 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6766
6767         PR rtl-optimization/69052
6768         * loop-invariant.c (canonicalize_address): New function.
6769         (inv_can_prop_to_addr_use): Check validity of address expression
6770         which is canonicalized by above function.
6771
6772 2016-03-02  Alan Modra  <amodra@gmail.com>
6773
6774         PR ipa/69990
6775         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6776         larger alignment.
6777
6778 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6779
6780         PR target/70028
6781         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6782         (*movhi_internal): Put mask moves from and to memory separately
6783         from moves from/to GPRs.
6784
6785 2016-03-02  Richard Biener  <rguenther@suse.de>
6786
6787         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6788         GENERIC expressions in GIMPLE.
6789
6790 2016-03-02  Richard Biener  <rguenther@suse.de>
6791
6792         * config/i386/i386.c (type_natural_mode): Fix typo.
6793
6794 2016-03-02  Nick Clifton  <nickc@redhat.com>
6795
6796         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6797
6798 2016-03-02  Richard Biener  <rguenther@suse.de>
6799             Uros Bizjak  <ubizjak@gmail.com>
6800
6801         PR target/67278
6802         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6803
6804 2016-03-02  Richard Biener  <rguenther@suse.de>
6805
6806         PR middle-end/67278
6807         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6808
6809 2016-03-02  Marek Polacek  <polacek@redhat.com>
6810
6811         PR c/67854
6812         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6813         "is promoted to" warning.
6814
6815 2016-03-01  DJ Delorie  <dj@redhat.com>
6816
6817         * config.gcc: Deprecate mep-*.
6818
6819 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6820
6821         PR middle-end/70025
6822         * lra-constraints.c (regno_val_use_in): New.
6823         (match_reload): Use it instead of regno_use_in.
6824
6825 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6826
6827         PR rtl-optimization/70007
6828         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6829         references present in REG_EQUAL notes attached to non-SET patterns.
6830
6831 2016-03-01  Jeff Law  <law@redhat.com>
6832
6833         PR tree-optimization/69196
6834         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6835         Appropriately clamp the number of statements to copy when the
6836         thread path does not traverse a loop backedge.
6837
6838         PR tree-optimization/69196
6839         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6840         Do count some PHIs in the thread path against the insn count.  Decrease
6841         final statement count by one as the control statement in the last
6842         block will get removed.  Remove special cased code for handling PHIs
6843         in the last block.
6844
6845 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6846
6847         PR target/70027
6848         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6849         asm dialect alternatives to explicit GOTPCREL calls.
6850
6851 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6852
6853         PR ada/70017
6854         * ira.c (do_reload): Issue warning for generic stack checking here...
6855         * reload1.c (reload): ...instead of here and streamline it.
6856
6857 2016-03-01  Nick Clifton  <nickc@redhat.com>
6858
6859         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6860
6861 2016-03-01  Richard Biener  <rguenther@suse.de>
6862
6863         PR tree-optimization/69983
6864         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6865         types and fall back to operand_equal_p.
6866
6867 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6868
6869         Revert
6870         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6871
6872         * config/s390/constraints.md ("jm8"): New constraint.
6873         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6874         predicate.
6875         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6876         into ...
6877         ("*setmem_long<setmem_and>"): New pattern.
6878         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6879         into ...
6880         ("*setmem_long_31z<setmem_and>"): New pattern.
6881         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6882         New substitution rules with the required attributes.
6883
6884
6885 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6886
6887         Revert
6888         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6889
6890         * gensupport.c (process_substs_on_one_elem): Split loop to
6891         complete mark_operands_used_in_match_dup on all expressions in the
6892         vector first.
6893         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6894         and remove function.
6895
6896 2016-03-01  Richard Biener  <rguenther@suse.de>
6897
6898         PR middle-end/70022
6899         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6900         vector BIT_FIELD_REF extract.
6901
6902 2016-03-01  Richard Biener  <rguenther@suse.de>
6903
6904         PR tree-optimization/69994
6905         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6906
6907 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6908
6909         PR tree-optimization/69956
6910         * tree-vect-stmts.c (supportable_widening_operation): Support
6911         multi-step conversion of boolean vectors.
6912         (supportable_narrowing_operation): Likewise.
6913
6914 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6915
6916         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6917         anymore.
6918
6919 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6920
6921         * config/s390/subst.md (DSI_VI): New mode iterator.
6922         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6923         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6924         the insn definition.
6925         ("*vec_set<mode>"): Change predicate and add alternative to
6926         support only either register or const_int operands as element
6927         selector.
6928         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6929         operands.
6930         ("vec_extract<mode>"): New expander.
6931         ("*vec_extract<mode>"): New insn definition supporting reg and
6932         const_int element selectors.
6933         ("*vec_extract<mode>_plus"): New insn definition supporting
6934         reg+const_int element selectors.
6935         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6936         following expander+insn definition.
6937         ("<vec_shifts_name><mode>3"): New expander.
6938         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6939
6940 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6941
6942         * config/s390/s390.md ("*tabort_1"): Change predicate to
6943         nonmemory_operand.  Add a second alternative to cover
6944         register as well as const int operands.
6945         ("*tabort_1_plus"): New pattern definition.
6946
6947 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6948
6949         * config/s390/s390.md ("*ashrdi3_cc_31")
6950         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6951         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6952         Merge insn definitions into ...
6953         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6954         New pattern definition.
6955         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6956         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6957         ("*ashr<mode>3_and"): Merge insn definitions into ...
6958         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6959         New pattern definition.
6960         * config/s390/subst.md ("addr_style_op_cc_subst")
6961         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6962         substitutions patterns plus attributes.
6963         Add ashiftrt to SUBST iterator.
6964
6965 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6966
6967         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6968         op2 to nonmemory_operand.
6969         ("*<shift>di3_31", "*<shift>di3_31_and"):
6970         Merge into single pattern definition ...
6971         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6972         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6973         pattern definition ...
6974         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
6975         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
6976         iterator.
6977
6978 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6979
6980         * config/s390/predicates.md (const_int_6bitset_operand): New
6981         predicate.
6982         * config/s390/s390.md: Include subst.md.
6983         ("rotl<mode>3"): New expander.
6984         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
6985         ...
6986         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
6987         * config/s390/subst.md: New file.
6988
6989 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6990
6991         * config/s390/s390.md ("op_type", "atype", "length" attributes):
6992         Remove RRR type.  It doesn't really exist.
6993         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
6994         attributes.
6995         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
6996         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
6997         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
6998         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
6999         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7000         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7001         `enabled' attribute.
7002
7003 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7004
7005         * gensupport.c (process_substs_on_one_elem): Split loop to
7006         complete mark_operands_used_in_match_dup on all expressions in the
7007         vector first.
7008         (adjust_operands_numbers): Inline into process_substs_on_one_elem
7009         and remove function.
7010
7011 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7012
7013         PR target/69706
7014         * config/sparc/sparc.c (NWORDS_UP): Rename to...
7015         (CEIL_NWORDS): ...this.  Use CEIL macro.
7016         (compute_fp_layout): Adjust to above renaming.
7017         (function_arg_union_value): Likewise.
7018         (sparc_arg_partial_bytes): Likewise.
7019         (sparc_function_arg_advance): Likewise.
7020
7021 2016-02-29  Jeff Law  <law@redhat.com>
7022
7023         PR tree-optimization/70005
7024         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
7025         where an object with a boolean range is compared against a value
7026         outside [0..1].
7027
7028         PR tree-optimization/69999
7029         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
7030         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
7031         loop cleanups.
7032
7033 2016-02-29  Richard Biener  <rguenther@suse.de>
7034
7035         PR tree-optimization/69994
7036         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
7037         (get_unary_op): Look through nop conversions.
7038         (ops_equal_values_p): New function, look for equality diregarding
7039         nop conversions.
7040         (eliminate_plus_minus_pair): Use ops_equal_values_p
7041         (repropagate_negates): Do not use get_unary_op here.
7042
7043 2016-02-29  Martin Liska  <mliska@suse.cz>
7044
7045         * system.h: Poison ENABLE_CHECKING macro.
7046
7047 2016-02-29  Martin Liska  <mliska@suse.cz>
7048
7049         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
7050         is presented in dump flags.
7051         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7052         (hsa_regalloc): Likewise.
7053
7054 2016-02-19  Richard Biener  <rguenther@suse.de>
7055
7056         PR tree-optimization/69980
7057         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
7058         permutation of those we need to keep.
7059
7060 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7061
7062         PR target/69706
7063         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
7064         (NWORDS_UP): ...this
7065         (init_cumulative_args): Minor tweaks.
7066         (sparc_promote_function_mode): Likewise.
7067         (scan_record_type): Delete.
7068         (traverse_record_type): New function template.
7069         (classify_data_t): New structure type.
7070         (classify_registers): New inline function.
7071         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
7072         exhausted.  Instantiate traverse_record_type on classify_registers and
7073         deal with the case of a structure passed in slot #15 with no FP field
7074         in the first word.
7075         (assign_data_t): New structure type.
7076         (compute_int_layout): New static function.
7077         (compute_fp_layout): Likewise.
7078         (count_registers): New inline function.
7079         (assign_int_registers): New static function.
7080         (assign_fp_registers): Likewise.
7081         (assign_registers): New inline function.
7082         (function_arg_record_value_1): Delete.
7083         (function_arg_record_value_2): Likewise.
7084         (function_arg_record_value_3): Likewise.
7085         (function_arg_record_value): Adjust to above changes.  Instantiate
7086         traverse_record_type on count_registers to first count the number of
7087         registers to be used and then on assign_registers to assign them.
7088         (function_arg_union_value): Adjust to above renaming.
7089         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
7090         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
7091         case of a structure passed in slot #15
7092         (sparc_function_arg_advance): Likewise.
7093         (function_arg_padding): Minor tweak.
7094
7095 2016-02-29  Richard Biener  <rguenther@suse.de>
7096
7097         PR tree-optimization/69720
7098         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
7099         the adjustment_def path for possibly vectorized defs.
7100         (vect_create_epilog_for_reduction): Handle vectorized initial
7101         defs properly.
7102
7103 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7104
7105         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
7106
7107 2016-02-27  Jeff Law  <law@redhat.com>
7108
7109         Revert
7110         2016-02-26  Richard Biener  <rguenther@suse.de>
7111                     Jeff Law  <law@redhat.com>
7112
7113         PR tree-optimization/69740
7114         * cfghooks.c (remove_edge): Request loop fixups if we delete
7115         an edge that might turn an irreducible loop into a natural
7116         loop.
7117
7118 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
7119
7120         PR rtl-optimization/69896
7121         * tree-vect-generic.c (get_compute_type): Avoid single element
7122         vector types.
7123
7124 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
7125
7126         Rename the AArch64 tuning option and related functions to enable the
7127         Newton series for the reciprocal square root to reflect its
7128         approximative characteristic.
7129
7130         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
7131         function to "aarch64_emit_approx_rsqrt".
7132         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
7133         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
7134         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
7135         (xgene1_tunings): Likewise.
7136         (use_rsqrt_p): Likewise.
7137         (aarch64_emit_swrsqrt): Use new function name.
7138         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
7139         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
7140         text explaining this option.
7141         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
7142
7143 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7144
7145         PR target/69969
7146         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7147         complain about -mallow-movmisalign without -mvsx if
7148         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
7149
7150 2016-02-26  Joel Sherrill  <joel@rtems.org>
7151
7152         * config.gcc: Add x86_64-*-rtems*.
7153         * gcc/config/i386/rtems-64.h: New file.
7154
7155 2016-02-26  Joel Sherrill  <joel@rtems.org>
7156
7157         * config.gcc: Add aarch64-*-rtems*.
7158         * gcc/config/aarch64/rtems.h: New file.
7159
7160 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7161
7162         PR target/69946
7163         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7164         shift amount using %h.  Add comment.
7165
7166 2016-02-26  Richard Biener  <rguenther@suse.de>
7167             Jeff Law  <law@redhat.com>
7168
7169         PR tree-optimization/69740
7170         * cfghooks.c (remove_edge): Request loop fixups if we delete
7171         an edge that might turn an irreducible loop into a natural
7172         loop.
7173
7174 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7175
7176         PR middle-end/69920
7177         * tree-sra.c (sra_modify_assign): Do not remove loads of
7178         uninitialized aggregates to SSA_NAMEs.
7179
7180 2016-02-26  Richard Henderson  <rth@redhat.com>
7181
7182         PR target/69709
7183         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7184         pseudo in case the target rtx matches the source of the left
7185         shift.
7186
7187 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7188
7189         PR hsa/69568
7190         * hsa.h (hsa_type_packed_p): Declare.
7191         * hsa.c (hsa_type_packed_p): New function.
7192         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7193         loads.
7194         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7195         * hsa-brig.c (emit_basic_insn): Likewise.
7196
7197 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7198
7199         pr hsa/69674
7200         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7201         pointers.
7202         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7203
7204 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7205
7206         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7207         hsa_op_with_type operands.
7208         (hsa_unsigned_type_for_type): Declare.
7209         * hsa.c (hsa_unsigned_type_for_type): New function.
7210         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7211         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7212         the finalizer.  Do not emit extra move.
7213
7214 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7215
7216         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7217         atomic operations in private segment.
7218
7219 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7220
7221         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7222         statements to wi->info.  Also disallow omp simd constructs.
7223         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7224         for not gridifying.  Dump special string for omp_for.
7225
7226 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7227
7228         PR target/69245
7229         * config/aarch64/aarch64.c (aarch64_set_current_function):
7230         Save/restore target globals when switching to
7231         target_option_default_node.
7232
7233 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7234
7235         PR target/69613
7236         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7237         Return 0 if !SHIFT_COUNT_TRUNCATED.
7238
7239 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7240             Eric Botcazou  <ebotcazou@adacore.com>
7241
7242         PR rtl-optimization/69891
7243         * dse.c (scan_insn): If we can't figure out memset arguments
7244         or they are non-constant, call clear_rhs_from_active_local_stores.
7245
7246 2016-02-26  Martin Liska  <mliska@suse.cz>
7247
7248         * doc/extend.texi: Mention clog10, clog10f an clog10l
7249         in Builtins section.
7250
7251 2016-02-26  Martin Liska  <mliska@suse.cz>
7252
7253         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7254         CHECKING_P.
7255         (resolve_args_picking_1): Likewise.
7256         * dwarf2out.h (struct GTY): Likewise.
7257
7258 2016-02-26  Martin Liska  <mliska@suse.cz>
7259
7260         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7261         with flag_checking.
7262         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7263
7264 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7265             Martin Liska  <mliska@suse.cz>
7266
7267         * doc/install.texi: Mention --enable-valgrind-annotations.
7268
7269 2016-02-26  Richard Biener  <rguenther@suse.de>
7270
7271         PR tree-optimization/69551
7272         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7273         looking through aliases adjust DECL_PT_UID to refer to the
7274         ultimate alias target.
7275
7276 2016-02-25  Martin Liska  <mliska@suse.cz>
7277
7278         PR middle-end/69919
7279         * alloc-pool.c (after_memory_report): New variable.
7280         * alloc-pool.h (base_pool_allocator ::release): Do not use
7281         the infrastructure if after_memory_report.
7282         * toplev.c (toplev::main): Mark after memory report.
7283
7284 2016-02-25  Richard Biener  <rguenther@suse.de>
7285
7286         PR tree-optimization/48795
7287         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7288
7289 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7290
7291         PR driver/68463
7292         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7293         offloading is enabled and -fopenacc or -fopenmp is specified.
7294         (CRTOFFLOADEND): Likewise.
7295         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7296         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7297         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7298         (offload_objects_file_name): New static var.
7299         (tool_cleanup): Remove offload_objects_file_name file.
7300         (find_offloadbeginend): Replace with ...
7301         (find_crtoffloadtable): ... this.
7302         (run_gcc): Remove offload_argc and offload_argv.
7303         Get offload_objects_file_name from -foffload-objects=... option.
7304         Read names of object files with offload from this file, pass them to
7305         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7306         don't pass offloadbegin and offloadend to the linker.  Don't pass
7307         offload non-LTO files to the linker, because now they're not claimed.
7308
7309 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7310
7311         PR ipa/69630
7312         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7313         on builtin_unreachable.
7314
7315 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7316
7317         PR rtl-optimization/69896
7318         * regcprop.c: Include cfgrtl.h.
7319         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7320         than remembered mode, either delete it (if noop_move_p), or
7321         treat like copy_p but not noop_p instruction.
7322
7323 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7324
7325         PR debug/69705
7326         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7327         - allow NULL decl for Fortran DW_TAG_common_block variables.
7328
7329 2016-02-24  Jason Merrill  <jason@redhat.com>
7330
7331         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7332
7333 2016-02-24  Richard Biener  <rguenther@suse.de>
7334             Jakub Jelinek  <jakub@redhat.com>
7335
7336         PR middle-end/69760
7337         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7338         conditionally executed ops to well-defined overflow behavior.
7339
7340 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR middle-end/69915
7343         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7344         elements.
7345
7346 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7347
7348         PR rtl-optimization/69886
7349         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7350         argument.  Use it when checking validity of set instructions.
7351         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7352         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7353         callsite.
7354         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7355         * store-motion.c (find_moveable_store): Update
7356         can_assign_to_reg_without_clobbers_p callsite.
7357
7358 2016-02-24  Richard Biener  <rguenther@suse.de>
7359
7360         PR middle-end/68963
7361         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7362         bogus check.
7363         (record_nonwrapping_iv): Do not fall back to the low/high bound
7364         for non-constant IV bases if the stmt is not always executed.
7365
7366 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7367
7368         * config/arm/arm-cores.def (cortex-a32): New entry.
7369         * config/arm/arm-tables.opt: Regenerate.
7370         * config/arm/arm-tune.md: Regenerate.
7371         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7372         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7373         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7374         for -mcpu and -mtune.
7375
7376 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7377
7378         PR target/69875
7379         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7380         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7381         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7382         (atomic_loaddi_1): Delete.
7383         (atomic_loaddi): Rewrite expander using the above changes.
7384
7385 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7386
7387         PR c/69918
7388         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7389         2 to 3.
7390
7391 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7392             Richard Biener  <rguenth@suse.de>
7393
7394         PR middle-end/69909
7395         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7396         set_mem_attributes if tem is SSA_NAME which got expanded
7397         as a MEM.
7398
7399 2016-02-24  Richard Biener  <rguenther@suse.de>
7400
7401         PR tree-optimization/69907
7402         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7403         end of permutations for BB vectorization.
7404
7405 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7406
7407         * config/arm/arm-c.c (arm_option_override): Initialize
7408         target_option_current_node.
7409         * config/arm/arm.c (arm_pragma_target_parse): Replace
7410         build_target_option_node call by target_option_current_node.
7411         Set target_option_current_node.
7412         Fix comments.
7413
7414 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7415
7416         PR target/69810
7417         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7418         define_insn_and_split to define_insn.
7419         (zero_extendqi<mode>2_dot2): Same.
7420         (extendqi<mode>2_dot): Same.
7421         (extendqi<mode>2_dot2): Same.
7422
7423 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7424
7425         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7426         and add bypass for AES{D,E} and AESMC pairs.
7427         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7428         and AESMC pairs.
7429
7430 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7431
7432         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7433         series for reciprocal square root in Exynos M1.
7434
7435 2016-02-23  Martin Sebor  <msebor@redhat.com>
7436
7437         PR c/69759
7438         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7439         __builtin_alloca_with_align.
7440
7441 2016-02-23  Richard Henderson  <rth@redhat.com>
7442
7443         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7444         (ix86_register_pragmas): Remove __seg_tls.
7445         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7446         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7447         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7448         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7449         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7450         * doc/extend.texi (__seg_tls): Remove item.
7451
7452 2016-02-23  Richard Biener  <rguenther@suse.de>
7453
7454         * alloc-pool.h (struct allocation_object): Make id member
7455         conditional on CHECKING_P again.
7456         (get_instance): Adjust.
7457         (base_pool_allocator): Likewise.
7458
7459 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7460
7461         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7462         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7463         zero.
7464         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7465         flag_openacc.
7466         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7467
7468 2016-02-23  Richard Biener  <rguenther@suse.de>
7469
7470         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7471         * bitmap.h (struct bitmap_usage): Likewise.
7472         (bitmap_move): Declare.
7473         * bitmap.c (register_overhead): Take size_t argument.
7474         (bitmap_move): New function.
7475         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7476         to properly account overhead.
7477         * tree.c (free_node): Use tree_size.
7478
7479 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7480
7481         PR c++/69902
7482         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7483         when inverting comparison.
7484
7485         PR c/69900
7486         * common.opt (Wunreachable-code): Add Warning flag.
7487
7488 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7489             Jakub Jelinek  <jakub@redhat.com>
7490
7491         PR c/69911
7492         * cgraphunit.c (check_global_declaration): Check main_input_filename
7493         and DECL_SOURCE_FILE are not NULL.
7494
7495 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7496
7497         PR tree-optimization/69666
7498         * tree-sra.c (sra_modify_assign): Do not attempt to create
7499         default_def replacements for unscalarizable regions.
7500
7501 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7502
7503         PR c/28901
7504         * cgraphunit.c (check_global_declaration): Check level of
7505         warn_unused_const_variable and main_input_filename.
7506         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7507         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7508         (-Wunused-const-variable): Explain levels 1 and 2.
7509
7510 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7511
7512         PR target/69888
7513         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7514         identical arguments.  Formatting and spelling fixes.
7515
7516         PR target/69885
7517         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7518         be specified.
7519
7520         PR target/69894
7521         PR target/69895
7522         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7523         and m68k-devices.def.
7524         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7525         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7526
7527 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7528
7529         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7530         and HImode registers.
7531
7532 2016-02-22  Richard Biener  <rguenther@suse.de>
7533
7534         PR tree-optimization/69882
7535         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7536         preserve permutations present because of gaps.
7537         (vect_supported_load_permutation_p): Always continue checking
7538         permutations after vect_attempt_slp_rearrange_stmts.
7539
7540 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7541
7542         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7543         min_profitable_estimate, rather than min_profitable_iters.
7544
7545 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7546
7547         PR target/69885
7548         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7549         SImode for last match_operand.
7550
7551 2016-02-22  Martin Liska  <mliska@suse.cz>
7552
7553         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7554         return bitsize - 1 as the return value.
7555
7556 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7557
7558         PR target/69806
7559         PR target/54089
7560         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7561         Handle negative shift counts.
7562         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7563         force_reg on the shift constant.
7564         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7565         (lshrsi3_d): Handle negative shift counts.
7566
7567 2016-02-22  Richard Biener  <rguenther@suse.de>
7568             Tom de Vries  <tom@codesourcery.com>
7569
7570         * graph.c: Include dumpfile.h.
7571         (print_graph_cfg): Split into three overloads.
7572         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7573
7574 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7575
7576         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7577         dump-fn.
7578
7579 2016-02-22  Richard Biener  <rguenther@suse.de>
7580
7581         PR ipa/37448
7582         * ipa-inline-transform.c (inline_call): When not updating
7583         overall summaries adjust self size by the growth estimate.
7584         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7585         hash-set, do not update overall summaries here.  Renamed from ...
7586         (inline_to_all_callers): ... this which is now wrapping the
7587         above and performing delayed overall summary update.
7588         (early_inline_small_functions): Delay updating of the overall
7589         summary.
7590
7591 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7592
7593         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7594         variable.
7595
7596 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7597
7598         PR driver/69805
7599         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7600         :%* in %:gt() argument.
7601         (greater_than_spec_func): Adjust for expecting only numbers,
7602         if there are more than two numbers, compare the last two.
7603
7604 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7605
7606         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7607         -Wnarrowing with -std.
7608
7609 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7610
7611         PR c++/69851
7612         * expr.c (store_field): Don't use bit-field path if exp is
7613         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7614         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7615         and the assignment can be performed by bitwise copy.  Formatting
7616         fix.
7617
7618         PR middle-end/69838
7619         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7620         call copy_reg_eh_region_note_forward on before and/or after sequences
7621         and remove note from insn if it no longer can throw.
7622
7623         PR target/69820
7624         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7625         if TARGET_AVX512BW.
7626
7627 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7628
7629         * config/s390/vector.md: Add missing commutative operand markers
7630         to the patterns which qualify for one.
7631         * config/s390/vx-builtins.md: Likewise.
7632
7633 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7634
7635         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7636         types to mode iterators.
7637         (vec_double): ... and mode attribute.
7638         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7639
7640 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7641
7642         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7643         Change the predicate of op2 from nonimmediate to general and let
7644         reload fix it if necessary.
7645
7646 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7647
7648         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7649
7650 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7651
7652         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7653         mode.
7654
7655 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7656
7657         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7658         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7659         * config/s390/s390.md ("movstr<P:mode>"): Call
7660         s390_expand_vec_movstr.
7661
7662 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7663
7664         * config/s390/s390.md: Add missing output modifier for operand 1
7665         to print it as address properly.
7666
7667 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7668
7669         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7670         * config/s390/2964.md: New file.
7671         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7672         of insn grouping attributes depending on the CPU level.
7673         (s390_get_unit_mask): New function.
7674         (s390_sched_score): Remove the OOO from the scheduling macros.
7675         Add loop to calculate a score for the instruction mix.
7676         (s390_sched_reorder): Likewise plus improve debug output.
7677         (s390_sched_variable_issue): Rename macros as above.  Calculate
7678         the unit distances after actually scheduling an insn.  Improve
7679         debug output.
7680         (s390_sched_init): Clear last_scheduled_unit_distance array.
7681         * config/s390/s390.md: Include 2964.md.
7682
7683 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7684
7685         PR target/69671
7686         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7687         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7688         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7689         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7690         *avx512f_<code>v8div16qi2_mask_1): New insns.
7691
7692 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7693
7694         PR target/68404
7695         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7696         2016-02-09 change.
7697
7698         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7699         earlyclobber from target.  Use wF constraint for fused memory
7700         address.
7701         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7702
7703 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7704             Martin Liska  <mliska@suse.cz>
7705
7706         PR sanitizer/69863
7707         * cfgexpand.c (asan_sanitize_stack_p): New function.
7708         (partition_stack_vars): Use the function.
7709         (expand_stack_vars): Likewise.
7710         (defer_stack_allocation): Likewise.
7711         (expand_used_vars): Likewise.
7712
7713 2016-02-18  Richard Biener  <rguenther@suse.de>
7714
7715         PR middle-end/69553
7716         * fold-const.c (operand_equal_p): Properly compare offsets for
7717         IMAGPART_EXPR and ARRAY_REF.
7718
7719 2016-02-18  Nick Clifton  <nickc@redhat.com>
7720
7721         PR target/62254
7722         PR target/69610
7723         * config/arm/arm.c (arm_option_override_internal): Disable
7724         interworking if the target does not support thumb instructions.
7725         (arm_reload_in_hi): Handle the case where a register to register
7726         move needs reloading because there is no simple pattern to handle
7727         it.
7728         (arm_reload_out_hi): Likewise.
7729
7730 2016-02-18  Richard Biener  <rguenther@suse.de>
7731
7732         PR middle-end/69854
7733         * match.pd: Don't use fold_binary or fold_unary for folding
7734         constants.
7735
7736 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7737
7738         PR c++/69850
7739         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7740         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7741         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7742         warn on gimple_no_warning_p statements.
7743
7744 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7745
7746         * doc/extend.texi (C++ Attributes): Correct description of
7747         warn_unused type attribute.
7748
7749 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7750
7751         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7752         correct instruction.
7753
7754 2016-02-17  Richard Biener  <rguenther@suse.de>
7755
7756         PR rtl-optimization/69609
7757         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7758         (find_traces_1_round): When ending a trace update cached priority
7759         of successors.
7760         (bb_to_key): Use cached priority when available.
7761         (copy_bb): Initialize cached priority.
7762         (reorder_basic_blocks_software_trace_cache): Likewise.
7763
7764 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7765
7766         PR target/69161
7767         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7768         New predicate.
7769         (aarch64_comparison_operator): Break overly long line into two.
7770         (aarch64_comparison_operation): Likewise.
7771         * config/aarch64/aarch64.md (cstorecc4): Use
7772         aarch64_comparison_operator_mode instead of
7773         aarch64_comparison_operator.
7774         (cstore<mode>4): Likewise.
7775         (aarch64_cstore<mode>): Likewise.
7776         (*cstoresi_insn_uxtw): Likewise.
7777         (cstore<mode>_neg): Likewise.
7778         (*cstoresi_neg_uxtw): Likewise.
7779
7780 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7781
7782         PR target/69161
7783         * config/arm/predicates.md (arm_comparison_operator_mode):
7784         New predicate.
7785         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7786         instead of arm_comparison_operator.
7787         (*mov_negscc): Likewise.
7788         (*mov_notscc): Likewise.
7789         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7790         (*thumb2_mov_negscc): Likewise.
7791         (*thumb2_mov_negscc_strict_it): Likewise.
7792         (*thumb2_mov_notscc): Likewise.
7793         (*thumb2_mov_notscc_strict_it): Likewise.
7794
7795 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7796
7797         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7798         Add missing return.
7799
7800 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7801
7802         * config/visium/visium.c (machine_libfunc_index): New enum.
7803         (machine_libfuncs): New structure.
7804         (visium_libfuncs): New static variable.
7805         (TARGET_INIT_LIBFUNCS): Define to...
7806         (visium_init_libfuncs): ...this.  New function.
7807         (expand_block_move_4): Use the appropriate libfunc.
7808         (expand_block_move_2): Likewise.
7809         (expand_block_move_1): Likewise.
7810         (expand_block_set_4): Likewise.
7811         (expand_block_set_2): Likewise.
7812         (expand_block_set_1): Likewise.
7813         (visium_trampoline_init): Likewise.
7814
7815 2016-02-17  Nick Clifton  <nickc@redhat.com>
7816
7817         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7818         TI's devices.csv file as of March 2016.
7819
7820 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7821
7822         PR Target/48344
7823         * opts-global.c (handle_common_deferred_options): Introduce and
7824         initialize two global variables to remember command-line options
7825         specifying a stack-limiting register.
7826         * opts.h: Add extern declarations of the two new global variables.
7827         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7828         variable based on the values of the two new global variables.
7829
7830 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7831
7832         PR c/69835
7833         * common.opt (Wnonnull-compare): New warning.
7834         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7835         of arguments against NULL.
7836         (-Wnonnull-compare): Document.
7837         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7838         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7839         * passes.def (pass_warn_nonnull_compare): Add.
7840         * gimple-ssa-nonnull-compare.c: New file.
7841
7842 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7843
7844         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7845         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7846
7847 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7848
7849         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7850         reciprocal sqrt for -mlow-precision-recip-sqrt.
7851
7852 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7853             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7854
7855         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7856         always use lane loads to construct non-constant vectors.
7857
7858 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7859
7860         * config/aarch64/aarch64.md
7861         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7862         constraints for operand 3.
7863         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7864
7865 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7866             Richard Biener  <rguenther@suse.de>
7867
7868         PR tree-optimization/69820
7869         * tree-vect-patterns.c (type_conversion_p): Return false if
7870         *orig_type is unsigned single precision or boolean.
7871         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7872         Formatting fix.
7873
7874 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7875
7876         PR rtl-optimization/69764
7877         PR rtl-optimization/69771
7878         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7879         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7880
7881 2016-02-16  Richard Biener  <rguenther@suse.de>
7882
7883         PR tree-optimization/69776
7884         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7885         sets from caller.
7886         (indirect_refs_may_alias_p): Likewise.
7887         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7888         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7889         according to tbaa_p.
7890         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7891         (optimize_stmt): For redundant store discovery do not allow tbaa.
7892
7893 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7894
7895         PR tree-optimization/69714
7896         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7897         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7898
7899 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7900
7901         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7902         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7903         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7904         * config/arc/arc.c (arc_init): Check FPU options.
7905         (get_arc_condition_code): Handle new CC_FPU* modes.
7906         (arc_select_cc_mode): Likewise.
7907         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7908         register pair only. Allow access for ARCv2 accumulator.
7909         (gen_compare_reg): Whenever we have FPU support use FPU compare
7910         instructions.
7911         (arc_reorg): Don't generate brcc insns when FPU compare
7912         instructions are involved.
7913         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7914         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7915         floating point emulation.
7916         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7917         (REVERSE_CONDITION): Add new CC_FPU* modes.
7918         (TARGET_FP_SP_BASE): Define.
7919         (TARGET_FP_DP_BASE): Likewise.
7920         (TARGET_FP_SP_FUSED): Likewise.
7921         (TARGET_FP_DP_FUSED): Likewise.
7922         (TARGET_FP_SP_CONV): Likewise.
7923         (TARGET_FP_DP_CONV): Likewise.
7924         (TARGET_FP_SP_SQRT): Likewise.
7925         (TARGET_FP_DP_SQRT): Likewise.
7926         (TARGET_FP_DP_AX): Likewise.
7927         * config/arc/arc.md (ARCV2_ACC): New constant.
7928         (type): New fpu type attribute.
7929         (SDF): Conditional iterator.
7930         (cstore<mode>, cbranch<mode>): Change expand condition.
7931         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7932         handles FPU/FPX cases as well.
7933         * config/arc/arc.opt (mfpu): New option.
7934         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7935         Renamed.
7936         (adddf3, muldf3, subdf3): Removed.
7937         * config/arc/predicates.md (proper_comparison_operator): Recognize
7938         CC_FPU* modes.
7939         * config/arc/fpu.md: New file.
7940         * doc/invoke.texi (ARC Options): Document mfpu option.
7941
7942 2016-02-16  Richard Biener  <rguenther@suse.de>
7943
7944         PR rtl-optimization/69291
7945         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7946         noce_operand_ok check.
7947
7948 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7949
7950         PR lto/67709
7951         * omp-low.c (simd_clone_create): Remove call to
7952         symtab->call_cgraph_insertion_hooks.
7953
7954 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7955
7956         PR tree-optimization/69802
7957         * tree-ssa-reassoc.c (update_range_test): If op is
7958         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7959         op == 1 test of precision 1 integral op, otherwise handle
7960         that case as op itself.  Fix up formatting.
7961         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7962         up formatting.
7963
7964 2016-02-16  Richard Biener  <rguenther@suse.de>
7965
7966         PR tree-optimization/69586
7967         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7968         types for conversion sources.
7969
7970 2016-02-16  Richard Biener  <rguenther@suse.de>
7971
7972         PR middle-end/69801
7973         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7974         mask OEP_ADDRESS_OF.
7975
7976 2016-02-16  Alan Modra  <amodra@gmail.com>
7977
7978         PR target/68973
7979         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
7980         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
7981         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
7982         (p8_mtvsrwz): New.
7983         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
7984         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
7985         (p8_fmrgow_<mode>): Likewise.
7986         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
7987         changes.
7988         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
7989         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
7990         to use movdi_internal64.  Remove op0_di.
7991         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
7992
7993 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
7994
7995         Add support for the FCCMP insn types
7996
7997         * config/aarch64/aarch64.md (fccmp): Change insn type.
7998         (fccmpe): Likewise.
7999         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8000         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8001         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8002         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8003         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8004         * config/arm/types.md (fccmps): Add new insn type.
8005         (fccmpd): Likewise.
8006
8007 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8008
8009         * alias.c (get_alias_set): Fix a typo in comment.
8010
8011 2016-02-15  Richard Biener  <rguenther@suse.de>
8012
8013         PR tree-optimization/69595
8014         * match.pd: Complete range test simplification to true.
8015
8016 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
8017
8018         PR rtl-optimization/69648
8019         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
8020         pic_offset_table_rtx.
8021
8022         PR rtl-optimization/69752
8023         * ira.c (update_equiv_regs): When looking for more than a single SET,
8024         also take other side effects into account.
8025
8026 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8027
8028         * config/s390/s390.c (s390_function_profiler): Add a new sequence
8029         for z900+ CPUs in 31-bit mode.
8030
8031 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8032
8033         * common/config/s390/s390-common.c (s390_supports_split_stack):
8034         New function.
8035         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
8036         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
8037         * config/s390/s390.c (struct machine_function): New field
8038         split_stack_varargs_pointer.
8039         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
8040         in s390_emit_prologue.
8041         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
8042         vararg pointer.
8043         (morestack_ref): New global.
8044         (SPLIT_STACK_AVAILABLE): New macro.
8045         (s390_expand_split_stack_prologue): New function.
8046         (s390_live_on_entry): New function.
8047         (s390_va_start): Use split-stack vararg pointer if appropriate.
8048         (s390_asm_file_end): Emit the split-stack note sections.
8049         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
8050         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
8051         (UNSPECV_SPLIT_STACK_CALL): New unspec.
8052         (UNSPECV_SPLIT_STACK_DATA): New unspec.
8053         (split_stack_prologue): New expand.
8054         (split_stack_space_check): New expand.
8055         (split_stack_data): New insn.
8056         (split_stack_call): New expand.
8057         (split_stack_call_*): New insn.
8058         (split_stack_cond_call): New expand.
8059         (split_stack_cond_call_*): New insn.
8060
8061 2016-02-15  Richard Biener  <rguenther@suse.de>
8062
8063         PR tree-optimization/69783
8064         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8065         Add trivially correct cases.
8066
8067 2016-02-15  Tom de Vries  <tom@codesourcery.com>
8068
8069         PR lto/69655
8070         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
8071         do_force_output.
8072         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
8073
8074 2016-02-15  Richard Biener  <rguenther@suse.de>
8075
8076         PR tree-optimization/69776
8077         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8078         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
8079         indicate whether we can use TBAA to disambiguate against stores.
8080         Use alias-set zero if not.
8081         (visit_reference_op_store): Do not use TBAA when looking up
8082         redundant stores.
8083         * tree-ssa-pre.c (compute_avail): Use TBAA here.
8084         (eliminate_dom_walker::before_dom_children): But not when looking
8085         up redundant stores.
8086
8087 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
8088
8089         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
8090
8091 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8092
8093         *  config/i386/znver1.md
8094         (znver1_pop, znver1_pop_mem,
8095         znver1_load_imov_double_store,
8096         znver1_load_imov_direct_store,
8097         znver1_load_imov_direct_load,
8098         znver1_load_imov_double_load): Add new.
8099         (znver1_insn, znver1_insn_load): Add icmov type.
8100         (znver1_sseavx_fma,
8101         znver1_sseavx_fma_load,
8102         znver1_avx256_fma,
8103         znver1_avx256_fma_load): Fix pipe usage.
8104
8105 2016-02-14  Alan Modra  <amodra@gmail.com>
8106
8107         PR target/68973
8108         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
8109         with an invalid hard reg, reload just the reg not the entire
8110         pre/post-inc/dec address expression.
8111
8112 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8113
8114         PR target/67260
8115         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
8116         fixed R1_REG scratch reg.
8117         (sibcall_value_pcrel_fdpic): Likewise.
8118
8119 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8120
8121         PR target/67636
8122         PR target/64345
8123         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
8124
8125 2016-02-12  Walter Lee  <walt@tilera.com>
8126
8127         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
8128         * config/tilegx/t-tilegx: Likewise.
8129
8130 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8131
8132         PR other/69554
8133         * diagnostic-show-locus.c (struct line_span): New struct.
8134         (layout::get_first_line): Delete.
8135         (layout::get_last_line): Delete.
8136         (layout::get_num_line_spans): New member function.
8137         (layout::get_line_span): Likewise.
8138         (layout::print_heading_for_line_span_index_p): Likewise.
8139         (layout::get_expanded_location): Likewise.
8140         (layout::calculate_line_spans): Likewise.
8141         (layout::m_first_line): Delete.
8142         (layout::m_last_line): Delete.
8143         (layout::m_line_spans): New field.
8144         (layout::layout): Update comment.  Replace m_first_line and
8145         m_last_line with m_line_spans, replacing their initialization
8146         with a call to calculate_line_spans.
8147         (diagnostic_show_locus): When printing source lines and
8148         annotations, rather than looping over a single span
8149         of lines, instead loop over each line_span within
8150         the layout, with an inner loop over the lines within them.
8151         Call the context's start_span callback when changing line spans.
8152         * diagnostic.c (diagnostic_initialize): Initialize start_span.
8153         (diagnostic_build_prefix): Break out the building of the location
8154         part of the string into...
8155         (diagnostic_get_location_text): ...this new function, rewriting
8156         it from nested ternary expressions to a sequence of "if"
8157         statements.
8158         (default_diagnostic_start_span_fn): New function.
8159         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8160         (diagnostic_context::start_span): New field.
8161         (default_diagnostic_start_span_fn): New prototype.
8162
8163 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8164
8165         PR driver/69779
8166         * gcc.c (driver::finalize): Fix cleanup of "specs".
8167
8168 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8169
8170         PR driver/69265
8171         PR driver/69453
8172         * gcc.c (driver::driver): Initialize m_option_suggestions.
8173         (driver::~driver): Clean up m_option_suggestions.
8174         (suggest_option): Convert to...
8175         (driver::suggest_option): ...this, and split out into
8176         driver::build_option_suggestions and find_closest_string.
8177         (driver::build_option_suggestions): New function, from
8178         first half of suggest_option.  Special-case
8179         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8180         the sanitizer_opts array.  For options of enum types, add the
8181         various enum values to the candidate strings.
8182         (driver::handle_unrecognized_options): Remove "const".
8183         * gcc.h (driver::handle_unrecognized_options): Likewise.
8184         (driver::build_option_suggestions): New decl.
8185         (driver::suggest_option): New decl.
8186         (driver::m_option_suggestions): New field.
8187         * opts-common.c (add_misspelling_candidates): New function.
8188         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8189         and make non-static.
8190         * opts.h (sanitizer_opts): New array decl.
8191         (add_misspelling_candidates): New function decl.
8192         * spellcheck.c (find_closest_string): New function.
8193         * spellcheck.h (find_closest_string): New function decl.
8194
8195 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8196
8197         PR rtl-optimization/69764
8198         PR rtl-optimization/69771
8199         * optabs.c (expand_binop_directly): For shift_optab_p, force
8200         convert_modes with VOIDmode if xop1 has VOIDmode.
8201
8202 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8203
8204         PR target/69729
8205         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8206         to correctly determine instrumentation thunks.
8207
8208 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8209
8210         PR ipa/69241
8211         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8212         type by reference, force lhs on the call.
8213
8214         PR ipa/68672
8215         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8216         Compute retval and retbnd early in all cases if split_part_return_p
8217         and return_bb is not EXIT.  Remove all clobber stmts and reset
8218         all debug stmts that refer to SSA_NAMEs defined in split part,
8219         except if it is retval, in that case replace the old retval with the
8220         lhs of the call to the split part.
8221
8222 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8223
8224         revert:
8225         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8226
8227         PR middle-end/66726
8228         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8229         whose result is used in PHI.
8230         (maybe_optimize_range_tests): Likewise.
8231         (final_range_test_p): Likweise.
8232
8233 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8234
8235         PR middle-end/66726
8236         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8237         whose result is used in PHI.
8238         (maybe_optimize_range_tests): Likewise.
8239         (final_range_test_p): Likweise.
8240
8241 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8242
8243         * cgraph.c: Spelling fixes - behaviour -> behavior and
8244         neighbour -> neighbor.
8245         * target.def: Likewise.
8246         * sel-sched.c: Likewise.
8247         * config/mips/mips.c: Likewise.
8248         * config/arc/arc.md: Likewise.
8249         * config/arm/cortex-a57.md: Likewise.
8250         * config/arm/arm.c: Likewise.
8251         * config/arm/neon.md: Likewise.
8252         * config/arm/arm-c.c: Likewise.
8253         * config/vms/vms-c.c: Likewise.
8254         * config/s390/s390.c: Likewise.
8255         * config/i386/znver1.md: Likewise.
8256         * config/i386/i386.c: Likewise.
8257         * config/ia64/hpux-unix2003.h: Likewise.
8258         * config/msp430/msp430.md: Likewise.
8259         * config/rx/rx.c: Likewise.
8260         * config/rx/rx.md: Likewise.
8261         * config/aarch64/aarch64-simd.md: Likewise.
8262         * config/aarch64/aarch64.c: Likewise.
8263         * config/nvptx/nvptx.c: Likewise.
8264         * config/bfin/bfin.c: Likewise.
8265         * config/cris/cris.opt: Likewise.
8266         * config/rs6000/rs6000.c: Likewise.
8267         * target.h: Likewise.
8268         * spellcheck.c: Likewise.
8269         * ira-build.c: Likewise.
8270         * tree-inline.c: Likewise.
8271         * builtins.c: Likewise.
8272         * lra-constraints.c: Likewise.
8273         * explow.c: Likewise.
8274         * hwint.h: Likewise.
8275         * targhooks.c: Likewise.
8276         * tree-vect-data-refs.c: Likewise.
8277         * expr.c: Likewise.
8278         * doc/tm.texi: Likewise.
8279         * doc/extend.texi: Likewise.
8280         * doc/install.texi: Likewise.
8281         * doc/md.texi: Likewise.
8282         * tree-ssa-tail-merge.c: Likewise.
8283         * sched-int.h: Likewise.
8284         * match.pd: Likewise.
8285         * sched-ebb.c: Likewise.
8286         * target.def (omit_struct_return_reg): Likewise.
8287         * gimple-ssa-isolate-paths.c: Likewise.
8288         (find_implicit_erroneous_behaviour): Renamed to...
8289         (find_implicit_erroneous_behavior): ... this.
8290         (find_explicit_erroneous_behaviour): Renamed to...
8291         (find_explicit_erroneous_behavior): ... this.
8292         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8293
8294 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8295
8296         PR rtl-optimization/64682
8297         PR rtl-optimization/69567
8298         PR rtl-optimization/69737
8299         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8300         in I2 as well, just lose it.
8301
8302 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8303
8304         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8305         New variable.
8306         (aarch64_last_printed_tune_string): Likewise.
8307         (aarch64_declare_function_name): Only output .arch assembler
8308         directive if it will be different from the previously output
8309         directive.  Same for .tune comment but only if -dA is set.
8310         (aarch64_start_file): New function.
8311         (TARGET_ASM_FILE_START): Define.
8312
8313 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8314
8315         PR plugins/69758
8316         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8317
8318 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8319
8320         PR target/65313
8321         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8322         -Wmaybe-uninitialized warning.
8323
8324 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8325
8326         PR target/69713
8327         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8328
8329 2016-02-11  Richard Biener  <rguenther@suse.de>
8330
8331         PR rtl-optimization/69291
8332         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8333         subexpressions affected by changing the result.
8334
8335 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8336
8337         PR target/69148
8338         * lra-constraints.c (curr_insn_transform): Find in/out operands
8339         for secondary memory moves.  Update dups.
8340
8341 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8342
8343         PR tree-optimization/69652
8344         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8345         to nested loop, did source re-formatting, skip debug statements,
8346         add check on statement with volatile operand, remove dead scalar
8347         statements.
8348
8349 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8350             Patrick Palka  <ppalka@gcc.gnu.org>
8351
8352         PR ipa/69241
8353         PR c++/69649
8354         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8355         calls if the return type is TREE_ADDRESSABLE.
8356         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8357         * ipa-split.c (split_function): Fix doubled "we" in comment.
8358         Use void return type for the split part even if
8359         !split_point->split_part_set_retval.
8360
8361 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8362
8363         PR tree-optimization/68021
8364         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8365         when computing the value of biv cand by itself.
8366
8367 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8368
8369         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8370         (cortexa57_tunings): Likewise.
8371         (cortexa72_tunings): Likewise.
8372         (arch_macro_fusion_pair_p): Add support for AES fusion.
8373         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8374         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8375         Allow virtual registers before reload so early scheduling works.
8376         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8377         correct latency and pipeline.
8378         (cortex_a57_crypto_complex): Likewise.
8379         (cortex_a57_crypto_xor): Likewise.
8380         (define_bypass): Add AES bypass.
8381
8382 2016-02-10  Richard Biener  <rguenther@suse.de>
8383
8384         PR tree-optimization/69726
8385         * passes.def: Add DCE pass before late uninit.
8386         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8387         really fixup if-conversions job.
8388
8389 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8390
8391         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8392         (arm_cortex_a57_tune): Likewise.
8393         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8394         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8395
8396 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8397
8398         * timevar.def (TV_PHASE_DBGINFO): Delete.
8399         (TV_PHASE_CHECK_DBGINFO): Likewise.
8400         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8401
8402 2016-02-10  Richard Biener  <rguenther@suse.de>
8403
8404         PR tree-optimization/69719
8405         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8406         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8407
8408 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8409
8410         PR tree-opt/69282
8411         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8412         get_vcond_mask_icode returns false.
8413
8414 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8415
8416         PR target/68404
8417         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8418         an ADDIS that adds a pointer to a large constant that sets the
8419         upper16 bits with a load operation.
8420
8421 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8422
8423         PR target/68532
8424         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8425         order.
8426         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8427         endian.
8428         (vzipq_s16): Likewise.
8429         (vzipq_s32): Likewise.
8430         (vzipq_f32): Likewise.
8431         (vzipq_u8): Likewise.
8432         (vzipq_u16): Likewise.
8433         (vzipq_u32): Likewise.
8434         (vzipq_p8): Likewise.
8435         (vzipq_p16): Likewise.
8436
8437 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8438
8439         PR target/68532
8440         * config/arm/arm.c (neon_endian_lane_map): New function.
8441         (neon_vector_pair_endian_lane_map): New function.
8442         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8443         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8444         endian.
8445         (vuzpq_s16): Likewise.
8446         (vuzpq_s32): Likewise.
8447         (vuzpq_f32): Likewise.
8448         (vuzpq_u8): Likewise.
8449         (vuzpq_u16): Likewise.
8450         (vuzpq_u32): Likewise.
8451         (vuzpq_p8): Likewise.
8452         (vuzpq_p16): Likewise.
8453
8454 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8455
8456         PR target/69634
8457         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8458         debug insns.
8459
8460 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8461
8462         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8463         truncate const_int operand 1 to QImode.
8464
8465 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8466
8467         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8468         corresponding to an abnormal edge.
8469
8470 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8471
8472         PR tree-optimization/69599
8473         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8474         function.
8475         (find_func_aliases_for_builtin_call, find_func_clobbers)
8476         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8477         partition.
8478
8479 2016-02-09  Richard Biener  <rguenther@suse.de>
8480
8481         PR tree-optimization/69715
8482         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8483         LHS on calls as non-rewritable.
8484
8485 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8486
8487         PR lto/69707
8488         * lto-wrapper.c (append_diag_options): New function.
8489         (compile_offload_image): Call append_diag_options.
8490
8491 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8492
8493         PR other/69722
8494         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8495         Minor copy-edit to fix verb tenses.
8496
8497 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8498
8499         PR tree-optimization/69209
8500         * ipa-split.c (split_function): If split part is not
8501         returning retval, retval has gimple type but is not
8502         gimple value, force it into a SSA_NAME first.
8503
8504 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8505
8506         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8507         outdated section.
8508
8509 2016-02-08  Jason Merrill  <jason@redhat.com>
8510
8511         PR c++/69631
8512         * convert.c (convert_to_integer_1): Check dofold on truncation
8513         distribution.
8514         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8515         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8516         Rename from *_nofold.
8517         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8518         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8519
8520 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8521
8522         PR target/60410
8523         * tree.c (build_common_tree_nodes): Remove short_double argument.
8524         All callers changed.
8525         * tree.h (build_common_tree_nodes): Adjust declaration.
8526         * doc/invoke.texi (-fshort-double): Remove documentation.
8527         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8528         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8529         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8530         (append_linker_options): Don't handle OPT_fshort_double.
8531
8532         PR rtl-optimization/68730
8533         * lra-remat.c (insn_to_cand_activation): New static variable.
8534         (lra_remat): Allocate and free it.
8535         (create_cand): New arg activation. Initialize a field in
8536         insn_to_cand_activation if it is nonnull.
8537         (create_cands): Pass the activation insn to create_cand when making
8538         a candidate involving an output reload.  Reorganize code a little.
8539         (do_remat): Keep track of active status of candidates in a separate
8540         bitmap.
8541
8542 2016-02-08  Richard Biener  <rguenther@suse.de>
8543
8544         PR tree-optimization/69719
8545         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8546         Properly use absolute of the difference of the two offsets to
8547         compare or adjust the segment length.
8548
8549 2016-02-08  Richard Biener  <rguenther@suse.de>
8550             Jeff Law  <law@redhat.com>
8551
8552         PR target/68273
8553         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8554         types for anonymous SSA names.
8555
8556 2016-02-08   Richard Biener  <rguenther@suse.de>
8557
8558         PR rtl-optimization/69274
8559         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8560
8561 2016-02-08  Jeff Law  <law@redhat.com>
8562
8563         PR tree-optimization/65917
8564         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8565         equivalences from if (x == y) style conditionals.
8566         (loop_depth_of_name): Remove.
8567         (record_equality): Remove loop depth check.
8568         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8569         (const_and_copies::record_const_or_copy_raw): New member function.
8570         * tree-ssa-scopedtables.c
8571         (const_and_copies::record_const_or_copy_raw): New, factored out of
8572         (const_and_copies::record_const_or_copy): Call new member function.
8573
8574 2016-02-05  Jeff Law  <law@redhat.com>
8575
8576         PR tree-optimization/68541
8577         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8578         (count_stmts_in_block): New function.
8579         (poor_ifcvt_candidate_code): Likewise.
8580         (is_feasible_trace): Add some heuristics to determine when path
8581         splitting is profitable.
8582         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8583         is a diamond with a single exit.
8584
8585 2016-02-05  Martin Sebor  <msebor@redhat.com>
8586
8587         PR c++/69662
8588         * doc/invoke.texi: Update -Wplacement-new to take an optional
8589         argument.
8590
8591 2016-02-06  Richard Henderson  <rth@redhat.com>
8592
8593         PR c/69643
8594         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8595         out of non-standard address spaces.
8596
8597 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8598
8599         PR rtl-optimization/69691
8600         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8601
8602 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8603
8604         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8605         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8606         (*ieee128_mfvsrd_64bit): Likewise.
8607         (*ieee128_mfvsrd_32bit): Likewise.
8608
8609 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8610
8611         PR target/69369
8612         Revert r232560:
8613         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8614
8615         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8616         instrumented_version.
8617
8618 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8619
8620         * doc/invoke.texi (Optimize Options): In table of --param options
8621         rename second occurrence of tracer-min-branch-ratio to
8622         tracer-min-branch-probability, rename
8623         tracer-min-branch-ratio-feedback to
8624         tracer-min-branch-probability-feedback and clarify description,
8625         rename sched-spec-state-edge-prob-cutoff to
8626         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8627         to selsched-insns-to-rename, rename lto-minpartition to
8628         lto-min-partition, delete reorder-blocks-duplicate and
8629         reorder-blocks-duplicate-feedback.
8630
8631 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8632
8633         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8634         superfluous loops.
8635
8636 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8637
8638         * doc/extend.texi: S/390: Correct some typos.
8639
8640 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8641
8642         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8643
8644 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8645
8646         PR target/69625
8647         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8648         (s390_register_info_gprtofpr): Use new macros above.
8649         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8650         its name.
8651         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8652         its name.  Adjust restore and save gpr ranges.
8653         (s390_register_info_set_ranges): New function.
8654         (s390_register_info): Use new macros above.  Call
8655         s390_register_info_set_ranges.
8656         (s390_optimize_register_info): Likewise.
8657         (s390_hard_regno_rename_ok): Use new macros.
8658         (s390_hard_regno_scratch_ok): Likewise.
8659         (s390_emit_epilogue): Likewise.
8660         (s390_can_use_return_insn): Likewise.
8661         (s390_optimize_prologue): Likewise.
8662         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8663
8664 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8665
8666         PR bootstrap/69677
8667         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8668         alignment fixes.
8669         (ix86_option_override_internal): Disable TARGET_STV even for
8670         -m{incoming,preferred}-stack-boundary=3.
8671
8672 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8673
8674         * config.gcc: Mark deprecated rtems targets as obsolete.
8675
8676 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8677
8678         PR rtl-optimization/64682
8679         PR rtl-optimization/69567
8680         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8681         before I2 only if the register is both used and set in I2.
8682
8683 2016-02-04  DJ Delorie  <dj@redhat.com>
8684
8685         * config/msp430/msp430.c (msp430_start_function): Add function type.
8686
8687 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8688
8689         PR fortran/69368
8690         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8691
8692 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8693
8694         PR rtl-optimization/69577
8695         Revert:
8696         2015-10-29  Richard Henderson  <rth@redhat.com>
8697
8698         PR target/68124
8699         PR rtl-opt/67609
8700         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8701         sse check to the exact conditions of PR 67609.
8702
8703 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8704
8705         PR target/69667
8706         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8707         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8708         not allowed into the traditional Altivec registers.
8709         (movtd_64bit_nodm): Likewise.
8710         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8711
8712 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8713
8714         * config/aarch64/cortex-a57-fma-steering.c
8715         (aarch64_register_fma_steering): Remove "static" from arguments
8716         to register_pass.
8717
8718 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8719
8720         PR target/69619
8721         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8722         twice when complex.
8723
8724 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8725
8726         * doc/invoke.texi: Delete -mno-fma4.
8727
8728 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8729
8730         PR rtl-optimization/69577
8731         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8732         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8733         definitions.
8734
8735 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8736
8737         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8738         * config/arm/arm.c (neon_reinterpret): Remove.
8739         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8740         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8741         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8742         vreinterpretti): Remove.
8743         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8744         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8745         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8746         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8747         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8748         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8749         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8750         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8751         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8752         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8753         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8754         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8755         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8756         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8757         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8758         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8759         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8760         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8761         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8762         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8763         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8764         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8765         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8766         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8767         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8768         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8769         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8770         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8771         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8772         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8773         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8774         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8775         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8776         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8777         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8778         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8779         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8780         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8781         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8782         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8783         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8784         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8785         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8786         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8787         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8788         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8789         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8790         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8791         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8792         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8793         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8794         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8795         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8796         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8797         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8798         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8799         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8800         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8801         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8802         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8803         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8804         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8805         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8806         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8807         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8808         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8809         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8810         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8811         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8812         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8813         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8814         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8815         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8816         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8817         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8818         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8819         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8820         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8821         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8822         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8823         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8824         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8825         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8826         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8827         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8828         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8829         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8830         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8831         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8832         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8833         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8834         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8835         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8836         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8837         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8838         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8839         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8840         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8841         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8842         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8843         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8844         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8845         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8846
8847 2016-02-04  Martin Liska  <mliska@suse.cz>
8848
8849         PR sanitizer/69276
8850         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8851         that are gimple_store_p.
8852         (maybe_instrument_call): Likewise.
8853
8854 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8855
8856         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8857         register scaling out of memory reference and comment why.
8858
8859 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8860
8861         PR target/65932
8862         PR target/67714
8863         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8864         folding the source of a SET.
8865
8866 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8867
8868         PR target/65932
8869         PR target/67714
8870         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8871         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8872
8873 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8874
8875         PR target/65932
8876         PR target/67714
8877         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8878         HImode.
8879
8880 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8881
8882         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8883         * config/arm/arm.c (arm_set_current_function): Likewise.
8884
8885 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8886             Ilya Enkovich  <enkovich.gnu@gmail.com>
8887             H.J. Lu  <hongjiu.lu@intel.com>
8888
8889         PR target/69454
8890         * config/i386/i386.c (convert_scalars_to_vector): Remove
8891         stack alignment fixes.
8892         (ix86_option_override_internal): Disable TARGET_STV if stack
8893         might not be aligned enough.
8894         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8895
8896 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8897
8898         * gcc/config/i386/x86-tune.def: Disable default prefetching
8899         for -march=znver1.
8900
8901 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8902             Vladimir Makarov  <vmakarov@redhat.com>
8903
8904         PR target/69461
8905         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8906         in validating fused toc addresses.
8907
8908 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8909
8910         PR c/69627
8911         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8912         range->m_caret fields if range->m_show_caret_p is false.
8913
8914         PR target/69644
8915         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8916         Force oldval into register if it does not satisfy reg_or_short_operand
8917         predicate.  Fix up formatting.
8918
8919 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8920             Alexandre Oliva  <aoliva@redhat.com>
8921
8922         PR target/69461
8923         * lra-constraints.c (simplify_operand_subreg): Check additionally
8924         address validity after potential reloading.
8925         (process_address_1): Check insns validity.  In case of failure do
8926         nothing.
8927
8928 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8929
8930         PR target/69118
8931         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8932         Fix target.
8933
8934 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8935
8936         * wide-int.cc (canonize_uhwi): New function.
8937         (wi::divmod_internal): Use it.
8938
8939 2016-02-02  James Norris  <jnorris@codesourcery.com
8940
8941         * gimplify.c (omp_notice_variable): Add usage check.
8942
8943 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8944
8945         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8946         like LE, GE, LT, GT when emitting relational operator.
8947
8948 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8949
8950         * ira-costs.c (find_costs_and_classes): Add extra argument.
8951         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8952         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8953         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8954         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8955         Add best_class parameter, and return it if not ALL_REGS.
8956         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8957         Add parameter.
8958         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8959         Update target hook.
8960
8961 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8962
8963         * config/aarch64/aarch64.c
8964         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8965         (aarch64_ira_change_pseudo_allocno_class): New function.
8966
8967 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8968
8969         PR target/67032
8970         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8971
8972 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8973
8974         * config/avr/avr.c (avr_option_override): Set
8975         PARAM_ALLOW_STORE_DATA_RACES to 1.
8976
8977 2016-02-02  Richard Biener  <rguenther@suse.de>
8978
8979         PR tree-optimization/69595
8980         * match.pd: Add range test simplifications to true/false.
8981
8982 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
8983
8984         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
8985         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
8986         instead.
8987
8988 2016-02-02  Richard Biener  <rguenther@suse.de>
8989
8990         PR tree-optimization/69606
8991         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
8992         info on the result before moving a stmt.
8993
8994 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
8995
8996         PR middle-end/68542
8997         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
8998         branch with vector comparison.
8999         * config/i386/sse.md (VI48_AVX): New mode iterator.
9000         (define_expand "cbranch<mode>4): Add support for conditional branch
9001         with vector comparison.
9002         * tree-vect-loop.c (optimize_mask_stores): New function.
9003         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9004         has_mask_store field of vect_info.
9005         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9006         vectorized loops having masked stores after vec_info destroy.
9007         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9008         correspondent macros.
9009         (optimize_mask_stores): Add prototype.
9010
9011 2016-02-02  Alan Modra  <amodra@gmail.com>
9012
9013         PR target/69548
9014         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9015         allow subregs.
9016
9017 2016-02-02  Alan Modra  <amodra@gmail.com>
9018
9019         PR target/68662
9020         * config/rs6000/rs6000.c (need_toc_init): New var, set it
9021         whenever toc_label_name used.
9022         (rs6000_file_start): Don't set up toc section here,
9023         (rs6000_output_function_epilogue): do so here instead,
9024         (rs6000_xcoff_file_start): and here.
9025         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
9026         (load_toc_aix_di): Likewise.
9027
9028 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9029
9030         PR rtl-optimization/69592
9031         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
9032         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
9033         (num_sign_bit_copies_binary_arith_p): New inline function.
9034         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
9035
9036 2016-02-01  Jeff Law  <law@redhat.com>
9037
9038         PR tree-optimization/69580
9039         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
9040         * tree-ssa-threadbackward.c
9041         (fsm_find_control_statement_thread_paths): Do not try to walk
9042         through large PHI nodes.
9043
9044 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9045
9046         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
9047         when count is incremented above limit, don't analyze further
9048         insns afterwards.
9049
9050         * omp-low.c (oacc_parse_default_dims): Avoid
9051         -Wsign-compare warning, make sure value fits into int
9052         rather than just unsigned int.
9053
9054 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
9055
9056         PR tree-optimization/67921
9057         * fold-const.c (split_tree): New parameters.  Convert pointer
9058         type variable part to proper type before negating.
9059         (fold_binary_loc): Pass new arguments to split_tree.
9060
9061 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
9062
9063         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
9064         (nvptx_goacc_validate_dims): Extend to handle global defaults.
9065         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
9066         * doc/tm.texti: Rebuilt.
9067         * doc/invoke.texi (fopenacc-dim): Document.
9068         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
9069         (append_compiler_options): Likewise.
9070         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
9071         (oacc_parse_default_dims): New.
9072         (oacc_validate_dims): Add USED arg.  Select non-unity default when
9073         possible.
9074         (oacc_loop_fixed_partitions): Return mask of used partitions.
9075         (oacc_loop_auto_partitions): Emit dump info.
9076         (oacc_loop_partition): Return mask of used partitions.
9077         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
9078         loop partitioning and validation calls.
9079
9080 2016-02-01  Richard Biener  <rguenther@suse.de>
9081
9082         PR middle-end/69556
9083         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
9084
9085 2016-02-01  Richard Biener  <rguenther@suse.de>
9086
9087         PR tree-optimization/69574
9088         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
9089         of asserting return chrec_dont_know.
9090
9091 2016-02-01  Martin Liska  <mliska@suse.cz>
9092
9093         * mem-stats-traits.h: Add copyright header.
9094         * mem-stats.h: Likewise.
9095
9096 2016-02-01  Richard Biener  <rguenther@suse.de>
9097
9098         PR tree-optimization/69579
9099         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
9100         Do not propagate through abnormal PHI results.
9101
9102 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
9103
9104         * postreload.c (reload_cse_simplify): Remove dead code.
9105
9106 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9107
9108         PR rtl-optimization/69570
9109         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
9110         if there is more than one set, not if there is a single set.
9111
9112 2016-02-01  Richard Henderson  <rth@redhat.com>
9113
9114         PR rtl-opt/69535
9115         * combine.c (make_compound_operation): When looking through a
9116         subreg, make sure to re-extend to the width of the outer mode.
9117
9118 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
9119
9120         PR tree-optimization/69546
9121         * wide-int.cc (wi::divmod_internal): For unsigned division
9122         where both operands fit into uhwi, if o1 is 1 and o0 has
9123         msb set, if divident_prec is larger than bits per hwi,
9124         clear another quotient word and return 2 instead of 1.
9125         Similarly for remainder with msb in HWI set, if dividend_prec
9126         is larger than bits per hwi.
9127
9128 2016-01-29  Martin Jambor  <mjambor@suse.cz>
9129
9130         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
9131         Use short lowercase names.
9132         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
9133         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
9134         acq_rel one.  Protect warning agains segfaults if
9135         get_memory_order_name returns NULL.
9136         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
9137         with release semantics.  Do not warn if get_memory_order already did.
9138         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
9139         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
9140         if get_memory_order already did.
9141
9142 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
9143
9144         * doc/install.texi: Document that isl-0.16 is supported.
9145
9146 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9147
9148         PR target/69299
9149         * config/i386/constraints.md (Bm): Describe as special memory
9150         constraint.
9151         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
9152         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9153         * genpreds.c (struct constraint_data): Add is_special_memory.
9154         (have_special_memory_constraints, special_memory_start): New
9155         static vars.
9156         (special_memory_end): Ditto.
9157         (add_constraint): Add new arg is_special_memory.  Add code to
9158         process its true value.  Update have_special_memory_constraints.
9159         (process_define_constraint): Pass the new arg.
9160         (process_define_register_constraint): Ditto.
9161         (choose_enum_order): Process special memory.
9162         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9163         function insn_extra_special_memory_constraint.
9164         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9165         * gensupport.c (process_rtx): Process
9166         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9167         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9168         * ira-lives.c (single_reg_class): Use
9169         insn_extra_special_memory_constraint.
9170         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9171         * lra-constraints.c (process_alt_operands): Ditto.
9172         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9173         * recog.c (asm_operand_ok, preprocess_constraints): Process
9174         CT_SPECIAL_MEMORY.
9175         * reload.c (find_reloads): Ditto.
9176         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9177         * stmt.c (parse_input_constraint): Use
9178         insn_extra_special_memory_constraint.
9179
9180 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9181
9182         PR target/69530
9183         * lra-splill.c (lra_final_code_change): Revert r229087 by
9184         removing all sub-registers.
9185
9186 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9187
9188         PR target/65604
9189         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9190
9191 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9192
9193         PR target/69551
9194         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9195         SSE1, copy target into the temporary reg first before recursing
9196         on it.
9197
9198 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9199
9200         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9201         with vm.
9202
9203 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9204
9205         * ginclude/stdarg.h: Test __cplusplus instead of
9206         __GXX_EXPERIMENTAL_CXX0X__.
9207
9208 2016-01-29  Richard Biener  <rguenther@suse.de>
9209
9210         PR tree-optimization/69547
9211         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9212         Do not mark clobbers necessary.
9213         (mark_all_reaching_defs_necessary_1): Likewise.
9214
9215 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9216
9217         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9218         declaration name with %qs and print it in both error messages.
9219         Also fix indentation.
9220
9221 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9222
9223         PR other/69006
9224         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9225         trailing blank line from error message.
9226
9227 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9228
9229         PR c++/69462
9230         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9231         for C++-11.
9232
9233 2016-01-29  Richard Biener  <rguenther@suse.de>
9234
9235         PR middle-end/69537
9236         * match.pd: Allow all integral types when simplifying a
9237         widening or sign-changing conversion.
9238
9239 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9240
9241         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9242         back to setting codegen_error to fail codegen.
9243
9244 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9245
9246         PR target/69459
9247         * config/i386/constraints.md (C): Only accept constant zero operand.
9248         (BC): New constraint.
9249         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9250         instead of C constraint.
9251         * doc/md.texi (Machine Constraints): Update description
9252         of C constraint.
9253
9254 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9255
9256         PR target/68400
9257         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9258
9259 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9260
9261         PR middle-end/69542
9262         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9263         non-debug insns.
9264
9265 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9266
9267         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9268         branches if using guessed profile.
9269
9270 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9271
9272         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9273
9274 2016-01-28  Richard Henderson  <rth@redhat.com>
9275
9276         PR target/69305
9277         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9278         * config/aarch64/aarch64-protos.h: Update.
9279         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9280         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9281         (aarch64_get_condition_code_1): Handle CC_Cmode.
9282         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9283         (*add<mode>3_compareC_cconly_imm): New.
9284         (*add<mode>3_compareC_cconly): New.
9285         (*add<mode>3_compareC_imm): New.
9286         (add<mode>3_compareC): New.
9287         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9288         to be first.  Use aarch64_carry_operation.
9289         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9290         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9291         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9292         (subti3): Use subdi3_compare1.
9293         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9294         (sub<mode>3_compare1): New.
9295         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9296         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9297         (*subsi3_carryin_uxtw): Likewise.
9298         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9299         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9300         * config/aarch64/iterators.md (DWI): New.
9301         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9302         (aarch64_borrow_operation): New.
9303
9304 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9305
9306         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9307         message when isl does not return a valid schedule.
9308
9309 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9310
9311         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9312         Remove comments from class declarations: they are already in the code
9313         close by the defs.
9314
9315 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9316
9317         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9318         codegen_error_p.
9319         (ternary_op_to_tree): Same.
9320         (unary_op_to_tree): Same.
9321         (nary_op_to_tree): Same.
9322         (gcc_expression_from_isl_expr_op): Same.
9323         (gcc_expression_from_isl_expression): Same.
9324         (graphite_create_new_loop): Same.
9325         (graphite_create_new_loop_guard): Same.
9326         (build_iv_mapping): Same.
9327         (graphite_create_new_guard): Same.
9328         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9329         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9330
9331 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9332
9333         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9334         instead of setting codegen_error to fail codegen.
9335
9336 2016-01-28  Jason Merrill  <jason@redhat.com>
9337
9338         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9339
9340 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9341
9342         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9343         Remove CONST_INT_P check in CCMP cost calculation.
9344
9345 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9346
9347         * config/aarch64/aarch64.c (generic_vector_cost):
9348         Set vec_permute_cost.
9349         (cortexa57_vector_cost): Likewise.
9350         (exynosm1_vector_cost): Likewise.
9351         (xgene1_vector_cost): Likewise.
9352         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9353         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9354         Add vec_permute_cost entry.
9355
9356 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9357
9358         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9359         immediate as %1.
9360         (add<mode>3_compare0): Likewise.
9361         (addsi3_compare0_uxtw): Likewise.
9362         (add<mode>3nr_compare0): Likewise.
9363         (compare_neg<mode>): Likewise.
9364         (<optab><mode>3): Likewise.
9365
9366 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9367
9368         * tree-vect-stmts.c (vectorizable_comparison): Add
9369         NULL check for vectype.
9370
9371 2016-01-28  Richard Biener  <rguenther@suse.de>
9372
9373         PR tree-optimization/69466
9374         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9375         Account for PHIs we couldn't duplicate.
9376
9377 2016-01-28  Martin Liska  <mliska@suse.cz>
9378
9379         PR pch/68758
9380         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9381         instead of ENABLE_VALGRIND_CHECKING.
9382
9383 2016-01-27  Richard Henderson  <rth@redhat.com>
9384
9385         PR rtl-opt/69447
9386         * lra-remat.c (subreg_regs): New.
9387         (dump_candidates_and_remat_bb_data): Dump it.
9388         (operand_to_remat): Reject if operand in subreg_regs.
9389         (set_bb_regs): Collect subreg_regs.
9390         (lra_remat): Init and free subreg_regs.  Compute
9391         calculate_local_reg_remat_bb_data before create_cands.
9392
9393 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9394
9395         PR target/68986
9396         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9397         change stack_alignment_needed for __tls_get_addr call.
9398
9399 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9400
9401         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9402
9403 2016-01-27  Jeff Law  <law@redhat.com>
9404
9405         PR tree-optimization/68398
9406         PR tree-optimization/69196
9407         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9408         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9409         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9410         Only count PHIs in the last block in the path.  The others will
9411         const/copy propagate away.  Add heuristic to allow more irreducible
9412         subloops to be created when it is likely profitable to do so.
9413
9414         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9415         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9416         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9417
9418 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9419
9420         PR lto/69254
9421         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9422         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9423         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9424         * tree-streamer-in.c: Include asan.h.
9425         (streamer_get_builtin_tree): For builtins in sanitizer
9426         range call initialize_sanitizer_builtins and retry.
9427
9428 2016-01-27  Ian Lance Taylor  <iant@google.com>
9429
9430         * common.opt (fkeep-gc-roots-live): New undocumented option.
9431         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9432         -fkeep-gc-roots-live, skip pointers.
9433         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9434         NULL.
9435
9436 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9437
9438         PR target/69512
9439         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9440         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9441
9442 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9443
9444         PR target/68380
9445         * configure.ac: NetBSD provides SSP in its C library.
9446         * configure: Updated.
9447
9448 2016-01-27  Richard Biener  <rguenther@suse.de>
9449
9450         PR tree-optimization/69166
9451         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9452         reduction code for commutativity / associativity.
9453
9454 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9455
9456         PR tree-optimization/69355
9457         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9458         total_scalarization fails.
9459
9460 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9461
9462         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9463         power9.
9464
9465 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9466
9467         PR target/69245
9468         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9469         Move arm_reset_previous_fndecl and set_target_option_current_node in
9470         the conditional part.  Call save_restore_target_globals.
9471         * config/arm/arm.c (arm_set_current_function):
9472         Refactor to better support #pragma target and attribute mix.
9473         Call save_restore_target_globals.
9474         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9475
9476 2016-01-27  Martin Liska  <mliska@suse.cz>
9477
9478         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9479         reference for an HSA kernel and its host function.
9480
9481 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9482
9483         PR tree-optimization/69399
9484         * wide-int.h (wi::lrshift): For larger precisions, only
9485         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9486
9487 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9488
9489         * config/arc/predicates.md (proper_comparison_operator): Reject
9490         constant-constant comparison.
9491
9492 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9493
9494         PR tree-optimization/69110
9495         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9496         DR_NUM_DIMENSIONS == 0.
9497
9498 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9499             Sebastian Pop  <s.pop@samsung.com>
9500
9501         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9502         isl_ast_op_cond and isl_ast_op_select.
9503         (gcc_expression_from_isl_expr_op): Same.
9504
9505 2016-01-26  Jason Merrill  <jason@redhat.com>
9506
9507         PR c++/68782
9508         * tree.c (recompute_constructor_flags): Split out from
9509         build_constructor.
9510         (verify_constructor_flags): New.
9511         * tree.h: Declare them.
9512
9513 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9514
9515         PR rtl-optimization/69217
9516         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9517         are no TYPE_FIELDS set for the record type.
9518
9519 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9520
9521         PR target/68662
9522         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9523         toc_label_name unconditionally.
9524         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9525         SYMBOL_REF string.  Use toc_label_name instead of constructing
9526         LCTOC1.
9527         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9528         constructing LCTOC1.
9529
9530 2016-01-26  Martin Sebor  <msebor@redhat.com>
9531
9532         PR other/69477
9533         * doc/extend.texi (Common Type Attributes): Move text that talks about
9534         attribute packed from attribute aligned to the section discussing
9535         the former attribute for clarity.
9536
9537 2016-01-26  Richard Henderson  <rth@redhat.com>
9538
9539         PR middle-end/60908
9540         * trans-mem.c (tm_region_init): Mark entry block as visited.
9541
9542 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9543
9544         PR other/69006
9545         * diagnostic-show-locus.c (layout::print_source_line): Replace
9546         call to pp_newline with call to layout::print_newline.
9547         (layout::print_annotation_line): Likewise.
9548         (layout::move_to_column): Likewise.
9549         (layout::print_any_fixits): After printing any fixits, print a
9550         trailing newline, if necessary.
9551         (layout::print_newline): New method, resetting any colorization
9552         before a newline.
9553         (diagnostic_show_locus): Move the pp_newline to before the
9554         early bailout.  Remove dummy block enclosing the layout instance.
9555         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9556         of pp_newline_and_flush with pp_flush.
9557         (diagnostic_append_note): Delete use of pp_newline.
9558         (diagnostic_append_note_at_rich_loc): Delete.
9559         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9560         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9561         when newline characters are added to the buffer.
9562
9563 2016-01-26  Michael Matz  <matz@suse.de>
9564
9565         * configure.ac (ac_cv_std_swap_in_utility): New test.
9566         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9567         * configure: Regenerate.
9568         * config.in: Regenerate.
9569
9570 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9571
9572         * config/arc/arc.md (cstoresi4): Force operand into register.
9573         (arcset<code>): Fix predicate.
9574         (arcsetltu): Likewise.
9575         (arcsetgeu): Likewise.
9576         (arcsethi): Likewise.
9577         (arcsetls): Likewise.
9578
9579 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9580
9581         PR tree-optimization/69483
9582         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9583         if base has error_mark_node type.
9584
9585 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9586
9587         PR target/68620
9588         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9589         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9590         New helper macros.
9591         (vget_lane_f16): Handle big-endian.
9592         (vgetq_lane_f16): Likewise.
9593         (vset_lane_f16): Likewise.
9594         (vsetq_lane_f16): Likewise.
9595         * config/arm/iterators.md (VQXMOV): Add V8HF.
9596         (VDQ): Add V4HF and V8HF.
9597         (V_reg): Handle V4HF and V8HF.
9598         (Is_float_mode): Likewise.
9599         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9600         neon_vdup_nv8hf): New patterns.
9601         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9602         Use VD_LANE iterator.
9603         (neon_vld1_dup<mode>): Use VQ2 iterator.
9604
9605 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9606
9607         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9608         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9609         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9610         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9611         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9612         (oacc_validate_dims): Add LEVEL arg, don't return level.
9613         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9614         oacc_validate_dims.
9615         (execute_oacc_device_lower): Adjust, add more dump output.
9616         * tree-ssa-loop.c (gate_oacc_kernels): Use
9617         oacc_fn_attrib_kernels_p.
9618         * tree-parloops.c (create_parallel_loop): Adjust
9619         set_oacc_fn_attrib call.
9620
9621 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9622
9623         PR lto/69254
9624         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9625         (append_compiler_options): Handle -fcilkplus.
9626         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9627
9628 2016-01-26  Nick Clifton  <nickc@redhat.com>
9629
9630         PR target/66655
9631         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9632         been marked as DECL_ONE_ONLY but we do not the means to make it
9633         so, then do not allow it to bind locally.
9634
9635 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9636
9637         PR lto/69254
9638         * opts.h (parse_sanitizer_options): New prototype.
9639         * opts.c (sanitizer_opts): New array.
9640         (parse_sanitizer_options): New function.
9641         (common_handle_option): Use parse_sanitizer_options.
9642
9643 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9644
9645         PR target/68986
9646         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9647         alignment adjustment to ...
9648         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9649         __tls_get_addr.
9650         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9651         if __tls_get_addr is called.
9652
9653 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9654
9655         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9656
9657 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9658
9659         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9660
9661 2016-01-26  Richard Biener  <rguenther@suse.de>
9662
9663         PR middle-end/69467
9664         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9665
9666 2016-01-26  Richard Biener  <rguenther@suse.de>
9667
9668         PR tree-optimization/69452
9669         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9670         (move_computations_dom_walker::before_dom_children): Rename
9671         to ...
9672         (move_computations_worker): This.
9673         (move_computations): Perform an RPO rather than a DOM walk.
9674
9675 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9676
9677         PR target/69442
9678         * combine.c (combine_instructions): For REG_EQUAL note with
9679         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9680         to the underlying register.
9681         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9682         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9683
9684 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9685
9686         PR target/67896
9687         * config/aarch64/aarch64-builtins.c
9688         (aarch64_init_simd_builtin_types): Do not set structural
9689         equality to __Poly{8,16,64,128}_t types.
9690
9691 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9692
9693         PR tree-optimization/69400
9694         * wide-int.cc (wi_pack): Take the precision as argument and
9695         perform canonicalization here rather than in the callers.
9696         Use the main loop to handle all full-width HWIs.  Add a
9697         zero HWI if in_len isn't a full result.
9698         (wi::divmod_internal): Update accordingly.
9699         (wi::mul_internal): Likewise.  Simplify.
9700
9701 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9702             Sebastian Pop  <s.pop@samsung.com>
9703
9704         * graphite-poly.c (apply_poly_transforms): Simplify.
9705         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9706         (print_isl_map): Same.
9707         (print_isl_union_map): Same.
9708         (print_isl_schedule): New.
9709         (debug_isl_schedule): New.
9710         * graphite-dependences.c (scop_get_reads): Do not call
9711         isl_union_map_add_map that is undocumented isl functionality.
9712         (scop_get_must_writes): Same.
9713         (scop_get_may_writes): Same.
9714         (scop_get_original_schedule): Remove.
9715         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9716         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9717         (compute_deps): Remove.
9718         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9719         (debug_schedule_ast): New.
9720         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9721         set_separate_option.
9722         (graphite_regenerate_ast_isl): Add dump.
9723         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9724         from scop->transformed_schedule.
9725         (graphite_regenerate_ast_isl): Add more dump.
9726         * graphite-optimize-isl.c (optimize_isl): Set
9727         scop->transformed_schedule.  Check whether schedules are equal.
9728         (apply_poly_transforms): Move here.
9729         * graphite-poly.c (apply_poly_transforms): ... from here.
9730         (free_poly_bb): Static.
9731         (free_scop): Static.
9732         (pbb_number_of_iterations_at_time): Remove.
9733         (print_isl_ast): New.
9734         (debug_isl_ast): New.
9735         (debug_scop_pbb): New.
9736         * graphite-scop-detection.c (print_edge): Move.
9737         (print_sese): Move.
9738         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9739         (build_scop_scattering): Remove.
9740         (create_pw_aff_from_tree): Assert instead of bailing out.
9741         (add_condition_to_pbb): Remove unused code, do not fail.
9742         (add_conditions_to_domain): Same.
9743         (add_conditions_to_constraints): Remove.
9744         (build_scop_context): New.
9745         (add_iter_domain_dimension): New.
9746         (build_iteration_domains): Initialize pbb->iterators.
9747         Call add_conditions_to_domain.
9748         (nested_in): New.
9749         (loop_at): New.
9750         (index_outermost_in_loop): New.
9751         (index_pbb_in_loop): New.
9752         (outermost_pbb_in): New.
9753         (add_in_sequence): New.
9754         (add_outer_projection): New.
9755         (outer_projection_mupa): New.
9756         (add_loop_schedule): New.
9757         (build_schedule_pbb): New.
9758         (build_schedule_loop): New.
9759         (embed_in_surrounding_loops): New.
9760         (build_schedule_loop_nest): New.
9761         (build_original_schedule): New.
9762         (build_poly_scop): Call build_original_schedule.
9763         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9764         (free_poly_dr): Remove.
9765         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9766         (free_poly_bb): Remove.
9767         (debug_loop_vec): Remove.
9768         (print_isl_ast): Declare.
9769         (debug_isl_ast): Declare.
9770         (scop_do_interchange): Remove.
9771         (scop_do_strip_mine): Remove.
9772         (scop_do_block): Remove.
9773         (flatten_all_loops): Remove.
9774         (optimize_isl): Remove.
9775         (pbb_number_of_iterations_at_time): Remove.
9776         (debug_scop_pbb): Declare.
9777         (print_schedule_ast): Declare.
9778         (debug_schedule_ast): Declare.
9779         (struct scop): Remove schedule.  Add original_schedule,
9780         transformed_schedule.
9781         (free_gimple_poly_bb): Remove.
9782         (print_generated_program): Remove.
9783         (debug_generated_program): Remove.
9784         (unify_scattering_dimensions): Remove.
9785         * sese.c (print_edge): ... here.
9786         (print_sese): ... here.
9787         (debug_edge): ... here.
9788         (debug_sese): ... here.
9789         * sese.h (print_edge): Declare.
9790         (print_sese): Declare.
9791         (dump_edge): Declare.
9792         (dump_sese): Declare.
9793
9794 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9795             Sebastian Pop  <s.pop@samsung.com>
9796
9797         * Makefile.in: Set ISLVER in site.exp.
9798
9799 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9800
9801         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9802         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9803         through DECL_VALUE_EXPR for expansion.
9804
9805 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9806
9807         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9808         the frame info after reload completed.
9809
9810 2016-01-25  Jeff Law  <law@redhat.com>
9811
9812         PR tree-optimization/69196
9813         PR tree-optimization/68398
9814         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9815         tree-ssa-threadupdate.c.
9816         (determine_bb_domination_status): Prototype
9817         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9818         (determine_bb_domination_status): No longer static.
9819         (valid_jump_thread_path): Remove code to detect characteristics
9820         of the jump thread path not associated with correctness.
9821         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9822         Correct test for thread path length.  Count PHIs for real operands as
9823         statements that need to be copied.  Do not count ASSERT_EXPRs.
9824         Look at all the blocks in the thread path.  Compute and selectively
9825         filter thread paths based on threading through the latch, threading
9826         a multiway branch or crossing a multiway branch.
9827
9828 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9829
9830         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9831         decl with __attribute__ ((unused)) annotation.
9832
9833 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9834
9835         PR target/69421
9836         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9837         of operands is compatible with a statement vectype.
9838
9839 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9840
9841         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9842         improve wording for mixed storage order support.
9843
9844 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9845
9846         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9847         (vcvt_u64_f64): Likewise.
9848         (vcvta_s64_f64): Likewise.
9849         (vcvta_u64_f64): Likewise.
9850         (vcvtm_s64_f64): Likewise.
9851         (vcvtm_u64_f64): Likewise.
9852         (vcvtn_s64_f64): Likewise.
9853         (vcvtn_u64_f64): Likewise.
9854         (vcvtp_s64_f64): Likewise.
9855         (vcvtp_u64_f64): Likewise.
9856
9857 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9858
9859         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9860         (arc_init): Check validity mll64 option.
9861         (arc_save_restore): Use double load/store instruction.
9862         (arc_expand_movmem): Likewise.
9863         (arc_split_move): Don't split if we have double load/store
9864         instructions. Returns a boolean.
9865         (arc_process_double_reg_moves): Change function to return boolean
9866         instead of a sequence of instructions.
9867         (arc_dwarf_register_span): New function.
9868         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9869         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9870         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9871         (*movdf_insn): Likewise.
9872         * config/arc/arc.opt (mll64): New option.
9873         * config/arc/predicates.md (even_register_operand): New predicate.
9874         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9875
9876 2016-01-25  Richard Biener  <rguenther@suse.de>
9877
9878         PR lto/69393
9879         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9880         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9881         DECL_NAMELESS.
9882         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9883
9884 2016-01-25  Richard Biener  <rguenther@suse.de>
9885
9886         PR tree-optimization/69376
9887         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9888         flag.
9889         (VN_INFO_ANTI_RANGE_P): New inline.
9890         (VN_INFO_RANGE_TYPE): Likewise.
9891         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9892         SSA_NAME_ANTI_RANGE_P.
9893         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9894         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9895         Properly query VN_INFO_RANGE_TYPE.
9896
9897 2016-01-25  Nick Clifton  <nickc@redhat.com>
9898
9899         PR target/66655
9900         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9901
9902 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9903
9904         PR tree-optimization/69426
9905         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9906         removed clobber.
9907
9908 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9909
9910         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9911         "the the" with "the" in the comments.
9912         * ipa-devirt.c (build_type_inheritance_graph,
9913         update_type_inheritance_graph): Likewise.
9914         * tree.c (build_function_type_list_1): Likewise.
9915         * cfgloopmanip.c (scale_loop_profile): Likewise.
9916         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9917         * gimple-ssa-split-paths.c
9918         (find_block_to_duplicate_for_splitting_paths): Likewise.
9919         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9920         * expr.c (convert_move): Likewise.
9921         * var-tracking.c (vt_stack_adjustments): Likewise.
9922         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9923         * tree-vrp.c (test_for_singularity): Likewise.
9924
9925         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9926         directly instead of building a temporary tree.
9927
9928         PR bootstrap/69434
9929         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9930         remove <algorithm> include.
9931
9932 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9933
9934         PR target/69432
9935         * config/i386/i386.c: Include dojump.h.
9936         (expand_small_movmem_or_setmem,
9937         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9938         fixes.
9939         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9940         if dynamic_check != -1.
9941
9942 2016-01-21  Jeff Law  <law@redhat.com>
9943
9944         PR middle-end/69347
9945         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9946         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9947         into dominated_by_p.
9948         (cprop_into_successor_phis): Avoid unnecessary tests.
9949
9950 2016-01-22  Richard Henderson  <rth@redhat.com>
9951
9952         PR target/69416
9953         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9954         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9955
9956 2016-01-22  Michael Matz  <matz@suse.de>
9957
9958         * system.h (string, algorithm): Include only conditionally.
9959         (new): Include always under C++.
9960         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9961         * final.c (toplevel): Ditto.
9962         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9963         * genconditions.c (write_header): Make gencondmd.c define
9964         INCLUDE_STRING.
9965         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9966
9967         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9968         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9969
9970 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9971
9972         PR target/68674
9973         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9974
9975 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9976
9977         PR target/69403
9978         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
9979         define_insn_and_split.  Ensure operands[1] and operands[0] do not
9980         get assigned the same register.
9981
9982 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
9983
9984         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
9985
9986 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9987
9988         * config/arm/arm-c.c (arm_pragma_target_parse):
9989         Remove warn_builtin_macro_redefined overwrite.
9990
9991 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
9992
9993         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
9994         flag_non_call_exceptions compatibility.
9995
9996 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9997
9998         PR debug/66668
9999         * dwarf2out.c (add_child_die_after): New function.
10000         (dwarf_qual_info_t): New type.
10001         (dwarf_qual_info): New variable.
10002         (qualified_die_p): New function.
10003         (modified_type_die): For -fdebug-types-section, ensure
10004         canonical order of qualifiers.  Put qualified DIEs adjacent
10005         to the corresponding non-qualified type DIE and search there
10006         for existing qualified DIEs.
10007
10008 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10009
10010         * doc/extend.texi (scalar_storage_order type attribute): Document
10011         restriction on type punning and aliasing, and remove future tense.
10012
10013 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
10014
10015         PR target/69252
10016         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10017         first stage.
10018
10019 2016-01-21  Jeff Law  <law@redhat.com>
10020
10021         PR middle-end/69347
10022         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
10023         useless call to record_temporary_equivalences.
10024         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
10025         allocate 10 slots in the bb_path vector and let it grow as needed.
10026         (fsm_find_control_statement_thread_paths): Similarly for the next_path
10027         vector.
10028
10029 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10030
10031         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
10032         Detangle.
10033         * configure: Regenerate.
10034
10035 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
10036
10037         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
10038         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
10039
10040 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10041
10042         PR middle-end/66178
10043         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
10044         drop EXPAND_INITIALIZER.
10045         * rtl.h (contains_symbolic_reference_p): Declare.
10046         * rtlanal.c (contains_symbolic_reference_p): New function.
10047         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
10048         a subtraction into a NOT if symbolic constants are involved.
10049
10050 2016-01-21  Anton Blanchard  <anton@samba.org>
10051             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10052
10053         PR target/63354
10054         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
10055         #define.
10056         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
10057         function.
10058
10059 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10060
10061         * config/microblaze/microblaze.c
10062         (get_branch_target): New.
10063         (insert_wic_for_ilb_runout): New.
10064         (insert_wic): New.
10065         (microblaze_machine_dependent_reorg): New.
10066         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
10067         * config/microblaze/microblaze.md
10068         (UNSPEC_IPREFETCH): Define.
10069         (iprefetch): New pattern
10070         * config/microblaze/microblaze.opt
10071         (mxl-prefetch): New flag.
10072
10073 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10074
10075         * config/microblaze/microblaze.h
10076         (FIXED_REGISTERS): Update in macro.
10077         (CALL_USED_REGISTERS): Update in macro.
10078
10079 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
10080
10081         PR rtl-optimization/68920
10082         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
10083         moves.
10084
10085 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10086
10087         PR rtl-optimization/68990
10088         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
10089         pseudo instead of inheritance ones.
10090
10091 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10092             Nick Clifton  <nickc@redhat.com>
10093
10094         PR target/69129
10095         PR target/69012
10096         * config/mips/mips.c (mips_compute_frame_info): Initialise
10097         args_size and hard_frame_pointer_offset fields of the frame
10098         structure before calling mips_global_pointer.
10099
10100 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10101
10102         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
10103         label reference.
10104         * configure: Regenerate.
10105
10106 2016-01-21  Richard Biener  <rguenther@suse.de>
10107
10108         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
10109
10110 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10111
10112         * config/s390/s390.c (s390_asm_declare_function_size): Add code
10113         to actually emit the .size directive.
10114
10115 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
10116              Jakub Jelinek  <jakub@redhat.com>
10117
10118         PR target/69187
10119         PR target/65624
10120         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
10121         args array size by one to avoid buffer overflow.
10122
10123 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10124
10125         * config/s390/s390.md (pool_section_start): Use switch_to_section
10126         to select proper read-only data section instead of hardcoding
10127         .rodata.
10128         (pool_section_end): Use switch_to_section to match the above.
10129
10130 2016-01-21  Richard Biener  <rguenther@suse.de>
10131
10132         PR tree-optimization/69378
10133         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
10134         (set_ssa_val_to): Use it for dominance checks taking into
10135         account not executable edges.
10136
10137 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10138
10139         PR c++/69355
10140         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
10141         for bitsize instead of GET_MODE_PRECISION (mode).
10142
10143 2016-01-20  Martin Sebor  <msebor@redhat.com>
10144
10145         PR c/52291
10146         * extend.texi (__sync Builtins): Clarify the semantics of
10147         __sync_fetch_and_OP built-ins on pointers.
10148         (__atomic Builtins): Same.
10149
10150 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10151             Sebastian Pop  <s.pop@samsung.com>
10152
10153         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
10154         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
10155         (is_valid_rename): Same.
10156         (translate_isl_ast_to_gimple::get_rename): Same.
10157         (translate_isl_ast_to_gimple::rename_all_uses): Same.
10158         (translate_isl_ast_to_gimple::rename_uses): Same.
10159         (get_new_name): Check for close_phi nodes.
10160         (copy_loop_phi_args): Use phi_node_kind.
10161         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10162         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10163
10164 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10165             Sebastian Pop  <s.pop@samsung.com>
10166
10167         Revert commit r229783.
10168         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10169         Remove use of parameter_rename_map.
10170         (copy_def): Remove.
10171         (copy_internal_parameters): Remove.
10172         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10173         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10174         (free_sese_info): Do not free parameter_rename_map.
10175         (set_rename): Do not use parameter_rename_map.
10176         (rename_uses): Update call to set_rename.
10177         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10178         * sese.h (parameter_rename_map_t): Remove.
10179         (struct sese_info_t): Remove field parameter_rename_map.
10180
10181 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10182             Sebastian Pop  <s.pop@samsung.com>
10183
10184         * graphite-isl-ast-to-gimple.c: Fix comment.
10185         * graphite-scop-detection.c (defined_in_loop_p): New.
10186         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10187         names defined in loop.
10188
10189 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10190             Sebastian Pop  <s.pop@samsung.com>
10191
10192         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10193         Discard unstructured if-then-else regions.
10194
10195 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10196             Sebastian Pop  <s.pop@samsung.com>
10197
10198         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10199         (cleanup_loop_iter_dom): Remove.
10200         (build_loop_iteration_domains): Remove.
10201         (build_scop_context): Remove.
10202         (build_scop_iteration_domain): Remove.
10203         (add_loop_constraints): New.
10204         (build_iteration_domains): New.
10205         (build_poly_scop): Call build_iteration_domains.
10206
10207 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10208             Sebastian Pop  <s.pop@samsung.com>
10209
10210         * graphite-scop-detection.c
10211         (scop_detection::harmful_loop_in_region): Free dom and loops.
10212         (scop_detection::loop_body_is_valid_scop): Free bbs.
10213
10214 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10215             Sebastian Pop  <s.pop@samsung.com>
10216
10217         * graphite-scop-detection.c (record_loop_in_sese): New.
10218         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10219         (build_scops): Remove call to build_sese_loop_nests.
10220         * sese.c (sese_record_loop): Remove.
10221         (build_sese_loop_nests): Remove.
10222         (new_sese_info): Remove region->loops.
10223         (free_sese_info): Same.
10224         * sese.h (sese_contains_loop): Same.
10225         (build_sese_loop_nests): Remove.
10226         (sese_contains_loop): Remove.
10227
10228 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10229             Sebastian Pop  <s.pop@samsung.com>
10230
10231         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10232         loop_is_valid_in_scop.
10233         (scop_detection::harmful_stmt_in_region): Renamed
10234         harmful_loop_in_region.
10235         Call loop_is_valid_in_scop.
10236
10237 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10238             Sebastian Pop  <s.pop@samsung.com>
10239
10240         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10241         isl_ast_node_mark.
10242
10243 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10244             Sebastian Pop  <s.pop@samsung.com>
10245
10246         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10247         * graphite.h (struct poly_bb): Remove field is_reduction.
10248         (PBB_IS_REDUCTION): Remove.
10249
10250 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10251             Sebastian Pop  <s.pop@samsung.com>
10252
10253         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10254         (add_pdr_constraints): Same.
10255         (scop_get_reads): Same.
10256         (scop_get_must_writes): Same.
10257         (scop_get_may_writes): Same.
10258         (scop_get_original_schedule): Same.
10259         (extend_schedule): Same.
10260         (apply_schedule_on_deps): Same.
10261         (carries_deps): Same.
10262         (compute_deps): Same.
10263         (scop_get_dependences): Same.
10264         * graphite-isl-ast-to-gimple.c
10265         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10266         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10267         (get_schedule_for_band_list): Same.
10268         (get_schedule_map): Same.
10269         (apply_schedule_map_to_scop): Same.
10270         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10271         (build_loop_iteration_domains): Same.
10272         (add_condition_to_pbb): Same.
10273         (add_param_constraints): Same.
10274         (pdr_add_memory_accesses): Same.
10275         (pdr_add_data_dimensions): Same.
10276
10277 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10278
10279         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10280         requirements.
10281
10282 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10283
10284         * common.opt (feliminate-dwarf2-dups): Replace references to
10285         "DWARF 2" with just "DWARF".
10286         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10287         * doc/extend.texi: Likewise.
10288         * doc/cpp.texi: Likewise.
10289         * doc/invoke.texi: Likewise.
10290         (Option Summary): Add -gdwarf to list of Debugging Options.
10291         (Debugging Options): Document -gdwarf.
10292         * doc/contrib.texi: Spell "DWARF" like that.
10293
10294 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10295
10296         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10297         warning.  Fix up formatting.
10298
10299         PR middle-end/67653
10300         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10301         attempt to mark memory input operand addressable and
10302         call prepare_gimple_addressable in that case.  Don't adjust
10303         input_location for diagnostics, use error_at instead.
10304
10305 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10306
10307         * config/rs6000/ppc-auxv.h: New file.
10308         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10309         (cpu_is): Likewise.
10310         (cpu_supports): Likewise.
10311         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10312         (cpu_is_info): New variable.
10313         (cpu_supports_info): Likewise.
10314         (tcb_verification_symbol): Likewise.
10315         (cpu_builtin_p): Likewise.
10316         (cpu_expand_builtin): New function.
10317         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10318         (rs6000_init_builtins): Likewise.
10319         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10320         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10321         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10322         * configure: Regenerate.
10323         * config.in: Likewise.
10324         * doc/extend.texi (PowerPC Built-in Functions): Document
10325         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10326
10327 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10328
10329         PR target/68609
10330         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10331         domain check.
10332         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10333         for V4SFmode.
10334
10335 2016-01-20  Richard Henderson  <rth@redhat.com>
10336
10337         PR bootstrap/69343
10338         PR bootstrap/69339
10339         PR tree-opt/68964
10340         Revert:
10341         * tree.c (tm_define_builtin): New.
10342         (find_tm_vector_type): New.
10343         (build_tm_vector_builtins): New.
10344         (build_common_builtin_nodes): Call it.
10345
10346 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10347
10348         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10349         (arm_fp_ok): Likewise.
10350         (arm_fp): Likewise.
10351         (arm_crypto): Likewise.
10352
10353 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10354             Richard Biener  <rguenther@suse.de>
10355
10356         PR tree-optimization/69328
10357         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10358         vectors have same number of elements.
10359         (vectorizable_condition): Fix masked version recognition.
10360
10361 2016-01-20  Richard Biener  <rguenther@suse.de>
10362
10363         PR tree-optimization/69345
10364         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10365         (VN_INFO_PTR_INFO): Likewise.
10366         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10367         info when it is equal between non-dominating SSA names.
10368         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10369         Make sure to look at original SSA infos.
10370
10371 2016-01-20  Jeff Law  <law@redhat.com>
10372
10373         PR target/25114
10374         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10375         extracted from ...
10376         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10377         (pc_or_label_operand): New predicate.
10378         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10379         tests for small integers that are 2^n - 1.
10380
10381 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10382
10383         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10384
10385 2016-01-19  Jeff Law  <law@redhat.com>
10386
10387         PR middle-end/69347
10388         * tree-ssa-threadbackwards.c
10389         (fsm_find_control_statement_thread_paths): Do not try to lookup
10390         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10391
10392 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10393
10394         * doc/lto.texi: Remove text that says only Gold has linker plugin
10395         support.
10396
10397 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10398
10399         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10400         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10401         the DIE accordingly.
10402         (modified_type_die): Add REVERSE parameter and pass it recursively,
10403         as well as to base_type_die.  Adjust presence check accordingly.
10404         (base_type_for_mode): Adjust call to modified_type_die.
10405         (add_type_attribute): Add REVERSE parameter and pass it to
10406         modified_type_die.
10407         (generic_parameter_die): Adjust call to add_type_attribute.
10408         (add_scalar_info): Likewise.
10409         (add_subscript_info): Likewise.
10410         (gen_array_type_die): Likewise.
10411         (gen_descr_array_type_die): Likewise.
10412         (gen_entry_point_die): Likewise.
10413         (gen_enumeration_type_die): Likewise.
10414         (gen_formal_parameter_die): Likewise.
10415         (gen_subprogram_die): Likewise.
10416         (gen_variable_die ): Likewise.
10417         (gen_const_die): Likewise.
10418         (gen_field_die): Likewise.
10419         (gen_pointer_type_die): Likewise.
10420         (gen_reference_type_die): Likewise.
10421         (gen_ptr_to_mbr_type_die): Likewise.
10422         (gen_inheritance_die): Likewise.
10423         (gen_subroutine_type_die): Likewise.
10424         (gen_typedef_die): Likewise.
10425         (force_type_die): Adjust call to modified_type_die.
10426
10427 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10428
10429         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10430         flow throughout the file.  Fix broken link to Objective-C 2.0
10431         documentation.
10432         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10433         errors.
10434
10435 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10436
10437         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10438
10439 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10440
10441         PR ipa/66223
10442         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10443         (maybe_record_node): Record cxa_pure_virtual as the only possible
10444         target if there are not ohter candidates.
10445         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10446
10447 2016-01-19  Richard Biener  <rguenther@suse.de>
10448
10449         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10450         (get_memory_order): Likewise.
10451
10452 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10453
10454         * tree-vect-stmts.c (vectorizable_store): Check
10455         rhs vectype.
10456
10457 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10458
10459         PR jit/68446
10460         * gcc.c (driver::decode_argv): Add call to
10461         init_opts_obstack before init_options_struct.
10462         * opts.c (init_opts_obstack): Remove idempotency.
10463         (init_options_struct): Replace call to init_opts_obstack
10464         with a gcc_assert to verify that it has already been called.
10465         * toplev.c (toplev::main): Add call to init_opts_obstack before
10466         calls to init_options_struct.
10467         (toplev::finalize): Move cleanup of opts_obstack next to
10468         cleanup of save_decoded_options, clearing the latter, and
10469         save_decoded_options_count.
10470
10471 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10472
10473         PR target/69135
10474         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10475         attribute to unconditional.  Remove %? from output template.
10476
10477 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10478             Jiong Wang  <jiong.wang@arm.com>
10479
10480         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10481         generated from different expand order.
10482
10483 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10484
10485         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10486         Add support for CCMP costing.
10487
10488 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10489
10490         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10491         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10492         (fccmpe<mode>): Likewise.
10493         (fcmp): Rename to fcmp and globalize pattern.
10494         (fcmpe): Likewise.
10495         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10496         (aarch64_gen_ccmp_next): Add FP support.
10497
10498 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10499
10500         * target.def (gen_ccmp_first): Update documentation.
10501         (gen_ccmp_next): Likewise.
10502         * doc/tm.texi (gen_ccmp_first): Update documentation.
10503         (gen_ccmp_next): Likewise.
10504         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10505         expand_ccmp_expr_1.  Improve comments.
10506         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10507         (ccmp_ior<mode>): Remove pattern.
10508         (cmp<mode>): Remove expand.
10509         (cmp): Globalize pattern.
10510         (cstorecc4): Use cc_register.
10511         (mov<mode>cc): Remove ccmp_cc_register check.
10512         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10513         Simplify after removal of CC_DNE/* modes.
10514         (aarch64_ccmp_mode_to_code): Remove.
10515         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10516         In 'k' case use integer as condition.
10517         (aarch64_nzcv_codes): Remove inverted cases.
10518         (aarch64_code_to_ccmode): Remove.
10519         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10520         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10521         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10522         pattern.  Return the comparison with CC register.  Invert conditions
10523         when bitcode is OR.
10524         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10525         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10526
10527 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10528
10529         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10530         instrumented_version.
10531
10532 2016-01-19  Richard Biener  <rguenther@suse.de>
10533
10534         PR tree-optimization/69336
10535         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10536         handled components with get_ref_base_and_extent.
10537         (equal_mem_array_ref_p): Adjust.
10538
10539 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10540
10541         PR debug/65779
10542         * shrink-wrap.c: Include valtrack.h.
10543         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10544         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10545         in between insn and where it will be moved to.  Call
10546         dead_debug_insert_temp.
10547         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10548         first and dead_debug_local_finish at the end.
10549         For uses and defs bitmap, handle all regs in between REGNO and
10550         END_REGNO, not just the first one.
10551
10552 2016-01-19  Richard Biener  <rguenther@suse.de>
10553
10554         PR tree-optimization/69352
10555         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10556         (equal_mem_array_ref_p): Constrain size and max size properly.
10557         Compare the reverse flag.
10558
10559 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10560
10561         * ira.c (ira): Update regstat data if we deleted insns.
10562
10563 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10564
10565         PR rtl-optimization/68955
10566         PR rtl-optimization/64557
10567         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10568         here.  Fix up formatting.
10569         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10570
10571 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10572
10573         PR lto/69133
10574         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10575         assume that the node has body.
10576         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10577         check.
10578
10579 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10580
10581         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10582         thunks.
10583
10584 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10585
10586         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10587         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10588
10589 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10590             Martin Liska  <mliska@suse.cz>
10591             Michael Matz  <matz@suse.de>
10592
10593         * Makefile.in (OBJS): Add new source files.
10594         (GTFILES): Add hsa.c.
10595         * common.opt (disable_hsa): New variable.
10596         (-Whsa): New warning.
10597         * config.in (ENABLE_HSA): New.
10598         * configure.ac: Treat hsa differently from other accelerators.
10599         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10600         $enable_offloading.
10601         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10602         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10603         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10604         --with-hsa-kmt-lib.
10605         * doc/invoke.texi (-Whsa): Document.
10606         (hsa-gen-debug-stores): Likewise.
10607         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10608         to invoke offload compiler for hsa acclerator.
10609         * opts.c (common_handle_option): Determine whether HSA offloading
10610         should be performed.
10611         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10612         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10613         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10614         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10615         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10616         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10617         GF_OMP_FOR_KIND_GRID_LOOP.
10618         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10619         (pp_gimple_stmt_1): Likewise.
10620         * gimple-walk.c (walk_gimple_stmt): Likewise.
10621         * gimple.c (gimple_build_omp_grid_body): New function.
10622         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10623         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10624         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10625         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10626         GF_OMP_TEAMS_GRID_PHONY.
10627         (gimple_statement_omp_single_layout): Updated comments.
10628         (gimple_build_omp_grid_body): New function.
10629         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10630         (gimple_omp_for_grid_phony): New function.
10631         (gimple_omp_for_set_grid_phony): Likewise.
10632         (gimple_omp_parallel_grid_phony): Likewise.
10633         (gimple_omp_parallel_set_grid_phony): Likewise.
10634         (gimple_omp_teams_grid_phony): Likewise.
10635         (gimple_omp_teams_set_grid_phony): Likewise.
10636         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10637         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10638         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10639         (BUILT_IN_GOMP_TARGET): Updated type.
10640         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10641         (adjust_for_condition): New function.
10642         (get_omp_for_step_from_incr): Likewise.
10643         (extract_omp_for_data): Moved parts to adjust_for_condition and
10644         get_omp_for_step_from_incr.
10645         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10646         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10647         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10648         (scan_omp_parallel): Do not create child functions for phony
10649         constructs.
10650         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10651         (scan_omp_1_op): Checking assert we are not remapping to
10652         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10653         (parallel_needs_hsa_kernel_p): New function.
10654         (expand_parallel_call): Register apprpriate parallel child
10655         functions as HSA kernels.
10656         (grid_launch_attributes_trees): New type.
10657         (grid_attr_trees): New variable.
10658         (grid_create_kernel_launch_attr_types): New function.
10659         (grid_insert_store_range_dim): Likewise.
10660         (grid_get_kernel_launch_attributes): Likewise.
10661         (get_target_argument_identifier_1): Likewise.
10662         (get_target_argument_identifier): Likewise.
10663         (get_target_argument_value): Likewise.
10664         (push_target_argument_according_to_value): Likewise.
10665         (get_target_arguments): Likewise.
10666         (expand_omp_target): Call get_target_arguments instead of looking
10667         up for teams and thread limit.
10668         (grid_expand_omp_for_loop): New function.
10669         (grid_arg_decl_map): New type.
10670         (grid_remap_kernel_arg_accesses): New function.
10671         (grid_expand_target_kernel_body): New function.
10672         (expand_omp): Call it.
10673         (lower_omp_for): Do not emit phony constructs.
10674         (lower_omp_taskreg): Do not emit phony constructs but create for them
10675         a temporary variable receiver_decl.
10676         (lower_omp_taskreg): Do not emit phony constructs.
10677         (lower_omp_teams): Likewise.
10678         (lower_omp_grid_body): New function.
10679         (lower_omp_1): Call it.
10680         (grid_reg_assignment_to_local_var_p): New function.
10681         (grid_seq_only_contains_local_assignments): Likewise.
10682         (grid_find_single_omp_among_assignments_1): Likewise.
10683         (grid_find_single_omp_among_assignments): Likewise.
10684         (grid_find_ungridifiable_statement): Likewise.
10685         (grid_target_follows_gridifiable_pattern): Likewise.
10686         (grid_remap_prebody_decls): Likewise.
10687         (grid_copy_leading_local_assignments): Likewise.
10688         (grid_process_kernel_body_copy): Likewise.
10689         (grid_attempt_target_gridification): Likewise.
10690         (grid_gridify_all_targets_stmt): Likewise.
10691         (grid_gridify_all_targets): Likewise.
10692         (execute_lower_omp): Call grid_gridify_all_targets.
10693         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10694         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10695         (tree_omp_clause): Added union field dimension.
10696         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10697         * tree.c (omp_clause_num_ops): Added number of arguments of
10698         OMP_CLAUSE__GRIDDIM_.
10699         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10700         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10701         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10702         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10703         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10704         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10705         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10706         * tree-pass.h (make_pass_gen_hsail): Declare.
10707         (make_pass_ipa_hsa): Likewise.
10708         * ipa-hsa.c: New file.
10709         * lto-section-in.c (lto_section_name): Add hsa section name.
10710         * lto-streamer.h (lto_section_type): Add hsa section.
10711         * timevar.def (TV_IPA_HSA): New.
10712         * hsa-brig-format.h: New file.
10713         * hsa-brig.c: New file.
10714         * hsa-dump.c: Likewise.
10715         * hsa-gen.c: Likewise.
10716         * hsa.c: Likewise.
10717         * hsa.h: Likewise.
10718         * toplev.c (compile_file): Call hsa_output_brig.
10719         * hsa-regalloc.c: New file.
10720
10721 2016-01-18  Jeff Law  <law@redhat.com>
10722
10723         PR tree-optimization/69320
10724         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10725         ranged object, do nothing if the RHS constant is not [0..1].
10726         (optimize_stmt): Comparing a boolean ranged object against a
10727         constant outside [0..1] results in a compile-time constant.
10728
10729         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10730         test.
10731
10732 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10733
10734         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10735         (Option Summary): Update to reflect new section and moved options.
10736         (C++ Dialect Options): Move -fstats to new section.
10737         (Debugging Options): Move all dump, statistics, and other GCC
10738         developer options to new section.  Rewrite section introduction
10739         and re-order remaining options to put the more basic ones first.
10740         (Optimization Options): Move -fira-verbose and -flto-report* to
10741         new section.
10742         (Developer Options): New section incorporating moved options.
10743         * doc/cppopts.texi (-dM): Update cross-reference.
10744
10745 2016-01-18  Richard Henderson  <rth@redhat.com>
10746
10747         PR target/69176
10748         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10749         operands to pseudo only if CSE is expected.  Split long immediate
10750         operands only after reload, and for the stack pointer.
10751         (*add<GPI>3_pluslong): Remove.
10752         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10753         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10754         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10755         (*add<GPI>3 peepholes): New.
10756         (*add<GPI>3 splitters): New.
10757         * config/aarch64/constraints.md (Upl): New.
10758         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10759
10760 2016-01-18  Richard Biener  <rguenther@suse.de>
10761
10762         PR tree-optimization/69297
10763         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10764         stmt at most once.
10765         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10766
10767 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10768
10769         PR middle-end/68542
10770         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10771         of mixind vector and scalar types.
10772         (fold_relational_const): Add handling of vector
10773         comparison with boolean result.
10774         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10775         comparison of vector operands with boolean result for EQ/NE only.
10776         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10777         (verify_gimple_cond): Likewise.
10778         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10779         valid type of VAL.
10780
10781 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10782
10783         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10784         !TARGET_OCTEON.
10785
10786 2016-01-18  Richard Biener  <rguenther@suse.de>
10787
10788         PR middle-end/69308
10789         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10790
10791 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10792
10793         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10794
10795 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10796
10797         * omp-low.c (set_oacc_fn_attrib): Make extern.
10798         * omp-low.h (set_oacc_fn_attrib): Declare.
10799         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10800         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10801         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10802         Add and handle function parameter oacc_kernels_p.
10803         (find_reduc_addr, get_omp_data_i_param): New function.
10804         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10805         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10806         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10807         Calculate dominance info.  Skip loops that are not in a kernels region
10808         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10809         (pass_parallelize_loops::execute): Call parallelize_loops with
10810         oacc_kernels_p argument.
10811         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10812         New member function.
10813         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10814         * passes.def: Add argument to pass_parallelize_loops instantation.
10815
10816 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10817
10818         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10819         pass_parallelize_loops to be run outside the loop pipeline.
10820
10821 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10822
10823         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10824         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10825
10826 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10827
10828         PR target/63679
10829         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10830         using get_ref_base_and_extent.
10831         (equal_mem_array_ref_p): New.
10832         (hashable_expr_equal_p): Add call to previous.
10833
10834 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10835
10836         PR target/63679
10837         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10838         (sra_initialize): Allocate disqualified_constants.
10839         (sra_deinitialize): Free disqualified_constants.
10840         (disqualify_candidate): Update disqualified_constants when appropriate.
10841         (create_access): Scan for constant-pool entries as we go along.
10842         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10843         (maybe_add_sra_candidate): Allow constant-pool entries.
10844         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10845         (initialize_constant_pool_replacements): New.
10846         (sra_modify_assign): Avoid mangling assignments created by previous,
10847         and don't generate writes into constant pool.
10848         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10849
10850 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10851
10852         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10853         andnot instruction.
10854         (scalar_chain::convert_op): Likewise.
10855         * config/i386/i386.md (*andndi3_doubleword): New.
10856
10857 2016-01-18  Richard Biener  <rguenther@suse.de>
10858
10859         PR tree-optimization/69170
10860         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10861         building a vector from scalar results of a pattern stmt.
10862
10863 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10864
10865         * haifa-sched.c (autopref_multipass_init): Work around
10866         -Wmaybe-uninitialized warning.
10867
10868 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10869
10870         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10871         against the constant 0.
10872
10873 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10874
10875         PR tree-optimization/68799
10876         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10877         look up phi candidates in the statement-candidate map.
10878         (phi_add_costs): Likewise.
10879         (record_phi_increments): Likewise.
10880         (phi_incr_cost): Likewise.
10881         (ncd_with_phi): Likewise.
10882         (all_phi_incrs_profitable): Likewise.
10883
10884 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10885
10886         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10887         -Wmaybe-uninitialized warning.
10888
10889 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10890
10891         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10892         (Option Summary): Update to reflect new section and moved options.
10893         (C++ Dialect Options): Move -fvtable-verify and related options.
10894         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10895         and profiling-related options.
10896         (Optimization Options): Move profile generation options and
10897         -fstack-protector and related options.
10898         (Instrumentation Options): New section incorporating moved options.
10899         (Code Generation Options): Move -finstrument-functions and
10900         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10901
10902 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10903
10904         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10905
10906 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10907
10908         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10909
10910 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10911
10912         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10913         that checks whether the table is already empty.  Rename the
10914         original implementation to...
10915         (hash_table::empty_slot): ...this new private function.
10916
10917 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10918
10919         PR diagnostic/68899
10920         * diagnostic-show-locus.c (layout::print_source_line): Move x
10921         offset of line until after call to
10922         get_line_width_without_trailing_whitespace.
10923
10924 2016-01-15  Jeff Law  <law@redhat.com>
10925
10926         PR tree-optimization/69270
10927         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10928         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10929         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10930         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10931         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10932         ssa_name_has_boolean_range and constant_boolean_node.
10933
10934 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10935
10936         PR rtl-optimization/69030
10937         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10938         returning bool.
10939         (spill_pseudos): Delete debug insn for dead pseudo.
10940         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10941
10942 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10943
10944         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10945         New.
10946         (TYPES_UNOPUS): Likewise.
10947         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10948         builtin type, from UNOP to UNOPUS.
10949         (lbtruncuv4sf): Likewise.
10950         (lbtruncuv2df): Likewise.
10951         (lrounduv2sf): Likewise.
10952         (lrounduv4sf): Likewise.
10953         (lrounduv2df): Likewise.
10954         (lroundusf): Likewise.
10955         (lroundusf): Likewise.
10956         (lceiluv2sf): Likewise.
10957         (lceiluv4sf): Likewise.
10958         (lceiluv2df): Likewise.
10959         (lceilusf): Likewise.
10960         (lceiludf): Likewise.
10961         (lflooruv2sf): Likewise.
10962         (lflooruv4sf): Likewise.
10963         (lflooruv2df): Likewise.
10964         (lfloorusf): Likewise.
10965         (lfloorudf): Likewise.
10966         (lfrintnuv2sf): Likewise.
10967         (lfrintnuv4sf): Likewise.
10968         (lfrintnuv2df): Likewise.
10969         (lfrintnusf): Likewise.
10970         (lfrintnudf): Likewise.
10971         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10972         conversion.
10973         (vcvtq_u32_f32): Likewise.
10974         (vcvtq_u64_f64): Likewise.
10975         (vcvta_u32_f32): Likewise.
10976         (vcvtaq_u32_f32): Likewise.
10977         (vcvtaq_u64_f64): Likewise.
10978         (vcvtm_u32_f32): Likewise.
10979         (vcvtmq_u32_f32): Likewise.
10980         (vcvtmq_u64_f64): Likewise.
10981         (vcvtn_u32_f32): Likwise.
10982         (vcvtnq_u32_f32): Likewise.
10983         (vcvtnq_u64_f64): Likewise.
10984         (vcvtp_u32_f32): Likewise.
10985         (vcvtpq_u32_f32): Likewise.
10986         (vcvtpq_u64_f64): Likewise.
10987         (vcvtmd_u64_f64): Likewise.
10988         (vcvtms_u32_f32): Likewise.
10989         (vcvtad_u64_f64): Likewise.
10990         (vcvtas_u32_f32): Likewise.
10991         (vcvtnd_u64_f64): Likewise.
10992         (vcvtns_u32_f32): Likewise.
10993         (vcvtpd_u64_f64): Likewise.
10994         (vcvtps_u32_f32): Likewise.
10995
10996 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10997
10998         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
10999         CSEL of zero_extended registers.
11000
11001 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11002
11003         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11004         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11005
11006 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11007
11008         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11009         false when argument string is not found in the attributes table
11010         at all.
11011
11012 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
11013
11014         PR target/68609
11015         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11016         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11017         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
11018         precision estimate.
11019
11020 2016-01-15  Richard Biener  <rguenther@suse.de>
11021
11022         PR tree-optimization/66856
11023         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
11024         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
11025         (vect_create_new_slp_node): Increment stmt reference count.
11026         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
11027         an SLP tree before swapping operands.
11028         (vect_build_slp_tree): Likewise.
11029         (destroy_bb_vec_info): Free stmt info after SLP instances.
11030         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
11031         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
11032         (STMT_VINFO_NUM_SLP_USES): New macro.
11033
11034 2016-01-15  Richard Biener  <rguenther@suse.de>
11035
11036         PR debug/69137
11037         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
11038         (add_linkage_name): ... here.
11039         (gen_typedef_die): Use add_linkage_name_raw instead of
11040         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
11041         if necessary.
11042
11043 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
11044
11045         * gimplify.c (oacc_default_clause): Decode reference and pointer
11046         types for both kernels and parallel regions.
11047
11048 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
11049
11050         PR middle-end/69246
11051         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
11052
11053 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11054
11055         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
11056         (convert_scalars_to_vector): Likewise.
11057
11058 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
11059
11060         * doc/extend.texi (Type Traits): Fix grammar.
11061
11062 2016-01-15  Martin Jambor  <mjambor@suse.cz>
11063
11064         * tree-inline.c (remap_decl): Use existing dclarations if
11065         remapping a type and prevent_decl_creation_for_types.
11066         (replace_locals_stmt): Do an initial remapping of non-VLA typed
11067         decls first.  Do real remapping with
11068         prevent_decl_creation_for_types set.
11069         * tree-inline.h (copy_body_data): New field
11070         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
11071         padding.
11072
11073 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11074
11075         * config/s390/s390.opt (mmvcle): More verbose help text.
11076
11077 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11078
11079         * config/s390/s390.opt: Add period to -mzvector option text.
11080
11081 2016-01-15  Richard Biener  <rguenther@suse.de>
11082
11083         PR tree-optimization/68961
11084         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
11085         of invariants in stores again.
11086
11087 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11088
11089         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
11090
11091 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11092
11093         * config/i386/i386.c (ix86_expand_branch): Don't split
11094         DI mode xor instruction to SI mode.
11095
11096 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11097
11098         PR ipa/68148
11099         * ipa-icf.c (sem_function::merge): Virtual functions may become
11100         reachable even if they address is not taken and there are no
11101         idrect calls.
11102
11103 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11104
11105         * lto-streamer-out.c (subtract_estimated_size): New function.
11106         (get_symbol_initial_value): Use it.
11107
11108 2016-01-15  Christian Bruel  <christian.bruel@st.com>
11109
11110         PR target/65837
11111         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
11112         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
11113         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
11114         use add_builtin_function_ext_scope instead of add_builtin_function.
11115         (neon_set_p, neon_crypto_set_p): Remove.
11116         (arm_init_builtins): Always call arm_init_neon_builtins and
11117         arm_init_crypto_builtins.
11118         (arm_expand_builtin): Check that builtins are allowed for the arch.
11119         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
11120         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
11121         arm_init_neon_builtins call.
11122
11123 2016-01-15  Richard Biener  <rguenther@suse.de>
11124
11125         PR tree-optimization/69117
11126         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
11127         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
11128         of the leader conservatively.
11129         (free_scc_vn): Restore original SSA name infos.
11130
11131 2016-01-14  Jeff Law  <law@redhat.com>
11132
11133         PR tree-optimization/69270
11134         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
11135         single bit of precision, verify it's also unsigned.
11136         (record_edge_info): Use constant_boolean_node rather than fold_convert
11137         to convert boolean_true/boolean_false to the right type.
11138
11139 2016-01-14  Richard Henderson  <rth@redhat.com>
11140
11141         PR rtl-opt/69014
11142         * loop-doloop.c (record_reg_sets): New.
11143         (doloop_optimize): Reject the transform if the sequence
11144         clobbers registers live at the end of the loop block.
11145         (doloop_optimize_loops): Enable df_live if needed.
11146
11147 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11148
11149         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
11150         * gcc/config/rs6000/rs6000.c: Likewise.
11151         * gcc/config/rs6000/rs6000.h: Likewise.
11152         * gcc/config/rs6000/rs6000.md: Likewise.
11153         * gcc/doc/extend.texi: Likewsie.
11154
11155 2016-01-14  Jeff Law  <law@redhat.com>
11156
11157         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
11158         typo.
11159
11160 2016-01-14  Richard Henderson  <rth@redhat.com>
11161
11162         PR c/69272
11163         PR tree-opt/68964
11164         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11165         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11166         instead of builtin_decl_declared_p to test for declaration.
11167
11168 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11169
11170         * doc/loop.texi (Loop Analysis and Representation): Document
11171         loop_depth function.
11172
11173 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11174
11175         PR tree-optimization/68773
11176         * omp-low.c (expand_omp_target): Don't set force_output.
11177         * varpool.c (varpool_node::get_create): Same.
11178         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11179         offload_funcs with force_output.
11180
11181 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11182
11183         PR debug/69244
11184         * lra-eliminations.c (move_plus_up): Don't change anything if either
11185         the outer or inner subreg mode is not MODE_INT.
11186         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11187         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11188
11189 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11190
11191         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11192         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11193         reduc_uplus_@var{m}): Remove.
11194         * expr.c (expand_expr_real_2): Remove expansion path for
11195         reduc_[us](min|max|plus) optabs.
11196         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11197         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11198         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11199         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11200         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11201         reduc_[us](min|max|plus) optabs.
11202
11203 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11204
11205         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11206         (reduc_plus_scal_v2sf): New.
11207         (reduc_smax_v2sf): Rename to...
11208         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11209         (reduc_smin_v2sf): Rename to...
11210         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11211
11212 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11213
11214         * alias.c (compare_base_symbol_refs): New function.
11215         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11216         it.
11217
11218 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11219
11220         PR middle-end/68146
11221         PR tree-optimization/69155
11222         * tree-complex.c: Include cfganal.h.
11223         (phis_to_revisit): New variable.
11224         (extract_component): Add phiarg_p argument.  Assert that returned
11225         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11226         (update_phi_components): Partly rewrite to use loop over real/imag
11227         components instead of code duplication.  If extract_component returns
11228         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11229         create_tmp_reg into the PHI node instead, and mention the phi triplet
11230         in phis_to_revisit.
11231         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11232         in phis_to_revisit at the end.
11233
11234 2016-01-14  Richard Biener  <rguenther@suse.de>
11235
11236         PR tree-optimization/68060
11237         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11238         outer loop reduction is only used in the inner loop before
11239         detecting a double reduction.
11240
11241 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11242
11243         PR target/68269
11244         * combine.c (expand_field_assignment): Punt if compute_mode is
11245         unsupported scalar mode.
11246
11247 2016-01-14  Richard Biener  <rguenther@suse.de>
11248
11249         PR tree-optimization/66856
11250         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11251         SLP node only if it built successfully.
11252         (vect_analyze_slp_instance): Adjust.
11253
11254 2016-01-14  Jeff Law  <law@redhat.com>
11255
11256         PR tree-optimization/69270
11257         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11258         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11259         to the type of op0.
11260
11261 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11262
11263         PR ipa/66487
11264         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11265         use block_ultimate_origin
11266         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11267
11268 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11269
11270         * doc/invoke.texi (Submodel Options): Rename section to
11271         "Machine-Dependent Options" to better reflect its content.
11272         Rewrite introductory text to remove archaic CPU names.
11273         Update references.
11274
11275 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11276
11277         * doc/invoke.texi (Code Gen Options): Move section up in file,
11278         before target-specific options.  Update menu and option summary
11279         to reflect the new section ordering.
11280
11281 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11282
11283         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11284         (C++ Dialect Options): Add cross-reference to -std option.
11285         * doc/standards.texi (C++ Language): Document C++14 support.
11286
11287 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11288
11289         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11290         for pack/unpack functions for __ibm128.
11291         (PACK_IF): Likewise.
11292         (UNPACK_IF): Likewise.
11293
11294         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11295         support for __ibm128 pack/unpack functions.
11296         (rs6000_invalid_builtin): Likewise.
11297         (rs6000_init_builtins): Likewise.
11298         (rs6000_opt_masks): Likewise.
11299
11300         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11301         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11302         functions
11303         (RS6000_BTM_COMMON): Likewise.
11304
11305         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11306         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11307         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11308         128-bit floating point.  Add support for the double values to be
11309         in Altivec registers for TF/IF packing and unpacking, but restrict
11310         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11311         register support for packing.  Allow pack inputs to be memory
11312         locations.  Don't build generator functions for unpack<mode>_dm
11313         and unpack<mode>_nodm.
11314         (unpack<mode>_dm): Likewise.
11315         (unpack<mode>_nodm): Likewise.
11316         (pack<mode>): Likewise.
11317
11318         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11319         built-in functions to pack/unpack explicit __ibm128 values.
11320         (__builtin_unpack_ibm128): Likewise.
11321
11322         * doc/extend.texi (PowerPC Built-in Functions): Document
11323         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11324
11325 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11326
11327         PR c/66208
11328         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11329         Add new arg loc and pass it down as context.
11330         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11331         to the location to use for the warning.
11332         (check_function_arguments): New arg loc.  All callers changed.  Pass
11333         it to check_function_nonnull.
11334         * c-common.h (check_function_arguments): Adjust declaration.
11335
11336 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11337
11338         PR tree-optimization/69156
11339         * gimple.c (validate_type): Removed.
11340         (gimple_builtin_call_types_compatible_p): Use
11341         useless_type_conversion_p instead of validate_type.
11342         * value-prof.c (gimple_stringop_fixed_value): Fold
11343         icall_size to correct type.
11344
11345 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11346
11347         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11348         effects.
11349
11350 2016-01-13  Richard Henderson  <rth@redhat.com>
11351
11352         PR tree-opt/68964
11353         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11354         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11355         (ix86_builtin_tm_store): Remove.
11356         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11357         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11358         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11359         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11360         * doc/tm.texi: Rebuild.
11361
11362         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11363         (BUILT_IN_TM_MEMCPY_RTWN): New.
11364         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11365         fallback from vector to integer helpers.
11366         (build_tm_load): Handle vector types directly, instead of
11367         via target hook.
11368         (build_tm_store): Likewise.
11369         (expand_assign_tm): Prepare for register types not handled by
11370         the above.  Copy them to memory and use memcpy.
11371         * tree.c (tm_define_builtin): New.
11372         (find_tm_vector_type): New.
11373         (build_tm_vector_builtins): New.
11374         (build_common_builtin_nodes): Call it.
11375
11376 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11377
11378         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11379         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11380
11381 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11382
11383         PR tree-optimization/69169
11384         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11385         handled_struct_type param.
11386         (create_variable_info_for, intra_create_variable_infos): Call
11387         create_variable_info_for_1 with extra arg.
11388
11389 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11390
11391         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11392         and "armv8.1-a+crc" entries.
11393
11394 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11395
11396         PR target/69228
11397         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11398         Change first operand predicate from register_or_constm1_operand
11399         to register_operand.
11400         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11401         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11402         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11403         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11404         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11405         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11406         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11407         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11408         comparison with constm1_rtx from vec_prefetch_gen part.
11409
11410 2016-01-13  Richard Biener  <rguenther@suse.de>
11411
11412         PR tree-optimization/69013
11413         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11414         Exchange assert for a test.
11415
11416 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11417
11418         PR target/69247
11419         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11420
11421 2016-01-13  Richard Biener  <rguenther@suse.de>
11422
11423         PR tree-optimization/69242
11424         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11425         assert with a check.
11426
11427 2016-01-13  Richard Biener  <rguenther@suse.de>
11428
11429         PR tree-optimization/69186
11430         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11431         Properly guard vect_update_misalignment_for_peel call.
11432
11433 2016-01-12  Jeff Law  <law@redhat.com>
11434
11435         PR tree-optimization/pr67755
11436         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11437         "need_profile_correction".
11438         (thread_block_1): Initialize new field to false by default.  If we
11439         have multiple thread paths through a common joiner to different
11440         final targets, then set new field to true.
11441         (compute_path_counts): Only do count adjustment when it's really
11442         needed.
11443
11444 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11445
11446         * doc/invoke.texi (Spec Files): Move section down in file, past
11447         all command-line option descriptions.
11448
11449 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11450
11451         PR middle-end/54809
11452         * doc/gty.texi: Remove documentation of mark_hook.
11453         * gengtype.c (struct write_types_data): Remove code to support
11454         mark_hook attribute.
11455         (walk_type): Likewise.
11456         (write_func_for_structure): Likewise.
11457
11458 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11459
11460         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11461         Directory Options, and -specs= to Overall Options.
11462         (Overall Options): Adjust similarly.  Reorder to group related
11463         options together.  Make -specs= cross-reference the spec file details.
11464         (Directory Options): Adjust similarly.
11465
11466 2016-01-12  Jeff Law  <law@redhat.com>
11467
11468         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11469
11470 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11471
11472         * gcc.c (spec_undefvar_allowed): New global.
11473         (process_command): Set to true when running for --version or --help,
11474         alone or together.
11475         (getenv_spec_function): When the variable is not defined, use the
11476         variable name as the variable value if we're allowed not to issue
11477         a fatal error.
11478
11479 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11480
11481         PR tree-optimization/68911
11482         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11483         information computed for expression "init + nit * step".
11484
11485 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11486
11487         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11488         about name of GCC executable.  Remove deleted node from menu.
11489         (Directory Options) <-B>: Remove cross-reference to deleted node.
11490         (Target Options): Delete section.
11491
11492 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11493
11494         PR target/69180
11495         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11496         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11497
11498 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11499
11500         PR target/69198
11501         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11502         aligned_mem is properly set for AVX512-VL floating point masked
11503         stores.
11504
11505         PR target/69175
11506         * ifcvt.c (cond_exec_process_if_block): When removing the last
11507         insn from then_bb, remove also any possible barriers that follow it.
11508
11509 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11510
11511         PR target/68456
11512         PR target/69226
11513         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11514         (PTRDIFF_TYPE): Likewise.
11515         (WCHAR_TYPE): Likewise.
11516         (WCHAR_TYPE_SIZE): Likewise.
11517         (STDINT_LONG32): Likewise.
11518
11519 2016-01-12  Richard Biener  <rguenther@suse.de>
11520
11521         PR tree-optimization/69053
11522         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11523         convert initial value for cond reductions.
11524
11525 2016-01-12  Richard Biener  <rguenther@suse.de>
11526
11527         PR tree-optimization/69007
11528         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11529         widen_sum after dot_prod and sad.
11530
11531 2016-01-12  Richard Biener  <rguenther@suse.de>
11532
11533         PR tree-optimization/69168
11534         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11535         pattern stmt SLP type.
11536         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11537         end up unused so cope with that case.
11538
11539 2016-01-12  Richard Biener  <rguenther@suse.de>
11540
11541         PR tree-optimization/69157
11542         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11543         stmts def type only during analyze phase.
11544         (vectorizable_call): Likewise.
11545         (vectorizable_simd_clone_call): Likewise.
11546         (vectorizable_conversion): Likewise.
11547         (vectorizable_assignment): Likewise.
11548         (vectorizable_shift): Likewise.
11549         (vectorizable_operation): Likewise.
11550         (vectorizable_store): Likewise.
11551         (vectorizable_load): Likewise.
11552
11553 2016-01-12  Richard Biener  <rguenther@suse.de>
11554
11555         PR tree-optimization/69174
11556         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11557         space.
11558         (vectorizable_load): Properly compute the number of loads needed
11559         for permuted strided SLP loads and do not spuriously assign
11560         to SLP_TREE_VEC_STMTS.
11561
11562 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11563
11564         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11565         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11566         (MD_EXEC_PREFIX): Remove.
11567         (MD_STARTFILE_PREFIX) Removee.
11568         (FILE_NAME_ABSOLUTE_P): Remove.
11569         (CPP_SPEC): Do not read macros from sys/version.h.
11570         (LINK_COMMAND_SPEC): Remove.
11571         (LOCAL_INCLUDE_DIR): Remove.
11572         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11573         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11574         (POST_LINK_SPEC): Define to invoke stubify after linker
11575         (LIBSTDCXX): Remove define
11576         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11577         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11578         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11579         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11580         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11581         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11582         (i386_djgpp_asm_named_section): Add propotype of new procedure
11583
11584         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11585         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11586         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11587         in config/i386/djgpp.h).
11588         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11589         STANDARD_STARTFILE_PREFIX_1.
11590         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11591         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11592         installation errors.
11593         (MAX_OFILE_ALIGNMENT): Define to 128.
11594         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11595
11596         * config/i386/djgpp.c: New file. Add implementation of
11597         i386_djgpp_asm_named_section.
11598
11599         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11600
11601         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11602         Add rule for building djgpp.o.
11603
11604 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11605
11606         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11607         (rtx_is_swappable_p): Reductions are swappable.
11608         (insn_is_swappable_p): V2DF reductions are swappable.
11609
11610 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11611
11612         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11613         reloads for other unsupported memory operands.
11614
11615 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11616             Jim Wilson  <jim.wilson@linaro.org>
11617
11618         PR target/69194
11619         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11620         copy_to_mode_reg instead of force_reg.
11621
11622 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11623
11624         PR target/69225
11625         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11626         TARGET_80387 is true.
11627
11628 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11629
11630         PR target/69071
11631         * lra-eliminations.c (move_plus_up): Only move plus up
11632         if subreg of the constant can be simplified into constant
11633         and use the simplified subreg of the constant instead of
11634         the original constant.
11635
11636         * fold-const.c (fold_convertible_p): Don't return true
11637         for conversion of VECTOR_TYPE to same sized integral type.
11638         (fold_convert_loc): Fix up formatting.  Fold conversion of
11639         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11640         instead of NOP_EXPR.
11641
11642         PR tree-optimization/69214
11643         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11644         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11645         Formatting fix.
11646
11647         PR tree-optimization/69207
11648         * tree-vect-slp.c (vect_get_constant_vectors): For
11649         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11650         fold_convertible_p to vector_type's element type, and always
11651         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11652
11653 2016-01-11  Richard Biener  <rguenther@suse.de>
11654
11655         PR tree-optimization/69173
11656         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11657         fixup the cycle if all stmts are in a pattern.
11658
11659 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11660
11661         PR middle-end/68999
11662         * alias.c (base_alias_check): Move check for addresses with
11663         alignment ANDs before the call for compare_base_decls.
11664         (memrefs_conflict_p): Return -1 for different decls
11665         that went through alignment adjustments.
11666
11667 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11668
11669         PR rtl-optimization/68796
11670         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11671         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11672         and QImode comparisons against zero with CC_NZmode.
11673         * config/aarch64/iterators.md (short_mask): New mode_attr.
11674
11675 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11676
11677         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11678         (<avx512>_store<mode>_mask): Likewise.
11679
11680 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11681             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11682
11683         PR rtl-optimization/68841
11684         * ifcvt.c (struct noce_if_info): Add orig_x field.
11685         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11686         Don't record conflicts on to_rename if it's present.
11687         Allow memory destinations in sets.
11688         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11689         blocks, passing orig_x to the checks.
11690         (noce_process_if_block): Set if_info->orig_x appropriately.
11691
11692 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11693
11694         PR tree-optimization/69069
11695         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11696
11697 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11698
11699         PR rtl-optimization/68920
11700         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11701         of conditional moves for  RTL if-conversion to 1 for
11702         TARGET_ONE_IF_CONV_INSN.
11703         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11704         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11705         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11706         parameter to restirct number of conditional moves for
11707         RTL if-conversion.
11708         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11709         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11710         conditionl moves.
11711
11712 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11713
11714         PR bootstrap/69123
11715         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11716         onepart vars.  Fix typo in comment.  Fix reversed condition in
11717         unshare test.
11718         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11719
11720         PR bootstrap/69123
11721         * var-tracking.c (dump_onepart_variable_differences): New.
11722         (dataflow_set_different): If a detailed dump is requested,
11723         delay early returns and dump differences between onepart
11724         variables present before and after, and added variables.
11725
11726 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11727
11728         PR target/69010
11729         * expr.c (expand_expr_real_1): For boolean vector constants
11730         with a scalar mode use const_scalar_mask_from_tree.
11731         (const_scalar_mask_from_tree): New.
11732         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11733         assigned to a mask type to handle constants.
11734
11735 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11736
11737         PR ipa/69044
11738         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11739         useless parameters if we cannot change function signature.
11740
11741 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11742
11743         PR ipa/66616
11744         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11745         flag.
11746
11747 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11748
11749         PR tree-optimization/69109
11750         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11751         latch with phi.
11752
11753 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11754
11755         PR tree-optimization/69108
11756         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11757         res is not used in a phi.
11758
11759 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11760
11761         PR 67425
11762         * common.opt (frandom-seed): Fix parameter name.
11763         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11764
11765 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11766
11767         PR tree-optimization/69058
11768         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11769         not supported.
11770
11771 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11772
11773         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11774         (mcode-density): Likewise.
11775
11776 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11777
11778         PR tree-optimization/69062
11779         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11780         (parallelize_loops): Don't paralelize loop that has phi with address
11781         arg.
11782
11783 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11784
11785         PR tree-optimization/69039
11786         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11787         phi for reduction.
11788
11789 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11790
11791         PR middle-end/68743
11792         * match.pd: Require target has function_c99_misc before doing
11793         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11794
11795 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11796
11797         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11798         use GMPINC.
11799         * configure: Regenerate.
11800
11801 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11802
11803         PR middle-end/50865
11804         PR tree-optimization/69097
11805         * fold-const.h (expr_not_equal_to): New prototype.
11806         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11807         (expr_not_equal_to): New function.
11808         * match.pd (X % -Y is the same as X % Y): Don't optimize
11809         unless X is known not to be equal to minimum or Y is known
11810         not to be equal to -1.
11811         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11812         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11813         (simplify_stmt_using_ranges): Adjust caller.
11814         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11815         substitute_and_fold.
11816
11817 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11818
11819         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11820         w/o DECL_NAME.
11821
11822 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11823
11824         PR tree-optimization/69167
11825         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11826         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11827         ops[0] comparison.
11828         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11829
11830 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11831             Richard Biener  <rguenther@suse.de>
11832
11833         PR tree-optimization/68707
11834         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11835         instances that can be handled via vect_load_lanes.
11836
11837 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11838
11839         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11840         if we can't determine address equivalence.
11841         * alias.c (compare_base_decl): Update for changed return value of
11842         symtab_node::equal_address_to.
11843
11844 2016-01-08  Jason Merrill  <jason@redhat.com>
11845
11846         PR c++/68983
11847         PR c++/67557
11848         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11849         * expr.c (store_field): Not here.
11850         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11851         call with TREE_ADDRESSABLE type.
11852         * tree-cfg.c (verify_gimple_call): Adjust.
11853
11854 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11855
11856         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11857         libc_internal.
11858
11859 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11860
11861         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11862         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11863         (reduc_smin_v2sf): Rename to...
11864         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11865         (reduc_splus_v2sf): Rename to...
11866         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11867
11868 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11869
11870         PR tree-optimization/69162
11871         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11872         valist argument in another argument.
11873         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11874         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11875         to determine the va_list type, build a MEM_REF instead of
11876         build_fold_indirect_ref.
11877
11878         PR tree-optimization/69172
11879         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11880         gimple_build.
11881
11882 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11883
11884         PR tree-optimization/67781
11885         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11886         and cmpnop in two steps: first the ones not accessed in original
11887         gimple expression in a endian independent way and then the ones not
11888         accessed in the final result in an endian-specific way.
11889
11890 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11891
11892         PR tree-optimization/69083
11893         * tree-vect-slp.c (vect_get_constant_vectors): For
11894         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11895         element type.  If op is fold_convertible_p to vector_type's element
11896         type, use NOP_EXPR instead of VCE.
11897
11898 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11899
11900         PR rtl-optimization/67778
11901         PR rtl-optimization/68634
11902         PR rtl-optimization/68909
11903         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11904         block from the stack until done with it.  Remove a superfluous
11905         bitmap set.  Remove a superfluous bitmap test.
11906
11907 2016-01-07  Martin Sebor  <msebor@redhat.com>
11908
11909         PR c/68966
11910         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11911         constraint on the type of arguments.
11912
11913 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11914
11915         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11916         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11917         unaligned_access on the gcc_options set.
11918         * config/arm/arm.c (arm_option_override_internal): Use
11919         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11920
11921 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11922
11923         PR target/69140
11924         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11925         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11926
11927 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11928
11929         Revert
11930         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11931
11932         PR target/69140
11933         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11934         depending on frame_pointer_needed before remaining integer and SSE
11935         registers are saved.
11936
11937 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11938
11939         PR 1078
11940         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11941
11942 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11943
11944         PR target/69171
11945         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11946         Use the "xBm" constraint.
11947         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11948         Likewise.
11949         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11950         (sse_cvtsi2ssq<round_name>): Likewise.
11951         (sse_cvtss2si<round_name>): Likewise.
11952         (sse_cvtss2siq<round_name>): Likewise.
11953         (sse2_cvtsi2sdq<round_name>): Likewise.
11954         (sse2_cvtsd2si<round_name>): Likewise.
11955         (sse2_cvtsd2siq<round_name>): Likewise.
11956         * config/i386/subst.md (round_nimm_scalar_predicate): New
11957         predicate.
11958
11959 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11960
11961         PR middle-end/67639
11962         * varasm.c (make_decl_rtl): Mark invalid register vars as
11963         DECL_EXTERNAL.
11964
11965         PR rtl-optimization/66206
11966         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11967         All callers changed.
11968
11969 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11970
11971         PR tree-optimization/69141
11972         * tree-ssa-pre.c: Include langhooks.h.
11973         (eliminate_dom_walker::before_dom_children): Use
11974         lang_hooks.decl_printable_name instead of
11975         cgraph_node::get ()->name ().
11976
11977         PR middle-end/68960
11978         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
11979         it and DECL_ALIGN too.
11980
11981 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
11982
11983         * config/mips/mips-ftypes.def: Sort to lexicographical order.
11984
11985 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11986
11987         PR target/69140
11988         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11989         depending on frame_pointer_needed before remaining integer and SSE
11990         registers are saved.
11991
11992 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11993
11994         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
11995         mode iterator with VSX_M2.
11996         (*p9_vecstore_<mode>): Likewise.
11997         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
11998         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
11999         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12000         (define_split for VSX_LE128 stores): Likewise.
12001         (define_peephole2 for TImode LE swaps): Likewise.
12002         (define_split for VSX_LE128 post-reload stores): Likewise.
12003
12004 2016-01-06  Marek Polacek  <polacek@redhat.com>
12005
12006         PR sanitizer/69099
12007         * convert.c (convert_to_integer_1): Adjust call to
12008         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
12009         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
12010         EXPR instead of ARG.
12011         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12012
12013 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12014
12015         PR 1078
12016         * doc/extend.texi (RL78 Variable Attributes): New section.
12017
12018 2016-01-05  Marek Polacek  <polacek@redhat.com>
12019
12020         PR c/69104
12021         * builtins.c (get_memmodel): Use expansion point location rather than
12022         the input location.  Call warning_at rather than warning.
12023         (expand_builtin_atomic_compare_exchange): Likewise.
12024         (expand_builtin_atomic_load): Likewise.
12025         (expand_builtin_atomic_store): Likewise.
12026         (expand_builtin_atomic_clear): Likewise.
12027
12028 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12029
12030         PR target/68991
12031         * config/i386/i386.c (ix86_expand_vector_logical_operator):
12032         Replace nonimmediate_operand with vector_operand.
12033         * config/i386/predicates.md (vector_operand): New predicate.
12034         (general_vector_operand): Replace nonimmediate_operand with
12035         vector_operand.
12036         * config/i386/sse.md: Replace nonimmediate_operand with
12037         vector_operand and m constraint with Bm constraint on SSE
12038         patterns with 16-byte memory operand.
12039         * config/i386/subst.md (round_nimm_predicate): Replace
12040         nonimmediate_operand with vector_operand.
12041         (round_saeonly_nimm_predicate): Likewise.
12042         (round_saeonly_nimm_scalar_predicate): New.
12043
12044 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12045
12046         PR target/68991
12047         * config/i386/constraints.md (Bm): New constraint.
12048         * config/i386/predicates.md (vector_memory_operand): New
12049         predicate.
12050         * config/i386/sse.md: Replace xm with xBm in plusminus and
12051         any_logic patterns.
12052
12053 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12054
12055         PR 1078
12056         * doc/extend.texi (V850 Function Attributes): New section.
12057         (V850 Variable Attributes): New section.
12058
12059 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12060
12061         PR 1078
12062         * doc/extend.texi (MicroBlaze Function Attributes): Document
12063         interrupt_handler and fast_interrupt attributes.
12064
12065 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
12066
12067         PR other/60465
12068         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
12069         for local symbolic operands.
12070         * config/ia64/predicates.md (local_symbolic_operand64): New
12071         predicate.
12072
12073 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12074
12075         PR rtl-optimization/68651
12076         * combine.c (combine_simplify_rtx): Canonicalize x + x into
12077         x << 1.
12078
12079 2016-01-05  Nathan Sidwell  <nathan@acm.org>
12080
12081         * alias.c (compare_base_decls): Use symtab_node::get.
12082
12083 2016-01-05  Nick Clifton  <nickc@redhat.com>
12084
12085         PR target/68770
12086         * ira-costs.c (copy_cost): Initialise the t_icode field of the
12087         secondary_reload_info structure.
12088
12089         PR target/66655
12090         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
12091         decls if weak support is available.
12092
12093 2016-01-04  Martin Sebor  <msebor@redhat.com>
12094
12095         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
12096
12097 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12098
12099         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12100         OPTION_MASK_P9_DFORM.
12101
12102         * config/rs6000/constraints.md (wo constraint): New constraint for
12103         ISA 3.0 (power9).
12104
12105         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
12106         for wo constraint.
12107         (rs6000_init_hard_regno_mode_ok): Likewise.
12108
12109         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
12110         wo constraint.
12111
12112         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
12113         expanders not to have constraints.  Add support for ISA 3.0 xxperm
12114         instruction.  Add support for fusing xxlor with xxperm.
12115         (altivec_vperm_<mode>_internal): Likewise.
12116         (altivec_vperm_v8hiv16qi): Likewise.
12117         (altivec_vperm_<mode>v16q): Likewise.
12118         (altivec_vperm_<mode>_uns): Likewise.
12119         (vperm_v8hiv4si): Likewise.
12120         (vperm_v16qiv8hi): Likewise.
12121
12122         * doc/md.texi (RS/6000 constraints): Document wo constraint.
12123
12124 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
12125
12126         Update copyright years.
12127
12128         * gcc.c (process_command): Update copyright notice dates.
12129         * gcov-dump.c (print_version): Ditto.
12130         * gcov.c (print_version): Ditto.
12131         * gcov-tool.c (print_version): Ditto.
12132         * gengtype.c (create_file): Ditto.
12133         * doc/cpp.texi: Bump @copying's copyright year.
12134         * doc/cppinternals.texi: Ditto.
12135         * doc/gcc.texi: Ditto.
12136         * doc/gccint.texi: Ditto.
12137         * doc/gcov.texi: Ditto.
12138         * doc/install.texi: Ditto.
12139         * doc/invoke.texi: Ditto.
12140
12141 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12142
12143         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
12144         modes larger than TImode as TImode if NEON is not enabled.
12145
12146 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12147
12148         PR target/69100
12149         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
12150         mode for %f0-%f31 only if TARGET_FPU.
12151
12152 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12153
12154         PR target/69072
12155         * config/sparc/sparc.c (scan_record_type): Take into account subfields
12156         to compute the PACKED_P predicate.
12157         (function_arg_record_value): Minor tweaks.
12158
12159 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12160
12161         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12162         option for arm*-*-* targets.
12163
12164 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12165
12166         * doc/extend.texi (Common Function Attributes): Move docs for
12167         MSP430-specific attributes to....
12168         (MSP430 Function Attributes): ...here.  Delete the redundant
12169         entries and copy-edit the remaining text.
12170         (MSP430 Variable Attributes): Use uniform format for index
12171         entries and add a cross-reference to the corresponding function
12172         attribute docs.
12173
12174 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12175
12176         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12177         -finite-math typo.
12178         (x86 Options): Likewise.
12179
12180 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12181
12182         PR 1078
12183
12184         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12185         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12186         to corresponding attribute.
12187
12188 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12189
12190         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12191         to correct alphabetization of table.  Copy-edit and correct
12192         markup.
12193         <stack_protect>: Likewise.
12194         <target_clones>: Likewise.
12195         <simd>: Likewise.
12196         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12197         Correct punctuation.
12198         (Code Gen Options) <-fno-plt>: Copy-edit.
12199
12200 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12201
12202         PR target/68917
12203         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12204         SI values.  Explicitly convert SI to DI and vice-versa.
12205
12206 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12207
12208         PR tree-optimization/69070
12209         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12210         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12211
12212         PR sanitizer/69055
12213         * ubsan.c (ubsan_instrument_float_cast): Call
12214         initialize_sanitizer_builtins.
12215
12216         PR target/69015
12217         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12218 \f
12219 Copyright (C) 2016 Free Software Foundation, Inc.
12220
12221 Copying and distribution of this file, with or without modification,
12222 are permitted in any medium without royalty provided the copyright
12223 notice and this notice are preserved.