Respect --param ipa-max-agg-items=0
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-18  Martin Jambor  <mjambor@suse.cz>
2
3         PR ipa/70646
4         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
5         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
6
7 2016-05-18  Martin Jambor  <mjambor@suse.cz>
8
9         PR ipa/70646
10         * ipa-inline.h (condition): New field size.
11         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
12         for comaprison and store it into the new condition.
13         (evaluate_conditions_for_known_args): Use condition size to check
14         access sizes for all but CHANGED conditions.
15         (unmodified_parm_1): New parameter size_p, store access size into it.
16         (unmodified_parm): Likewise.
17         (unmodified_parm_or_parm_agg_item): Likewise.
18         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
19         (set_cond_stmt_execution_predicate): Extract access sizes and store
20         them to conditions.
21         (set_switch_stmt_execution_predicate): Likewise.
22         (will_be_nonconstant_expr_predicate): Likewise.
23         (will_be_nonconstant_predicate): Likewise.
24         (inline_read_section): Stream condition size.
25         (inline_write_summary): Likewise.
26
27 2016-05-18  Richard Biener  <rguenther@suse.de>
28
29         * tree-ssa-loop-im.c (determine_max_movement): Properly add
30         condition cost to PHI cost instead of total_cost.
31
32 2016-05-18  Martin Liska  <mliska@suse.cz>
33
34         PR fortran/70856
35         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
36         merged variables.
37
38 2016-05-18  Richard Biener  <rguenther@suse.de>
39
40         * lto-streamer.h (LTO_major_version): Bump to 6.
41
42 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
43
44         * function.c (make_split_prologue_seq, make_prologue_seq,
45         make_epilogue_seq): New functions, factored out from...
46         (thread_prologue_and_epilogue_insns): Here.
47
48 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
49
50         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
51         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
52         of before.  Add a comment.
53
54 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
55
56         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
57         expression pointer, not pointer to the pointer.
58
59 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
60
61         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
62         (avx2_pbroadcast<mode>): Add another alternative with v instead
63         of x constraints in it, using <pbroadcast_evex_isa> isa.
64         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
65
66         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
67         constraint x instead of v in second alternative, add avx512bw
68         alternative.
69
70         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
71         constraint x instead of v in second alternative, add avx512bw
72         alternative.
73
74         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
75         constraint x instead of v in second alternative, add avx512bw
76         alternative.
77
78         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
79         avx512bw alternative.
80
81 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
82
83         * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
84         array to 128 chars.
85         (define_insn "*andnottf3"): Ditto.
86         (define_insn "*<code><mode>3"/any_logic): Ditto.
87         (define_insn "*<code>tf3"/any_logic): Ditto.
88         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
89         operand to block AVX-512VL insn variant emit when it is not enabled.
90
91 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
92
93         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
94         constraint fot SF mode.
95
96 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
97             Kirill Yukhin  <kirill.yukhin@intel.com>
98
99         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
100         modifiers.
101         (define_insn "rsqrt14<mode>"): Ditto.
102         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
103         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
104         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
105         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
106         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
107         Ditto.
108         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
109         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
110         * config/i386/i386.c (ix86_print_operand): Expand check for size
111         override codes for Intel syntax.
112
113 2016-05-18  Richard Biener  <rguenther@suse.de>
114
115         PR tree-optimization/71168
116         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
117         initialization earlier.
118
119 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
120
121         * config/aarch64/aarch64-simd.md
122         (aarch64_reduc_plus_internal<mode>): Rename to...
123         (reduc_plus_scal): ...This, and remove previous implementation.
124
125 2016-05-18  Richard Biener  <rguenther@suse.de>
126
127         * passes.def: Put late dse and cd_dce in canonical order.
128
129 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
130
131         * ipa-inline-transform.c (preserve_function_body_p): Look for
132         first non-thunk clone.
133         (save_function_body): Save into first non-thunk.
134         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
135         up call stmt id.
136         (lto_output_node): Inline thunks don't need body in every
137         partition.
138         * lto-streamer-in.c: Do not fixup thunk clones.
139         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
140         thunks.
141         * tree-inline.c (copy_bb): Be prepared for target node to be new after
142         folding suceeds.
143
144 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
145
146         PR middle-end/63586
147         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
148         (reassociate_bb): Call transform_add_to_multiply.
149
150 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
151
152         * config/aarch64/aarch64.c (all_extensions): Removed unused static variable.
153
154 2016-05-17  Nathan Sidwell  <nathan@acm.org>
155
156         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
157         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
158
159 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
160
161         PR tree-optimization/54579
162         PR middle-end/55299
163         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
164
165 2016-05-17  Marek Polacek  <polacek@redhat.com>
166
167         PR ipa/71146
168         * tree-inline.c (expand_call_inline): Call
169         maybe_remove_unused_call_args.
170
171 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
172
173         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
174         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
175         * doc/md.texi (fmin@var{m}3): Likewise.
176
177 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
178
179         * match.pd (X & C): New transformation.
180
181 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
182
183         * match.pd (~X & Y): New transformation.
184
185 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
186
187         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
188         information for new SSA_NAME.
189         (simplify_conversion_using_ranges): Get range through get_range_info
190         instead of get_value_range.
191
192 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
193
194         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
195         Remove inline assembly.
196         (vmvn_s16): Likewise.
197         (vmvn_s32): Likewise.
198         (vmvn_u8): Likewise.
199         (vmvn_u16): Likewise.
200         (vmvn_u32): Likewise.
201         (vmvnq_s8): Likewise.
202         (vmvnq_s16): Likewise.
203         (vmvnq_s32): Likewise.
204         (vmvnq_u8): Likewise.
205         (vmvnq_u16): Likewise.
206         (vmvnq_u32): Likewise.
207         (vmvn_p8): Likewise.
208         (vmvnq_p16): Likewise.
209
210 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
211
212         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
213         Use builtin.
214         (vmul_n_s16): Likewise.
215         (vmul_n_s32): Likewise.
216         (vmul_n_u16): Likewise.
217         (vmul_n_u32): Likewise.
218         (vmulq_n_f32): Likewise.
219         (vmulq_n_f64): Likewise.
220         (vmulq_n_s16): Likewise.
221         (vmulq_n_s32): Likewise.
222         (vmulq_n_u16): Likewise.
223         (vmulq_n_u32): Likewise.
224
225 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
226
227         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
228         all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
229
230 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
231
232         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
233         to *aarch64_fma4_elt_from_dup<mode>.
234         (*aarch64_fnma4_elt_to_128df): Rename to
235         *aarch64_fnma4_elt_from_dup<mode>.
236         * config/aarch64/arm_neon.h (vfma_n_f64): New.
237         (vfms_n_f32): Likewise.
238         (vfms_n_f64): Likewise.
239         (vfmsq_n_f32): Likewise.
240         (vfmsq_n_f64): Likewise.
241
242 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
243
244         * wide-int.h: Change fixed_wide_int_storage from class to struct.
245         
246 2016-05-17  Richard Biener  <rguenther@suse.de>
247
248         PR tree-optimization/71132
249         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
250         Only add control dependences for blocks in the loop.
251         (build_rdg): Adjust.
252         (generate_code_for_partition): Return whether loop should
253         be destroyed and delay that.
254         (distribute_loop): Likewise.
255         (pass_loop_distribution::execute): Record loops to be destroyed
256         and perform delayed destroying of loops.
257
258 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
259
260         PR target/70809
261         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
262
263 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
264
265         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
266
267 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
268
269         PR target/71114
270         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
271         insertion point for instructions generated by validize_mem.
272
273 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
274
275         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
276         in brackets.
277
278 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
279
280         * config/aarch64/aarch64.c
281         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
282         rather than a macro.
283
284 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
285
286         * doc/invoke.texi (AArch64 Options): Various updates.
287
288 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
289
290         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
291         into instrumentation thunks.
292         * cif-code.def (CIF_CHKP): New.
293
294 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
295
296         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
297
298 2016-05-16  Martin Jambor  <mjambor@suse.cz>
299
300         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
301         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
302
303 2016-05-16  Marek Polacek  <polacek@redhat.com>
304
305         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
306         commentary.
307
308 2016-05-16  Martin Jambor  <mjambor@suse.cz>
309
310         PR hsa/70857
311         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
312         the outlined kernel function.
313
314 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
315
316         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
317         (ISA_HAS_DLSA): Ditto.
318
319 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
320
321         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
322
323 2016-05-16  Nathan Sidwell  <nathan@acm.org>
324
325         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
326         (nvptx_name_replacement): Restore.  Add comment.
327         (write_fn_proto, write_fn_proto_from_insn,
328         nvptx_output_call_insn): Restore
329         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
330
331 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
332
333         * config/aarch64/aarch64.md
334         (add<mode>3_compareC_cconly_imm): Remove use of %w.
335         (add<mode>3_compareC_imm): Likewise.
336         (<optab>si3_uxtw): Split into register and immediate variants.
337         (andsi3_compare0_uxtw): Likewise.
338         (and<mode>3_compare0): Likewise.
339         (and<mode>3nr_compare0): Likewise.
340         (stack_protect_test_<mode>): Don't use %x for memory operands.
341
342 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
343
344         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
345
346 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
347
348          * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
349         Split integer shifts into shift_reg and bfm.
350         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
351         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
352         (ror<mode>3_insn): Likewise.
353         (<optab>si3_insn_uxtw): Likewise.
354         (<optab><mode>3_insn): Change to rotate_imm.
355         (extr<mode>5_insn_alt): Likewise.
356         (extrsi5_insn_uxtw): Likewise.
357         (extrsi5_insn_uxtw_alt): Likewise.
358
359 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
360
361         * doc/tm.texi: Regenerate.
362         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
363         (TARGET_INVALID_RETURN_TYPE): Remove.
364         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
365         TARGET_INVALID_RETURN_TYPE.
366         * target.def (invalid_parameter_type): Remove.
367         (invalid_return_type): Remove.
368
369 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
370
371         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
372         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
373         calls from thunk.
374         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
375         gimple body.
376         (preserve_function_body_p): No need to preserve function body
377         * cif-codes.def (CIF_THUNK): Remove.
378         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
379
380 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
381
382         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
383
384 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
385
386         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
387         for thunks.
388
389 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
390
391         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
392         (inline_small_functions): Do not look for function symbol when
393         resetting caches.
394
395 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
396
397         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
398         of inline thunks
399
400 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
401             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
402             Jiong Wang  <jiong.wang@arm.com>
403
404         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
405         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
406         Define __ARM_FP16_ARGS when appropriate.
407         * config/arm/arm.c (arm_invalid_parameter_type): Remove
408         declaration.
409         (arm_invalid_return_type): Likewise.
410         (TARGET_INVALID_PARAMETER_TYPE): Remove.
411         (TARGET_INVALID_RETURN_TYPE): Remove.
412         (aapcs_vfp_sub_candidate): Allow HFmode.
413         (aapcs_vfp_allocate): Add comment.  Support HFmode.
414         (aapcs_vfp_allocate_return_reg): Likewise.
415         (struct aapcs_cp_arg_layout): Slightly reword comments for
416         is_return_candidate and allocate_return_reg.
417         (output_mov_vfp): Update assert.
418         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
419         condition.
420         (arm_invalid_parameter_type): Remove.
421         (amr_invalid_return_type): Remove.
422         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
423         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
424         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
425
426 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
427
428         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
429         * config/aarch64/arch64-protos.h
430         (aarch64_legitimize_reload_address): Remove.
431         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
432         Remove.
433
434 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
435
436         * configure.ac: Add ACX_NONCANONICAL_HOST.
437         * configure: Regenerate.
438         * Makefile.in: Set host_noncanonical.
439
440 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
441
442         PR target/71097
443         * config/i386/i386.md (*movtf_internal): Before register allocation,
444         do not allow FP constants for CM_MEDIUM memory model, allow only
445         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
446         (*movxf_internal): Ditto.
447         (*movdf_internal): Ditto.
448         (*movsf_internal): Ditto.
449
450 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
451
452         PR rtl-optimization/67483
453         * combine.c (make_compound_operation): Don't call extract_left_shift
454         with negative shift amounts.
455
456 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
457
458         PR bootstrap/71071
459         * fold-const.c (fold_checksum_tree): Allow modification
460         of TYPE_ALIAS_SET during folding.
461
462         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
463         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
464         (ix86_split_to_parts): Likewise.  Fix up formatting.
465
466 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
467
468         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
469         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
470         printf format.
471
472 2016-05-13  Nathan Sidwell  <nathan@acm.org>
473
474         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
475         (nvptx_name_replacement): Delete.
476         (write_fn_proto, write_fn_proto_from_insn,
477         nvptx_output_call_insn): Remove nvptx_name_replacement call.
478         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
479         * langhooks.c (add_builtin_funcction_common): Call
480         targetm.mangle_decl_assembler_name.
481
482         * config/nvptx/nvptx.c (write_fn_proto): Handle
483         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
484
485 2016-05-13  Martin Liska  <mliska@suse.cz>
486
487         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
488         and PRIu64 in printf format.
489
490 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
491
492         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
493         comment.
494
495 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
496
497         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
498         Change --param max-completely-peeled-times to
499         --param max-completely-peel-times in dump file printing.
500
501 2016-05-13  Richard Biener  <rguenther@suse.de>
502
503         PR tree-optimization/42587
504         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
505         (find_bswap_or_nop_1): Likewise.
506         (bswap_replace): Likewise.
507
508 2016-05-13  Martin Liska  <mliska@suse.cz>
509
510         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
511         Initialize a variable with default value.
512
513 2016-05-13  Martin Liska  <mliska@suse.cz>
514
515         * doc/invoke.texi: Enhance explanation of error recovery
516         of sanitizers.
517
518 2016-05-13  Martin Liska  <mliska@suse.cz>
519
520         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
521         (struct cost_pair): Change inv_expr_id (int) to inv_expr
522         (iv_inv_expr_ent *).
523         (struct iv_inv_expr_ent): Comment struct fields.
524         (sort_iv_inv_expr_ent): New function.
525         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
526         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
527         a hash_map between iv_inv_expr_ent and number of usages.
528         (niter_for_exit): Fix coding style.
529         (tree_ssa_iv_optimize_init): Use renamed variable.
530         (determine_base_object): Fix coding style.
531         (alloc_iv): Likewise.
532         (find_interesting_uses_outside): Likewise.
533         (add_candidate_1): Likewise.
534         (add_standard_iv_candidates): Likewise.
535         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
536         (prepare_decl_rtl): Fix coding style.
537         (get_address_cost): Likewise.
538         (get_shiftadd_cost): Likewise.
539         (force_expr_to_var_cost): Likewise.
540         (compare_aff_trees): Likewise.
541         (get_expr_id): Restructure the function.
542         (get_loop_invariant_expr_id): Renamed to
543         get_loop_invariant_expr.
544         (get_computation_cost_at): Replace usage of inv_expr_id with
545         inv_expr.
546         (get_computation_cost): Likewise.
547         (determine_group_iv_cost_generic): Likewise.
548         (determine_group_iv_cost_address): Likewise.
549         (iv_period): Fix coding style.
550         (iv_elimination_compare_lt): Likewise.
551         (may_eliminate_iv): Likewise.
552         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
553         inv_expr.
554         (determine_group_iv_costs): Dump invariant expressions.
555         (iv_ca_recount_cost): Use the newly added hash_map.
556         (iv_ca_set_remove_invariants): Fix coding style.
557         (iv_ca_set_add_invariants): Fix coding style.
558         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
559         invariants.
560         (iv_ca_set_cp): Likewise.
561         (iv_ca_new): Initialize the newly added hash_map and remove
562         initialization of fields.
563         (iv_ca_free): Delete the hash_map.
564         (iv_ca_dump): Dump invariant expressions.
565         (iv_ca_extend): Fix coding style.
566         (try_add_cand_for): Likewise.
567         (create_new_ivs): Dump information about # of avg iterations and
568         # of used invariant expressions.
569         (rewrite_use_compare): Fix coding style.
570         (free_loop_data): Set default value for max_inv_expr_id.
571
572 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
573
574         * cse.c (rest_of_handle_cse): Use cleanup_cfg
575         returned value cse_cfg_altered computation.
576         (rest_of_handle_cse2): Likewise.
577         (rest_of_handle_cse_after_global_opts): Likewise.
578
579 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
580
581         PR target/53440
582         * config/arm/arm.c (arm32_output_mi_thunk): New.
583         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
584         to split Thumb1 vs TARGET_32BIT functionality.
585         (arm_thumb1_mi_thunk): New.
586
587 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
588
589         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
590         to true.
591
592 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
593
594         PR target/71080
595         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
596
597 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
598
599         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
600         (expand_builtin_trap): Emit a regular call.
601         (set_builtin_user_assembler_name): Remove obsolete cases.
602         * dse.c (scan_insn): Adjust.
603         * except.c: Include calls.h.
604         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
605         emit a regular call to setjmp.
606         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
607         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
608         (emit_block_move_via_libcall): Delete.
609         (block_move_fn): Delete.
610         (init_block_move_fn): Likewise.
611         (emit_block_move_libcall_fn): Likewise.
612         (emit_block_op_via_libcall): New function.
613         (set_storage_via_libcall): Tidy up and use memset builtin.
614         (block_clear_fn): Delete.
615         (init_block_clear_fn): Likewise.
616         (clear_storage_libcall_fn): Likewise.
617         (expand_assignment): Call emit_block_move_via_libcall.
618         Do not include gt-expr.h.
619         * expr.h (emit_block_op_via_libcall): Declare.
620         (emit_block_copy_via_libcall): New inline function.
621         (emit_block_move_via_libcall): Likewise.
622         (emit_block_comp_via_libcall): Likewise.
623         (block_clear_fn): Delete.
624         (init_block_move_fn): Likewise.
625         (init_block_clear_fn): Likewise.
626         (emit_block_move_via_libcall): Likewise.
627         (set_storage_via_libcall): Add default parameter value.
628         * libfuncs.h (enum libfunc_index): Remove obsolete values.
629         (abort_libfunc): Delete.
630         (memcpy_libfunc): Likewise.
631         (memmove_libfunc): Likewise.
632         (memcmp_libfunc): Likewise.
633         (memset_libfunc): Likewise.
634         (setbits_libfunc): Likewise.
635         (setjmp_libfunc): Likewise.
636         (longjmp_libfunc): Likewise.
637         (profile_function_entry_libfunc): Likewise.
638         (profile_function_exit_libfunc): Likewise.
639         (gcov_flush_libfunc): Likewise.
640         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
641         and DECL_VISIBILITY on the declaration.
642         (init_optabs): Do not initialize obsolete libfuncs.
643         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
644         * tree-core.h (ECF_RET1): Define.
645         (ECF_TM_PURE): Adjust.
646         (ECF_TM_BUILTIN): Likewise.
647         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
648         (build_common_builtin_nodes): Initialize abort builtin.
649         Add ECF_RET1 on memcpy, memmove and memset builtins.
650         Pass final flags for alloca and alloca_with_align builtins.
651         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
652         obsolete builtins.
653         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
654         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
655         set_storage_via_libcall and call emit_block_copy_via_libcall.
656
657 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
658
659         * config/i386/i386.md (*call_got_x32): Change operand 0 to
660         DImode before it is passed to ix86_output_call_operand.
661         (*call_value_got_x32): Ditto for operand 1.
662
663 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
664
665         PR rtl-optimization/70904
666         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
667         reload for wide mode.
668
669 2016-05-12  Marek Polacek  <polacek@redhat.com>
670
671         PR c/70756
672         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
673         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
674         * langhooks.h (incomplete_type_error): Likewise.
675         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
676         parameter, pass it down to incomplete_type_error.
677         * tree.h (size_in_bytes): New inline overload.
678         (size_in_bytes_loc): Renamed from size_in_bytes.
679
680 2016-05-12  Richard Biener  <rguenther@suse.de>
681
682         PR tree-optimization/71059
683         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
684         nary before looking up or entering the expression into the VN
685         hashes.
686         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
687         Make sure to re-use NARYs without result as inserted by
688         phi-translation.
689
690 2016-05-12  Richard Biener  <rguenther@suse.de>
691
692         PR tree-optimization/71062
693         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
694         field.
695         * tree-ssa-structalias.c (set_uids_in_ptset): Set
696         vars_contains_restrict if the var is a restrict tag.
697         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
698         do not disambiguate pointers against it.
699         (dump_points_to_solution): Re-structure and adjust for new
700         vars_contains_restrict flag.
701         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
702
703 2016-05-12  Martin Liska  <mliska@suse.cz>
704
705         * doc/invoke.texi: Explain connection between
706         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
707
708 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
709
710         PR tree-optimization/71006
711         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
712         consider COND_EXPR as a mask producer.
713
714 2016-05-12  Marek Polacek  <polacek@redhat.com>
715
716         PR driver/71063
717         * opts.c (common_handle_option): Detect missing argument for --help^.
718
719 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
720
721         PR target/70830
722         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
723         when popping the PC and within an interrupt handler routine.
724         Add missing tab to output of "ldmfd".
725         (output_return_instruction): Output LDMFD with SP update rather
726         than POP when returning from interrupt handler.
727
728 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
729
730         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
731         TARGET_64BIT && TARGET_AVX512DQ.
732         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
733         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
734         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
735         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
736         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
737         (*vec_extractv4si_zext): Add avx512dq alternative.
738         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
739         use v instead of x constraint in other alternatives where possible.
740
741         * config/i386/sse.md (sse2_loadld): Use v instead of x
742         constraint in alternatives 0,1,4.
743
744         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
745         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
746         v constraints instead of x and <pinsr_evex_isa> isa attribute.
747
748         PR target/71019
749         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
750         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
751         is not emitted unless TARGET_AVX512BW.
752         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
753         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
754         for the result operand.
755
756         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
757         constraint instead of x in avx alternatives.  Use maybe_evex instead
758         of vex prefix.
759
760         * config/i386/constraints.md (Yv): New constraint.
761         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
762         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
763         * config/i386/i386.md (avx512fvecmode): New mode attr.
764         (*pushtf): Use v constraint instead of x.
765         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
766         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
767         (*absneg<mode>2): Use Yv constraint instead of x constraint.
768         (*absnegtf2_sse): Likewise.
769         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
770         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
771         avx512f alternatives.
772         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
773
774 2016-05-12  Richard Biener  <rguenther@suse.de>
775
776         PR tree-optimization/71060
777         * tree-data-ref.c (initialize_data_dependence_relation): Do not
778         require exact match of DR_BASE_OBJECT but only matching address and
779         type.
780
781 2016-05-12  Richard Biener  <rguenther@suse.de>
782
783         PR tree-optimization/70986
784         * cfganal.c: Include cfgloop.h.
785         (dfs_find_deadend): Prefer to take edges exiting loops.
786
787 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
788
789         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
790         compile and run time.
791
792 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
793
794         PR c/43651
795         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
796
797 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
798
799         * config/i386/i386.c (legitimize_pic_address): Use
800         copy_to_suggested_reg instead of gen_movsi.
801
802 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
803
804         * config/rs6000/predicates.md (quad_memory_operand): Move most of
805         the code into quad_address_p and call it to share code with
806         vsx_quad_dform_memory_operand.
807         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
808         d-form support.
809         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
810         bit instead of being a separate word.  Split -mpower9-dform into
811         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
812         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
813         for the register class supporting 128-bit quad word memory offsets.
814         (mode_supports_vsx_dform_quad): Helper function to return if the
815         register class uses quad word memory offsets.
816         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
817         (rs6000_debug_reg_global): Always print if we are using LRA or not.
818         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
819         instructions are enabled, set up the appropriate addr_masks for
820         128-bit types.
821         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
822         -mpower9-dform-scalar, instead of -mpower9-dform.
823         (rs6000_option_override_internal): Split -mpower9-dform into two
824         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
825         -mpower9-dform switch sets or clears both.  If we are not using
826         the LRA register allocator, do not enable -mpower9-dform-vector by
827         default.  If we are using LRA, enable -mpower9-dform-vector and
828         -mvsx-timode if it is appropriate.  Issue a warning if either
829         -mpower9-dform-vector or -mvsx-timode are explicitly used without
830         enabling LRA.
831         (quad_address_offset_p): New helper function to return if the
832         offset is legal for quad word memory instructions.
833         (quad_address_p): New function to determin if GPR or vector
834         register quad word memory addresses are legal.
835         (mem_operand_gpr): Validate quad word address offsets.
836         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
837         d-form (register + offset) instructions.
838         (offsettable_ok_by_alignment): Likewise.
839         (rs6000_legitimate_offset_address_p): Likewise.
840         (legitimate_lo_sum_address_p): Likewise.
841         (rs6000_legitimize_address): Likewise.
842         (rs6000_legitimize_reload_address): Add more debug statements for
843         -mdebug=addr.
844         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
845         d-form instructions.
846         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
847         d-form instructions.  Distinguish different cases in debug
848         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
849         d-form instructions.
850         (rs6000_preferred_reload_class): Likewise.
851         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
852         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
853         of the ISA 2.06 indexed memory instructions.
854         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
855         use them to save/restore the saved vector registers instead of
856         using Altivec instructions.
857         (rs6000_emit_epilogue): Likewise.
858         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
859         (rs6000_opt_masks): Split -mpower9-dform into
860         -mpower9-dform-scalar and -mpower9-dform-vector.
861         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
862         was not selected.
863         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
864         ISA 3.0 vector indexed memory instructions, and fold the code into
865         the normal mov<mode> patterns.
866         (p9_vecstore_<mode>): Likewise.
867         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
868         instructions.
869         (vsx_movti_64bit): Likewise.
870         (vsx_movti_32bit): Likewise.
871         * config/rs6000/constraints.md (wO constraint): New constraint for
872         ISA 3.0 vector d-form support.
873         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
874         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
875         include -mpower9-dform-vector until we switch over to LRA.
876         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
877         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
878         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
879         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
880         for -mpower9-dform and -mlra.
881         * doc/md.texi (wO constraint): Document wO constraint.
882
883 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
884
885         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
886         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
887         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
888         Move handling of non-insn arguments inline into the sole user:
889         (output_trans_func): ...here.
890         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
891         in emitted function prototype.
892         (output_internal_insn_latency_func): Ditto.  Simplify.
893         (output_internal_maximal_insn_latency_func): Ditto.  Delete
894         always-unused argument.
895         (output_insn_latency_func): Ditto.
896         (output_maximal_insn_latency_func): Ditto.
897
898 2016-05-11  Richard Biener  <rguenther@suse.de>
899
900         PR tree-optimization/71055
901         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
902         sth with precision not equal to access size verify we don't chop
903         off bits.
904
905 2016-05-11  Richard Biener  <rguenther@suse.de>
906
907         PR debug/71057
908         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
909         (dwarf2out_finish): Move retry_incomplete_types call ...
910         (dwarf2out_early_finish): ... here.
911
912 2016-05-11  Richard Biener  <rguenther@suse.de>
913
914         PR middle-end/71002
915         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
916         if the langhook insists on it.
917         * fold-const.c (make_bit_field_ref): Add arg for the original
918         reference and preserve its alias-set.
919         (decode_field_reference): Take exp by reference and adjust it
920         to the original memory reference.
921         (optimize_bit_field_compare): Adjust callers.
922         (fold_truth_andor_1): Likewise.
923         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
924
925 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
926
927         PR middle-end/70807
928         * cfgrtl.h (delete_insn_and_edges): Now return bool.
929         * cfgrtl.c (delete_insn_and_edges): Likewise.
930         * config/i386/i386.c (convert_scalars_to_vector): Remove
931         redundant code.
932         * cse.c (cse_insn): Compute cse_cfg_altered.
933         (delete_trivially_dead_insns): Likewise.
934         (cse_cc_succs): Likewise.
935         (rest_of_handle_cse): Free dominance info if required.
936         (rest_of_handle_cse2): Likewise.
937         (rest_of_handle_cse_after_global_opts): Likewise.
938
939 2016-05-11  Alan Modra  <amodra@gmail.com>
940
941         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
942         abi_v4_pass_in_fpr): New functions.
943         (rs6000_function_arg_boundary): Exclude complex IBM long double
944         from 64-bit alignment when ABI_V4.
945         (rs6000_function_arg, rs6000_function_arg_advance_1,
946         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
947
948 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
949
950         PR rtl-optimization/71028
951         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
952         jump with just a return in the fallthrough block if the branch
953         block contains just a return as well.
954
955 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
956
957         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
958         * match.pd ((X & Y) ^ Y): ... this.
959         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
960         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
961
962 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
963
964         * read-md.c (require_char_ws): New function.
965         (read_string): Simplify using require_char_ws.
966         (handle_constants): Likewise.
967         (handle_enum): Likewise.
968         (handle_file): Likewise.
969         * read-md.h (require_char_ws): New declaration.
970         * read-rtl.c (read_conditions): Simplify using require_char_ws.
971         (read_mapping): Likewise.
972         (read_rtx_code): Likewise.
973         (read_nested_rtx): Likewise.
974
975 2016-05-10  James Norris  <jnorris@codesourcery.com>
976
977         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
978         if offloading is enabled and -fopenacc or -fopenmp is specified.
979         (CRTOFFLOADEND): Likewise.
980         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
981         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
982
983 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
984
985         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
986         gotoff_operand code paths.  Use copy_to_suggested_regs and
987         expand_simple_binop where appropriate.  Cleanup.
988
989 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
990
991         PR target/70799
992         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
993         integer constants.
994         (dimode_scalar_chain::vector_const_cost): New.
995         (dimode_scalar_chain::compute_convert_gain): Handle constants.
996         (dimode_scalar_chain::convert_op): Likewise.
997         (dimode_scalar_chain::convert_insn): Likewise.
998
999 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
1000
1001         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
1002         unary operation, not a binary one.
1003
1004 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
1005
1006         PR middle-end/70877
1007         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
1008         calls with type casted fndecl.
1009
1010 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
1011
1012         PR tree-optimization/70786
1013         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
1014         * gcc/calls.c (initialize_argument_information): Bind bounds
1015         with corresponding args passed by reference.
1016
1017 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
1018
1019         PR target/70927
1020         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
1021         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
1022         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
1023         accordingly.
1024
1025 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1026
1027         PR target/70963
1028         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
1029         code for a zero scale factor.
1030         (vsx_xvcvdpuxds_scale): Likewise.
1031
1032 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
1033
1034         * diagnostic-show-locus.c (layout::layout): Call show_ruler
1035         if show_ruler_p was set on the context.
1036         (layout::show_ruler): New method.
1037         * diagnostic.h (struct diagnostic_context): Add field
1038         "show_ruler_p".
1039
1040 2016-05-10  Richard Biener  <rguenther@suse.de>
1041
1042         PR tree-optimization/71039
1043         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1044         (chk_uses): New function.
1045         (propagate_with_phi): Verify we can safely replicate the lhs of an
1046         aggregate assignment on all incoming edges.
1047
1048 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
1049
1050         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
1051         Forward declare.
1052         (rx_atomic_sequence): New class.
1053         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
1054         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
1055         non-inline.
1056         (rx_atomic_sequence::rx_atomic_sequence,
1057         rx_atomic_sequence::~rx_atomic_sequence): New functions.
1058         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
1059         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
1060         CTRLREG_INTB): New constants.
1061         (FETCHOP): New code iterator.
1062         (fethcop_name, fetchop_name2): New iterator code attributes.
1063         (QIHI): New mode iterator.
1064         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
1065         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
1066         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
1067
1068 2016-05-10  Martin Liska  <mliska@suse.cz>
1069
1070         * tree-inline.c (remap_dependence_clique): Do not remap
1071         debugging statements.
1072
1073 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1074
1075         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
1076         ("*fixuns_truncdfdi2_z13")
1077         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
1078         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
1079         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
1080
1081 2016-05-10  Richard Biener  <rguenther@suse.de>
1082
1083         PR tree-optimization/70497
1084         PR tree-optimization/28367
1085         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
1086         split out from ...
1087         (visit_reference_op_load): ... here.
1088         (vn_reference_lookup_3): Use it to handle subreg-like accesses
1089         with simplified BIT_FIELD_REFs.
1090         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
1091         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
1092         correctly.
1093
1094 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
1095
1096         * dwarf2out.c (add_abstract_origin_attribute): Adjust
1097         documentation comment.  For BLOCK nodes, add a
1098         DW_AT_abstract_origin attribute that points to the DIE generated
1099         for the origin BLOCK.
1100         (gen_lexical_block_die): Call add_abstract_origin_attribute for
1101         blocks from inlined functions.
1102
1103 2016-05-10  Alan Modra  <amodra@gmail.com>
1104
1105         PR target/70947
1106         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
1107         regrename modifying insns saving lr before __morestack call.
1108         * config/rs6000/rs6000.md (split_stack_return): Similarly for
1109         insns restoring lr after __morestack call.
1110
1111 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
1112
1113         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
1114         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
1115         expanders.
1116         * config/i386/sse.md (vec_interleave_high<mode>,
1117         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
1118         <avx512>_vpermt2var<mode>3_maskz): Likewise.
1119
1120 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1121
1122         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
1123         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
1124         parallel reassociation for power8 and forward.
1125
1126 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
1127
1128         * config/i386/i386.md (absneg splitters with general regs): Use
1129         general_reg_operand predicate.
1130         (btsq peephole2): Use x86_64_immediate_operand to check if new
1131         value is suitable for immediate operand.  Generate emitted insn
1132         using RTL expressions.
1133         (btcq peephole2): Ditto.
1134         (btrq peephole2): Ditto.  Generate correct immediate operand
1135         for AND masking.
1136
1137 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1138
1139         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
1140         bitpos.
1141
1142 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1143
1144         * tree-affine.c (wide_int_constant_multiple_p): Add missing
1145         pointer dereference.
1146
1147 2016-05-09  Richard Biener  <rguenther@suse.de>
1148
1149         PR tree-optimization/70985
1150         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
1151         op0 isn't a gimple register.
1152
1153 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
1154
1155         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
1156         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
1157         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
1158         (i6400_fpu_mult): New cpu units.
1159         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
1160         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
1161         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
1162         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
1163         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
1164         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
1165         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
1166         (i6400_msa_long_float4, i6400_msa_long_float5)
1167         (i6400_msa_long_float8, i6400_msa_fdiv_df)
1168         (i6400_msa_fdiv_sf): New reservations.
1169         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
1170         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
1171         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
1172         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
1173         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
1174         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
1175         (msa_short_cmp, msa_short_float2, msa_short_logic3)
1176         (msa_short_store4, msa_long_load, msa_short_store)
1177         (msa_long_logic, msa_long_float2, msa_long_float4)
1178         (msa_long_float5, msa_long_float8, msa_long_mult)
1179         (msa_long_fdiv, msa_long_div): New reservations.
1180
1181 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
1182             Sameera Deshpande  <sameera.deshpande@imgtec.com>
1183             Matthew Fortune  <matthew.fortune@imgtec.com>
1184             Graham Stott  <graham.stott@imgtec.com>
1185             Chao-ying Fu  <chao-ying.fu@imgtec.com>
1186
1187         * config.gcc: Add MSA header file for mips*-*-* target.
1188         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
1189         (Ubv8i, Urv8):  New constraints.
1190         * config/mips/mips-ftypes.def: Add function types for MSA
1191         builtins.
1192         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
1193         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
1194         * config/mips/mips-msa.md: New file.
1195         * config/mips/mips-protos.h
1196         (mips_split_128bit_const_insns): New prototype.
1197         (mips_msa_idiv_insns): Likewise.
1198         (mips_split_128bit_move): Likewise.
1199         (mips_split_128bit_move_p): Likewise.
1200         (mips_split_msa_copy_d): Likewise.
1201         (mips_split_msa_insert_d): Likewise.
1202         (mips_split_msa_fill_d): Likewise.
1203         (mips_expand_msa_branch): Likewise.
1204         (mips_const_vector_same_val_p): Likewise.
1205         (mips_const_vector_same_bytes_p): Likewise.
1206         (mips_const_vector_same_int_p): Likewise.
1207         (mips_const_vector_shuffle_set_p): Likewise.
1208         (mips_const_vector_bitimm_set_p): Likewise.
1209         (mips_const_vector_bitimm_clr_p): Likewise.
1210         (mips_msa_vec_parallel_const_half): Likewise.
1211         (mips_msa_output_division): Likewise.
1212         (mips_ldst_scaled_shift): Likewise.
1213         (mips_expand_vec_cond_expr): Likewise.
1214         * config/mips/mips.c (enum mips_builtin_type): Add
1215         MIPS_BUILTIN_MSA_TEST_BRANCH.
1216         (mips_gen_const_int_vector_shuffle): New prototype.
1217         (mips_const_vector_bitimm_set_p): New function.
1218         (mips_const_vector_bitimm_clr_p): Likewise.
1219         (mips_const_vector_same_val_p): Likewise.
1220         (mips_const_vector_same_bytes_p): Likewise.
1221         (mips_const_vector_same_int_p): Likewise.
1222         (mips_const_vector_shuffle_set_p): Likewise.
1223         (mips_symbol_insns): Forbid loading symbols via immediate for
1224         MSA.
1225         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
1226         stores.
1227         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
1228         MSA.
1229         (mips_lx_address_p): Add support load indexed address for MSA.
1230         (mips_address_insns): Add calculation of instructions needed for
1231         stores and loads for MSA.
1232         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
1233         CONST_VECTOR for MSA and let it fall through.
1234         (mips_ldst_scaled_shift): New function.
1235         (mips_subword_at_byte): Likewise.
1236         (mips_msa_idiv_insns): Likewise.
1237         (mips_legitimize_move): Validate MSA moves.
1238         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
1239         calculation of costs for MSA division.
1240         (mips_split_move_p): Check if MSA moves need splitting.
1241         (mips_split_move): Split MSA moves if necessary.
1242         (mips_split_128bit_move_p): New function.
1243         (mips_split_128bit_move): Likewise.
1244         (mips_split_msa_copy_d): Likewise.
1245         (mips_split_msa_insert_d): Likewise.
1246         (mips_split_msa_fill_d): Likewise.
1247         (mips_output_move): Handle MSA moves.
1248         (mips_expand_msa_branch): New function.
1249         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
1250         Reinstate 'y' modifier.
1251         (mips_file_start): Add MSA .gnu_attribute.
1252         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
1253         FPRs.
1254         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
1255         (mips_class_max_nregs): Add register size for MSA supported mode.
1256         (mips_cannot_change_mode_class): Allow conversion between MSA
1257         vector modes and TImode.
1258         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
1259         instruction.
1260         (mips_secondary_reload_class): Force MSA loads/stores via memory.
1261         (mips_preferred_simd_mode): Add preffered modes for MSA.
1262         (mips_vector_mode_supported_p): Add MSA supported modes.
1263         (mips_autovectorize_vector_sizes): New function.
1264         (mips_msa_output_division): Likewise.
1265         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
1266         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
1267         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
1268         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
1269         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
1270         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
1271         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
1272         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
1273         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
1274         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
1275         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
1276         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
1277         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
1278         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
1279         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
1280         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
1281         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
1282         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
1283         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
1284         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
1285         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
1286         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
1287         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
1288         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
1289         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
1290         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
1291         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
1292         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
1293         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
1294         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
1295         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
1296         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
1297         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
1298         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
1299         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
1300         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
1301         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
1302         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
1303         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
1304         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
1305         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
1306         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
1307         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
1308         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
1309         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1310         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1311         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1312         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1313         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1314         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1315         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1316         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1317         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
1318         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
1319         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
1320         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
1321         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
1322         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
1323         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
1324         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
1325         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
1326         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
1327         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
1328         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
1329         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
1330         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
1331         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
1332         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
1333         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
1334         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
1335         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
1336         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
1337         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
1338         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
1339         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
1340         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
1341         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
1342         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
1343         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
1344         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
1345         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
1346         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
1347         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
1348         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
1349         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
1350         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
1351         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
1352         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
1353         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
1354         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
1355         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
1356         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
1357         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
1358         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
1359         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
1360         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
1361         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
1362         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
1363         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
1364         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
1365         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
1366         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
1367         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
1368         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
1369         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
1370         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
1371         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
1372         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
1373         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
1374         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
1375         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
1376         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
1377         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
1378         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
1379         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
1380         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
1381         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
1382         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
1383         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
1384         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
1385         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
1386         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
1387         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
1388         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
1389         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
1390         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
1391         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
1392         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
1393         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
1394         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
1395         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
1396         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
1397         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
1398         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
1399         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
1400         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
1401         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
1402         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
1403         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
1404         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
1405         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
1406         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
1407         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
1408         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
1409         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
1410         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
1411         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
1412         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
1413         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
1414         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
1415         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
1416         move_v builtins.
1417         (mips_get_builtin_decl_index): New array.
1418         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
1419         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
1420         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
1421         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
1422         (mips_init_builtins): Initialize mips_get_builtin_decl_index
1423         array.
1424         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1425         hook.
1426         (mips_expand_builtin_insn): Prepare operands for
1427         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
1428         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
1429         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
1430         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
1431         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
1432         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
1433         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
1434         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
1435         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
1436         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
1437         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
1438         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
1439         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
1440         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
1441         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
1442         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
1443         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
1444         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
1445         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
1446         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
1447         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
1448         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1449         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1450         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1451         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1452         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1453         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1454         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1455         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1456         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1457         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1458         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1459         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1460         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1461         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1462         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1463         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1464         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1465         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1466         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1467         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1468         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1469         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1470         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1471         These are set implicitly and an error is reported if overridden.
1472         (mips_expand_builtin_msa_test_branch): New function.
1473         (mips_expand_msa_shuffle): Likewise.
1474         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1475         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1476         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1477         (mips_expand_vec_unpack): Add support for MSA.
1478         (mips_expand_vector_init): Likewise.
1479         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1480         instead of const0_rtx.
1481         (mips_msa_vec_parallel_const_half): New function.
1482         (mips_gen_const_int_vector): Likewise.
1483         (mips_gen_const_int_vector_shuffle): Likewise.
1484         (mips_expand_msa_cmp): Likewise.
1485         (mips_expand_vec_cond_expr): Likewise.
1486         * config/mips/mips.h
1487         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1488         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1489         specified.
1490         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1491         (ISA_HAS_MSA): New macro.
1492         (UNITS_PER_MSA_REG): Likewise.
1493         (BITS_PER_MSA_REG): Likewise.
1494         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1495         (MSA_REG_FIRST): New macro.
1496         (MSA_REG_LAST): Likewise.
1497         (MSA_REG_NUM): Likewise.
1498         (MSA_REG_P): Likewise.
1499         (MSA_REG_RTX_P): Likewise.
1500         (MSA_SUPPORTED_MODE_P): Likewise.
1501         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1502         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1503         * config/mips/mips.md: Include mips-msa.md.
1504         (alu_type): Add simd_add.
1505         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1506         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1507         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1508         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1509         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1510         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1511         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1512         simd_move, simd_load, simd_store.  Choose "multi" for moves
1513         for "qword_mode".
1514         (qword_mode): New attribute.
1515         (insn_count): Add instruction count for quad moves.
1516         Increase the count for MIPS SIMD division.
1517         (UNITMODE): Add UNITMODEs for vector types.
1518         (addsub): New code iterator.
1519         * config/mips/mips.opt (mmsa): New option.
1520         * config/mips/msa.h: New file.
1521         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1522         specified.
1523         * config/mips/mti-linux.h: Likewise.
1524         * config/mips/predicates.md
1525         (const_msa_branch_operand): New constraint.
1526         (const_uimm3_operand): Likewise.
1527         (const_uimm4_operand): Likewise.
1528         (const_uimm5_operand): Likewise.
1529         (const_uimm8_operand): Likewise.
1530         (const_imm5_operand): Likewise.
1531         (aq10b_operand): Likewise.
1532         (aq10h_operand): Likewise.
1533         (aq10w_operand): Likewise.
1534         (aq10d_operand): Likewise.
1535         (const_m1_operand): Likewise.
1536         (reg_or_m1_operand): Likewise.
1537         (const_exp_2_operand): Likewise.
1538         (const_exp_4_operand): Likewise.
1539         (const_exp_8_operand): Likewise.
1540         (const_exp_16_operand): Likewise.
1541         (const_vector_same_val_operand): Likewise.
1542         (const_vector_same_simm5_operand): Likewise.
1543         (const_vector_same_uimm5_operand): Likewise.
1544         (const_vector_same_uimm6_operand): Likewise.
1545         (const_vector_same_uimm8_operand): Likewise.
1546         (par_const_vector_shf_set_operand): Likewise.
1547         (reg_or_vector_same_val_operand): Likewise.
1548         (reg_or_vector_same_simm5_operand): Likewise.
1549         (reg_or_vector_same_uimm6_operand): Likewise.
1550         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1551         section.
1552         * doc/invoke.texi (-mmsa): Document new option.
1553
1554 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1555
1556         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1557         * configure: Regenerate.
1558         * config.in: Regenerate.
1559         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1560         on -fvtable-verify.
1561         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1562         (ENDFILE_VTV_SPEC): Define.
1563
1564 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1565
1566         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1567         registers in all interrupt handlers if necessary.
1568         (rl78_option_override): Add warning.
1569         (MUST_SAVE_MDUC_REGISTERS): New macro.
1570         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1571         * config/rl78/rl78.c (check_mduc_usage): New function.
1572         (mduc_regs): New structure to hold MDUC register data.
1573         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1574         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1575         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1576         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1577         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1578         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1579
1580 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1581
1582         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1583         (tree-ssa-loop-niter.h): Ditto.
1584         (idx_within_array_bound, ref_within_array_bound): New functions.
1585         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1586         Factor out check on writable base object to ...
1587         (base_object_writable): ... here.
1588
1589 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1590
1591         * config/arm/arm.md (probe_stack): Add modes to set source
1592         and destination.
1593
1594 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1595
1596         * regrename.c (base_reg_class_for_rename): New static function.
1597         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1598
1599 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1600
1601         * cgraph.c (thunk_adjust): Export.
1602         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1603         * cgraphunit.c (thunk_adjust): Export.
1604         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1605         thunks.
1606         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1607         inlinable.
1608         * tree-inline.c (expand_call_inline): Expand thunks inline.
1609
1610 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1611
1612         PR target/70998
1613         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1614         (*sse2_vd_cvtss2sd): Ditto.
1615         * config/i386/i386.md
1616         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1617         Generate *sse2_vd_cvtsd2ss pattern.
1618         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1619         Generate *sse2_vd_cvtss2sd pattern.
1620
1621 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1622
1623         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1624         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1625         users.
1626
1627 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1628
1629         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1630         * config/sh/sh.c: Define and declare variables on first use throughout
1631         the file.
1632         (current_function_interrupt): Change to bool type.
1633         (frame_insn): Rename to emit_frame_insn and update users.
1634         (push_regs): Use bool for 'interrupt_handler' argument.
1635         (save_schedule_s): Remove.
1636         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1637         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1638         targetm.asm_out.unaligned_op.di.
1639         (gen_far_branch): Remove redundant forward declaration.
1640         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1641         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1642         (sh_set_return_address, sh_function_ok_for_sibcall,
1643         scavenge_reg): Update comments.
1644         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1645         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1646         (sh_attr_renesas_p): Remove unnecessary parentheses.
1647         (branch_dest): Simplify.
1648         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1649         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1650         (CUMULATIVE_ARGS): Change macro to typedef.
1651         (current_function_interrupt): Change to bool type.
1652         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1653         Surround with __cplusplus ifdef.
1654         (sh_compare_op0, sh_compare_op1): Remove.
1655         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1656
1657 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1658
1659         * config/arm/arm.md: (arch): Add neon.
1660         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1661         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1662         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1663         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1664         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1665         (thumb2_movdf_vfp): Likewise.
1666
1667 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1668
1669         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1670         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1671         (*andqi_1): Add preferred_for_speed attribute to disparage
1672         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1673         (*<code>qi_1): Ditto.
1674         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1675         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1676         (*ashlqi3_1): Ditto.
1677         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1678         Add preferred_for_size attribute to disparage alternative 0 and
1679         preferred_for_speed attribute to disparage alternative 1 for
1680         TARGET_PARTIAL_REG_STALL targets.
1681
1682 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1683
1684         PR tree-optimization/70956
1685         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1686         def.
1687
1688 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1689
1690         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1691         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1692         * config/sh/sh.md (branch_zero): Remove define_attr.
1693         (define_delay): Disable delay slot if branch distance is one insn.
1694
1695 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1696
1697         * config/i386/i386.md (LEAMODE): New mode attribute.
1698         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1699         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1700         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1701         operand 2 predicate.
1702         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1703         (*lea<mode>_general_3): Ditto.
1704         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1705
1706 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1707
1708         * genmddump.c (main): Convert argv from char ** to const char **.
1709
1710 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1711
1712         * coretypes.h (OVERRIDE): New macro.
1713         (FINAL): New macro.
1714
1715 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1716
1717         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1718         allow coalescing if the types are compatible.
1719
1720 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1721
1722         * pass_manager.h (pass_manager::register_pass_name): New method.
1723         (pass_manager::get_pass_by_name): New method.
1724         (pass_manager::create_pass_tab): New method.
1725         (pass_manager::m_name_to_pass_map): New field.
1726         * passes.c (name_to_pass_map): Delete global in favor of field
1727         "m_name_to_pass_map" of pass_manager.
1728         (register_pass_name): Rename from a function to...
1729         (pass_manager::register_pass_name): ...this method, updating
1730         for renaming of global "name_to_pass_map" to field
1731         "m_name_to_pass_map".
1732         (create_pass_tab): Rename from a function to...
1733         (pass_manager::create_pass_tab): ...this method, updating
1734         for renaming of global "name_to_pass_map" to field.
1735         (get_pass_by_name): Rename from a function to...
1736         (pass_manager::get_pass_by_name): ...this method.
1737         (enable_disable_pass): Convert use of get_pass_by_name to
1738         a method call, locating the pass_manager singleton.
1739
1740 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1741
1742         * genattr-common.c (main): Convert argv from char ** to const char **.
1743         * genattr.c (main): Likewise.
1744         * genattrtab.c (main): Likewise.
1745         * genautomata.c (initiate_automaton_gen): Likewise.
1746         (main): Likewise.
1747         * gencodes.c (main): Likewise.
1748         * genconditions.c (main): Likewise.
1749         * genconfig.c (main): Likewise.
1750         * genconstants.c (main): Likewise.
1751         * genemit.c (main): Likewise.
1752         * genenums.c (main): Likewise.
1753         * genextract.c (main): Likewise.
1754         * genflags.c (main): Likewise.
1755         * genmddeps.c (main): Likewise.
1756         * genopinit.c (main): Likewise.
1757         * genoutput.c (main): Likewise.
1758         * genpeep.c (main): Likewise.
1759         * genpreds.c (main): Likewise.
1760         * genrecog.c (main): Likewise.
1761         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1762         (init_rtx_reader_args): Likewise.
1763         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1764         (init_rtx_reader_args): Likewise.
1765         * gentarget-def.c (main): Likewise.
1766         * read-md.c (read_md_files): Likewise.
1767         * read-md.h (read_md_files): Likewise.
1768
1769 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1770
1771         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1772         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1773         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1774         Remove unused predicate.
1775         (register_and_not_fp_reg_operand): Ditto.
1776
1777 2016-05-06  Martin Liska  <mliska@suse.cz>
1778
1779         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1780         instead of vec as the vector is local to the function.
1781
1782 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1783
1784         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1785         avx512bw alternative.
1786
1787         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1788         before the ashr<mode>3 pattern.
1789
1790         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1791         v instead of x in vex or maybe_vex alternatives, use
1792         maybe_evex instead of vex in prefix.
1793
1794         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1795         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1796         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1797         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1798         in prefix.
1799
1800         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1801         v instead of x in vex or maybe_vex alternatives, use
1802         maybe_evex instead of vex in prefix.
1803
1804         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1805         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1806         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1807         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1808         alternatives, use maybe_evex instead of vex in prefix.
1809
1810         * config/i386/sse.md (vec_interleave_lowv4sf,
1811         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1812         v instead of x in vex or maybe_vex alternatives, use
1813         maybe_evex instead of vex in prefix.
1814
1815         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1816         v instead of x in vex or maybe_vex alternatives, use
1817         maybe_evex instead of vex in prefix.
1818
1819         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1820         v constraint instead of x.
1821
1822 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1823
1824         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1825         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1826         equality first.
1827
1828 2016-05-06  Richard Biener  <rguenther@suse.de>
1829
1830         PR tree-optimization/70948
1831         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1832         Properly clobber all fields of va_list for __builtin_va_start.
1833
1834 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1835
1836         PR debug/70935
1837         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1838         loop latch destination.
1839
1840 2016-05-06  Martin Liska  <mliska@suse.cz>
1841
1842         * tree-ssa-uninit.c: Apply manual changes
1843         to the GNU coding style.
1844         (prune_uninit_phi_opnds): Rename from
1845         prune_uninit_phi_opnds_in_unrealizable_paths.
1846
1847 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1848
1849         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1850         mspace): Remove deprecated options.
1851         * doc/invoke.texi (SH options): Remove -mspace.
1852
1853 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1854
1855         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1856
1857 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1858
1859         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1860         corresponding combine split pattern.
1861
1862 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1863
1864         PR target/58219
1865         * config/sh/predicates.md (long_displacement_mem_operand): New.
1866         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1867         Add movi20, movi20s alternatives.  Adjust length attribute for
1868         alternatives.
1869         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1870         alternatives.
1871         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1872         attribute for alternatives.
1873         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1874         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1875         length attribute for alternatives.
1876
1877 2016-05-06  Richard Biener  <rguenther@suse.de>
1878
1879         PR tree-optimization/70960
1880         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1881
1882 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1883
1884         PR target/52933
1885         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1886         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1887
1888 2016-05-06  Marek Polacek  <polacek@redhat.com>
1889
1890         PR sanitizer/70875
1891         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1892
1893 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1894
1895         PR target/54089
1896         * config/sh/sh.md (*rotcr): Add another variant.
1897
1898 2016-05-06  Richard Biener  <rguenther@suse.de>
1899
1900         PR middle-end/70931
1901         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1902
1903 2016-05-06  Richard Biener  <rguenther@suse.de>
1904
1905         PR middle-end/70941
1906         * fold-const.c (split_tree): Always convert to the original type
1907         before negating.
1908
1909 2016-05-06  Richard Biener  <rguenther@suse.de>
1910
1911         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1912         (fwprop_addr): Likewise.
1913
1914 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1915
1916         PR target/70873
1917         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1918         New prototype.
1919         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1920         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1921         the splitter condition.
1922         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1923         the splitter condition.
1924         (FP float_extend load splitter): Ditto.
1925
1926 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1927
1928         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1929         to REGNO in all peephole2 patterns.
1930         (post-reload splitters): Change true_regnum to REGNO in
1931         post-reload splitters.
1932         (zero_extend splitters): Use general_reg_operand and
1933         nonimmediate_gr_operand predicates.
1934
1935 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1936
1937         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1938         v constraint instead of x.
1939
1940 2016-05-05  Alan Modra  <amodra@gmail.com>
1941
1942         PR target/68662
1943         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1944         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1945         TARGET_NO_FP_IN_TOC for -mrelocatable.
1946         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1947         TARGET_RELOCATABLE test.
1948         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1949         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1950         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1951         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1952         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1953         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1954         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1955         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1956         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1957         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1958         Likewise.
1959         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1960         (rs6000_stack_info): Likewise.
1961         (rs6000_elf_asm_out_constructor): Likewise.
1962         (rs6000_elf_asm_out_destructor): Likewise.
1963         (rs6000_elf_declare_function_name): Likewise.
1964         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1965         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1966         Don't define.
1967
1968 2016-05-05  Alan Modra  <amodra@gmail.com>
1969
1970         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1971
1972 2016-05-05  Alan Modra  <amodra@gmail.com>
1973
1974         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1975         out-of-line gpr restore for one or two regs if that would add
1976         a save of lr.
1977
1978 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1979
1980         PR target/70873
1981         * config/i386/i386.md
1982         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1983         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1984         as operand 0 predicate.
1985         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1986         Ditto.
1987         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1988         Ditto.  Emit the pattern using RTX.
1989
1990         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1991         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1992         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1993         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1994         Ditto.
1995         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1996         sse_reg_operand as operand 0 predicate.
1997
1998         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1999         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
2000         instead of gen_rtx_REG.
2001         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
2002         Ditto.
2003
2004 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
2005
2006         * function.c (emit_use_return_register_into_block): Delete.
2007         (gen_return_pattern): Delete.
2008         (emit_return_into_block): Delete.
2009         (active_insn_between): Delete.
2010         (convert_jumps_to_returns): Delete.
2011         (emit_return_for_exit): Delete.
2012         (thread_prologue_and_epilogue_insns): Delete all code dealing with
2013         simple_return for shrink-wrapped blocks.
2014         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
2015         end of blocks that need one.
2016         (get_unconverted_simple_return): Delete.
2017         (convert_to_simple_return): Delete.
2018         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
2019         (convert_to_simple_return): Ditto.
2020
2021 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
2022
2023         * cfgcleanup.c (bb_is_just_return): New function.
2024         (try_optimize_cfg): Simplify jumps to return, branches to return,
2025         and branches around return.
2026
2027 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
2028
2029         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
2030         branch to a return.
2031
2032 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2033
2034         PR c++/70906
2035         PR c++/70933
2036         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2037         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2038         assert flags & OEP_HASH_CHECK, instead of asserting it
2039         never happens.  Handle TARGET_EXPR.
2040         * fold-const.c (operand_equal_p): For hash verification,
2041         or in OEP_HASH_CHECK into flags.
2042
2043 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2044
2045         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2046         comment.
2047         (compute_samebase_partition_bases): Fix typo.
2048
2049 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2050
2051         * config/i386/sse.md (vec_interleave_highv8sf,
2052         vec_interleave_lowv8sf, vec_interleave_highv4df,
2053         vec_interleave_lowv4df): Remove constraints from expanders.
2054
2055         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
2056
2057 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2058
2059         * tree-inline.c (expand_call_inline): Fix path dealing with
2060         making lhs of call statement undefined.
2061
2062 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2063
2064         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
2065         Check availability on NODE, too.
2066         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
2067         (cgraph_node::call_for_symbol_and_aliases): Likewise.
2068         (varpool_node::call_for_symbol_and_aliase): Likewise.
2069         * ipa-pure-const.c (add_new_function): Analyze all bodies.
2070         (propagate_pure_const): Propagate across interposable functions, too.
2071         (skip_function_for_local_pure_const): Do not skip interposable bodies
2072         with aliases.
2073         (pass_local_pure_const::execute): Update.
2074
2075 2016-05-04  Marek Polacek  <polacek@redhat.com>
2076
2077         * doc/invoke.texi: Document -Wdangling-else.
2078
2079 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2080
2081         * config.gcc: Error out when conflicting multilib is detected.  Do not
2082         loop over multilibs since no combination is legal.
2083
2084 2016-05-04  Alan Modra  <amodra@gmail.com>
2085
2086         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
2087         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
2088         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2089         Align .toc.
2090
2091 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
2092
2093         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
2094         Clean up p5600 comments.
2095
2096 2016-05-04  Richard Biener  <rguenther@suse.de>
2097
2098         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
2099         constructor simplifications.
2100         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
2101
2102 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
2103
2104         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
2105         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
2106         result.set_rtx is null instead of aborting.
2107         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
2108         Always enable.
2109         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
2110         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
2111         *mov<mode>_store_postinc): New patterns.
2112
2113 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
2114
2115         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
2116         as commutative.  Check both conversions are NOP.
2117         ((A & B) OP (C & B)): Remove.
2118
2119 2016-05-04  Alan Modra  <amodra@gmail.com>
2120
2121         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
2122
2123 2016-05-04  Alan Modra  <amodra@gmail.com>
2124
2125         PR target/70866
2126         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
2127         when cr2,3,4 are all fixed regs.
2128
2129 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
2130
2131         PR rtl-optimization/57193
2132         * opts.c (default_options_table): Revert OPT_frename_registers change.
2133         * doc/invoke.texi (-frename-registers, -O2): Likewise.
2134
2135 2016-05-03  Martin Sebor  <msebor@redhat.com>
2136
2137         PR c++/66561
2138         * builtins.c (fold_builtin_FILE): New function.
2139         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
2140         (fold_builtin_0): Call them.
2141         * gimplify.c (gimplify_call_expr): Remove the handling of
2142         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
2143
2144         PR c++/66561
2145         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
2146         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
2147         constants.
2148
2149         PR c++/66639
2150         * doc/extend.texi (Function Names as Strings): Update __func__,
2151         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
2152         constants.
2153
2154 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2155             Richard Biener  <rguenther@suse.de>
2156
2157         PR tree-optimization/70916
2158         * tree-if-conv.c: Include cfganal.h.
2159         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
2160         and remove_fake_exit_edges around the optimization pass.
2161
2162 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
2163
2164         * cgraph.c (symbol_table::create_edge): Set inline_failed.
2165         (cgraph_edge::make_direct): Likewise.
2166         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
2167         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
2168         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
2169         (CIF_THUNK): New code.
2170         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
2171         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
2172         (compute_inline_parameters): Set inline_failed for thunks.
2173         (inline_analyze_function): Cleanup.
2174         * ipa-inline.c (can_inline_edge_p): Do not deal with
2175         call_stmt_cannot_inline_p.
2176         (can_early_inline_edge_p): Likewise.
2177         (early_inliner): Initialize inline_failed.
2178         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
2179
2180 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
2181
2182         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
2183         from nonimm_ssenomem_operand.
2184         (nonimm_ssenomem_operand): New predicate.
2185         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
2186         as operand 0 predicate.
2187         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
2188         Disable unsupported alternatives using "enabled" attribute.
2189         Use register_ssemem_operand as operand 0 predicate.
2190         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
2191
2192 2016-05-03  Marek Polacek  <polacek@redhat.com>
2193
2194         PR c/70859
2195         * input.c (expansion_point_location): New function.
2196         * input.h (expansion_point_location): Declare.
2197
2198 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
2199
2200         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
2201         occurence with frame_offset_ ones.
2202
2203 2016-05-03  Alan Modra  <amodra@gmail.com>
2204
2205         PR rtl-optimization/70890
2206         * ira.c (combine_and_move_insns): When moving def_insn, remove
2207         equivs on use_insn.
2208
2209 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2210
2211         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
2212         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
2213         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
2214         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
2215
2216 2016-05-03  Alan Modra  <amodra@gmail.com>
2217
2218         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
2219         for SAVE_MULTIPLE/STORE_MULTIPLE.
2220
2221 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2222
2223         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
2224         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
2225
2226 2016-05-03  Richard Biener  <rguenther@suse.de>
2227
2228         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
2229         default true.
2230         (gimplify_arg): Likewise.
2231         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
2232         re-writing the result to a decl if required.
2233         (internal_get_tmp_var): Add allow_ssa parameter
2234         and override into_ssa with it.
2235         (get_formal_tmp_var): Adjust.
2236         (get_initialized_tmp_var): Add allow_ssa parameter.
2237         (gimplify_arg): Add allow_ssa parameter and avoid generating
2238         SSA names for the result false.
2239         (gimplify_call_expr): If the call may return twice do not
2240         gimplify parameters into SSA.
2241         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
2242         (gimplify_modify_expr): Adjust assert.  For noreturn calls
2243         with a SSA name LHS adjust its def.
2244         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
2245         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
2246         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
2247         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
2248         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
2249         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
2250         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
2251         (optimize_target_teams): Do not allow SSA names for clause operands.
2252         (gimplify_expr): Likewise for where we mark the result addressable.
2253         * passes.def (pass_init_datastructures): Remove.
2254         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
2255         (rewrite_stmt): Likewise.
2256         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
2257         (replace_locals_op): Replace SSA names.
2258         (copy_gimple_seq_and_replace_locals): Init src_cfun.
2259         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
2260         * cgraph.c (release_function_body): Free CFG annotations only
2261         when we have a CFG.  Simplify.
2262         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2263         force_gimple_operand instead of get_initialized_tmp_var.
2264         * tree-pass.h (make_pass_init_datastructures): Remove.
2265         * tree-ssa.c (execute_init_datastructures): Remove.
2266         (pass_data_init_datastructures): Likewise.
2267         (class pass_init_datastructures): Likewise.
2268         (make_pass_init_datastructures): Likewise.
2269         * omp-low.c (create_omp_child_function): Init SSA data structures.
2270         (grid_expand_target_grid_body): Likewise.
2271         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
2272         name before adding it to names_to_release.
2273         (remove_bb): Always release SSA defs.
2274         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
2275         before dereferencing it.
2276         * cgraphunit.c (init_lowered_empty_function): Always
2277         int SSA data structures.
2278         * tree-ssanames.c (release_defs): Remove assert that we are in
2279         SSA form.
2280         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
2281
2282 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2283             Uros Bizjak  <ubizjak@gmail.com>
2284
2285         PR rtl-optimization/70467
2286         * config/i386/predicates.md (x86_64_hilo_int_operand,
2287         x86_64_hilo_general_operand): New predicates.
2288         * config/i386/constraints.md (Wd): New constraint.
2289         * config/i386/i386.md (mode attr di): Use Wd instead of e.
2290         (general_hilo_operand): New mode attr.
2291         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
2292         instead of <general_operand>.
2293         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
2294         x86_64_hilo_general_operand instead of <general_operand>.
2295
2296 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2297
2298         PR tree-optimization/70916
2299         * tree-if-conv.c (constant_or_ssa_name): Removed.
2300         (fold_build_cond_expr): Use is_gimple_val instead of
2301         constant_or_ssa_name.
2302
2303         PR tree-optimization/70916
2304         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
2305         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
2306
2307         PR target/49244
2308         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
2309         (optimize_atomic_bit_test_and): New function.
2310         (pass_fold_builtins::execute): Use it.
2311         * optabs.def (atomic_bit_test_and_set_optab,
2312         atomic_bit_test_and_complement_optab,
2313         atomic_bit_test_and_reset_optab): New optabs.
2314         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
2315         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
2316         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
2317         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
2318         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
2319         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
2320         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
2321         * doc/md.texi (atomic_bit_test_and_set@var{mode},
2322         atomic_bit_test_and_complement@var{mode},
2323         atomic_bit_test_and_reset@var{mode}): Document.
2324         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
2325         atomic_bit_test_and_complement<mode>,
2326         atomic_bit_test_and_reset<mode>): New expanders.
2327         (atomic_bit_test_and_set<mode>_1,
2328         atomic_bit_test_and_complement<mode>_1,
2329         atomic_bit_test_and_reset<mode>_1): New insns.
2330
2331 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
2332
2333         PR rtl-optimization/70687
2334         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
2335         instead of unsigned HOST_WIDE_INT.
2336
2337 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
2338
2339         PR rtl-optimization/44281
2340         * hard-reg-set.h (struct target_hard_regs): New field
2341         x_fixed_nonglobal_reg_set.
2342         (fixed_nonglobal_reg_set): New macro.
2343         * reginfo.c (init_reg_sets_1): Initialize it.
2344         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
2345         of fixed_reg_set.
2346         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
2347
2348 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2349
2350         PR tree-optimization/56541
2351         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
2352         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
2353         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
2354         (any_complicated_phi): new static variable.
2355         (aggressive_if_conv): delete.
2356         (if_convertible_phi_p): support phis with more than two arguments.
2357         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
2358         critical pred edges.
2359         (ifcvt_split_critical_edges): support phis with more than two
2360         arguments by checking new parameter.  only split critical edges
2361         if needed.
2362         (tree_if_conversion): handle simd pragma marked loop using new
2363         local variable aggressive_if_conv.  check any_complicated_phi.
2364
2365 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2366
2367         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
2368         before using it.
2369
2370 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2371
2372         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
2373         cbase.
2374
2375 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2376
2377         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
2378         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
2379         define_insn_and_split.
2380         (mulsi3_i): New define_insn_and_split.
2381         (mulsi3_call): Convert to define_insn.
2382         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
2383         Remove constraints.
2384
2385 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2386
2387         * machmode.h (mode_complex): Add support to give the complex mode
2388         for a given mode.
2389         (GET_MODE_COMPLEX_MODE): Likewise.
2390         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2391         stored by build_complex_type and gfc_build_complex_type instead of
2392         trying to figure out the appropriate mode based on the size. Raise
2393         an assertion error, if the type was not set.
2394         * genmodes.c (struct mode_data): Add field for the complex type of
2395         the given type.
2396         (blank_mode): Likewise.
2397         (make_complex_modes): Remember the complex mode created in the
2398         base type.
2399         (emit_mode_complex): Write out the mode_complex array to map a
2400         type mode to the complex version.
2401         (emit_insn_modes_c): Likewise.
2402         * tree.c (build_complex_type): Set the complex type to use before
2403         calling layout_type.
2404         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2405         support for __float128 complex datatypes.
2406         (rs6000_hard_regno_mode_ok): Likewise.
2407         (rs6000_setup_reg_addr_masks): Likewise.
2408         (rs6000_complex_function_value): Likewise.
2409         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2410         __float128 and __ibm128 complex.
2411         (FLOAT128_IBM_P): Likewise.
2412         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2413         * doc/extend.texi (Additional Floating Types): Document that
2414         -mfloat128 must be used to enable __float128.  Document complex
2415         __float128 and __ibm128 support.
2416
2417 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2418
2419         PR target/49244
2420         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
2421         char/short arguments promoted to int because of promote_prototypes.
2422
2423 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2424
2425         * config/i386/predicates.md (register_ssemem_operand): New predicate.
2426         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
2427         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
2428         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
2429         alternatives using "enabled" attribute.  Use register_ssemem_operand
2430         as operand 1 predicate.
2431         (*cmpi<unord>xf_i387): Split XFmode pattern from
2432         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
2433         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
2434         *absneg<mode>2_i387.  Disable unsupported alternatives using
2435         "enabled" attribute.
2436         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
2437
2438 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2439
2440         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
2441         marker.
2442         (oacc_loop_process): Check mask for loop termination.
2443
2444 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2445
2446         * cif-code.def (CIF_THUNK): Add.
2447         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
2448         accidental change.
2449
2450 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2451
2452         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2453         (dump_inline_summary): Dump it.
2454         (fp_expression_p): New predicate.
2455         (estimate_function_body_sizes): Use it.
2456         (inline_merge_summary): Merge fp_expressions.
2457         (inline_read_section): Read fp_expressions.
2458         (inline_write_summary): Write fp_expressions.
2459         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2460         codegen boundary if either caller or callee is !fp_expressions.
2461         * ipa-inline.h (inline_summary): Add fp_expressions.
2462         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2463         to fp_expressions be sure the fp generation flags are updated.
2464
2465 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2466
2467         PR rtl-optimization/70467
2468         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2469
2470         PR rtl-optimization/70467
2471         * ipa-pure-const.c (check_call): Handle internal calls even in
2472         ipa mode like in local mode.
2473
2474 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2475
2476         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2477
2478 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2479
2480         * match.pd (X u< X, X u> X): New transformations.
2481
2482 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2483
2484         * flag-types.h (enum warn_strict_overflow_code): Move ...
2485         * coretypes.h: ... here.
2486         * fold-const.h (fold_overflow_warning): Declare.
2487         * fold-const.c (fold_overflow_warning): Make non-static.
2488         (fold_comparison): Move the transformation of X +- C1 CMP C2
2489         into X CMP C2 -+ C1 ...
2490         * match.pd: ... here.
2491         * gimple-fold.c (fold_stmt_1): Protect with
2492         fold_defer_overflow_warnings.
2493
2494 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2495
2496         * omp-low.c (struct oacc_loop): Add 'inner' field.
2497         (new_oacc_loop_raw): Initialize it to zero.
2498         (oacc_loop_fixed_partitions): Initialize it.
2499         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2500         available partitioning.
2501
2502 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2503
2504         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2505         register_operand.
2506         (umulsidi3): Likewise.
2507         (indirect_jump): Fix jump instruction assembly patterns.
2508
2509 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2510
2511         PR target/70860
2512         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2513         (nvptx_function_value): Assert non-NULL cfun.
2514
2515 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2516
2517         PR rtl-optimization/70886
2518         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2519
2520         * cselib.h (rtx_equal_for_cselib_1): Declare.
2521         (rtx_equal_for_cselib_p: New inline function.
2522         * cselib.c (rtx_equal_for_cselib_p): Delete.
2523         (rtx_equal_for_cselib_1): Make public.
2524
2525 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2526
2527         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2528         (register_mixssei387nonimm_operand): Remove predicate.
2529         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2530         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2531         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2532         for TARGET_MIX_SSE_I387 alternatives.
2533         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2534         Disable unsupported alternatives using "enabled" attribute.  Use
2535         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2536         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2537
2538 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2539
2540         * tree.c (cst_and_fits_in_hwi): Simplify.
2541
2542 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2543
2544         * tree.h (wi::to_wide): New function.
2545         * expr.c (expand_expr_real_1): Use wi::to_wide.
2546         * fold-const.c (int_const_binop_1): Likewise.
2547         (extract_muldiv_1): Likewise.
2548
2549 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2550
2551         * wide-int.h: Update offset_int and widest_int documentation.
2552         (WI_SIGNED_SHIFT_RESULT): New macro.
2553         (wi::binary_shift): Define signed_shift_result_type for
2554         shifts on offset_int- and widest_int-like types.
2555         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2556         * tree.h (int_bit_position): Use shift operators instead of wi::
2557          shifts.
2558         * alias.c (adjust_offset_for_component_ref): Likewise.
2559         * expr.c (get_inner_reference): Likewise.
2560         * fold-const.c (fold_comparison): Likewise.
2561         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2562         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2563         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2564         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2565         (stmt_kills_ref_p): Likewise.
2566         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2567         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2568         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2569         (ao_ref_init_from_vn_reference): Likewise.
2570
2571 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2572
2573         * wide-int.h: Update offset_int and widest_int documentation.
2574         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2575         (wi::binary_traits): Allow ordered comparisons between offset_int and
2576         offset_int, between widest_int and widest_int, and between either
2577         of these types and basic C types.
2578         (operator <, <=, >, >=): Define for the same combinations.
2579         * tree.h (tree_int_cst_lt): Use comparison operators instead
2580         of wi:: comparisons.
2581         (tree_int_cst_le): Likewise.
2582         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2583         (fold_nonarray_ctor_reference): Likewise.
2584         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2585         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2586         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2587         * tree-sra.c (completely_scalarize): Likewise.
2588         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2589         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2590         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2591         (check_for_binary_op_overflow): Likewise.
2592         (search_for_addr_array): Likewise.
2593         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2594
2595 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2596
2597         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2598         (arc_save_restore): Likewise.
2599         (arc_dwarf_register_span): Likewise.
2600         (arc_output_pic_addr_const): Initialize suffix variable.
2601
2602 2016-05-02  Martin Liska  <mliska@suse.cz>
2603
2604         * symbol-summary.h (function_summary::function_summary):
2605         Remove checking assert for all cgraph nodes.
2606         (function_summary::get): Check summary_uid.
2607         (symtab_insertion): Check summary_uid.
2608
2609 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2610
2611         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2612         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2613         bmaskn instruction.
2614         (arc_dwarf_register_span): Remove enum keyword.
2615         (compact_memory_operand_p): New function.
2616         * config/arc/arc.h (reg_class): Add code density register classes.
2617         (REG_CLASS_NAMES): Likewise.
2618         (REG_CLASS_CONTENTS): Likewise.
2619         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2620         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2621         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2622         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2623         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2624         constraints.
2625         (h, Rcd, Rsd, Rzd): New register constraints.
2626         (T): Use compact_memory_operand_p function.
2627         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2628
2629 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2630
2631         * config/sh/sh.md (*negnegt, *movtt): Remove.
2632
2633 2016-05-02  Marek Polacek  <polacek@redhat.com>
2634             Tom de Vries  <tom@codesourcery.com>
2635
2636         PR tree-optimization/70700
2637         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2638         bigger than FIRST_REF_NODE.
2639
2640 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2641
2642         PR target/52898
2643         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2644         TARGET_CMPEQDI_T.
2645         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2646         function is used when pseudos can be created.
2647         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2648         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2649         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2650         define_expand.  Allow it only when pseudos can be created.
2651         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2652
2653 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2654
2655         * config/i386/constraints.md (BC): Only allow -1 operands.
2656         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2657         Add "enabled" attribute.  Update XI mode attribute calculation.
2658         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2659         (*movoi_internal_avx): Update XI mode attribute calculation.
2660         (*movti_internal): Ditto.
2661
2662 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2663
2664         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2665         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2666
2667 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2668
2669         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2670         statement on instruction code.  Remove trailing spaces.
2671         (altivec_expand_stv_builtin): Likewise.
2672
2673 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2674
2675         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2676         (TARGET_FPU_DOUBLE): Simplify.
2677         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2678         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2679         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2680         with 'TARGET_FPU_DOUBLE'.
2681         * config/sh/sh.md: Likewise.
2682
2683 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2684
2685         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2686         SH_DIV_STR_FOR_SIZE): Remove.
2687         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2688         SH_DIV_STR_FOR_SIZE): Remove.
2689
2690 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2691
2692         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2693         logical_reg_operand): Delete.
2694         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2695         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2696         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2697         match_operand and match_test.
2698         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2699         variables on their first use.  Return bool values.
2700         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2701         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2702         arith_reg_operand for input operand.  Remove empty constraints.
2703         (xorsi3): Delete.
2704         (*xorsi3_compact): Rename to xorsi3.
2705         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2706         (*zero_extend<mode>si2_disp_mem): Update comment.
2707         (mov_nop): Delete.
2708
2709 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2710
2711         * config/sh/t-sh: Remove SH5 support.
2712         * config.gcc: Likewise.
2713         * configure: Likewise.
2714
2715 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2716
2717         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2718
2719 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2720
2721         * config/sh/sh.c (register_sh_passes, sh_option_override,
2722         sh_print_operand, prepare_move_operands,
2723         sh_can_follow_jump): Remove TARGET_SH1 checks.
2724         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2725         PROMOTE_MODE): Likewise.
2726         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2727         movdi): Likewise.
2728
2729 2016-04-30  Alan Modra  <amodra@gmail.com>
2730
2731         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2732         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2733         Check for user regs later to avoid unnecessary looping over regs.
2734         Merge user reg check with non-saved reg check.  Don't force
2735         inline VR restore when static chain used.
2736         (rs6000_frame_related): Omit eh_frame info for user regs when
2737         saving.
2738         (fixed_regs_p): Delete.
2739
2740 2016-04-30  Alan Modra  <amodra@gmail.com>
2741
2742         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2743         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2744         Update all uses.
2745
2746 2016-04-30  Alan Modra  <amodra@gmail.com>
2747
2748         PR target/69645
2749         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2750         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2751         Update all uses.
2752
2753 2016-04-30  Alan Modra  <amodra@gmail.com>
2754
2755         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2756         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2757         flag_pic test for Darwin.
2758
2759 2016-04-30  Alan Modra  <amodra@gmail.com>
2760
2761         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2762         throw_calls_crossed.
2763         (REG_FREQ_CALLS_CROSSED): Delete.
2764         (REG_N_THROWING_CALLS_CROSSED): Delete.
2765         * regstat.c (regstat_bb_compute_ri): Don't calculate
2766         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2767         (dump_reg_info): Don't print call cross frequency.
2768         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2769         and REG_N_THROWING_CALLS_CROSSED.
2770
2771 2016-04-30  Alan Modra  <amodra@gmail.com>
2772
2773         * regs.h (struct reg_info_t): Delete live_length.
2774         (REG_LIVE_LENGTH): Delete macro.
2775         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2776         local_live, local_processed and local_live_last_luid params.
2777         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2778         Formatting fixes.
2779         (regstat_compute_ri): Adjust for above.  Don't set
2780         REG_LIVE_LENGTH.
2781         (dump_reg_info): Don't print live length.
2782         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2783         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2784         Localize loop_depth var.
2785
2786 2016-04-30  Alan Modra  <amodra@gmail.com>
2787
2788         * ira.c (enum valid_equiv): New.
2789         (validate_equiv_mem): Return enum.
2790         (update_equiv_mem): Create replacement in more cases.
2791         (add_store_equivs): Update validate_equiv_mem call.
2792
2793 2016-04-30  Alan Modra  <amodra@gmail.com>
2794
2795         * ira.c (combine_and_move_insns): Rather than scanning insns,
2796         use DF infrastucture to find use and def insns.
2797
2798 2016-04-30  Alan Modra  <amodra@gmail.com>
2799
2800         ira.c (combine_and_move_insns): Move invariant conditions..
2801         (ira.c): ..to here.  Call combine_and_move_insns before
2802         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2803         req_equiv later using max_reg_num() rather than global max_regno.
2804         (contains_replace_regs): Delete.
2805         (add_store_equivs): Remove contains_replace_regs test.
2806
2807 2016-04-30  Alan Modra  <amodra@gmail.com>
2808
2809         * ira.c (struct equiv_mem_data): New.
2810         (equiv_mem, equiv_mem_modified): Delete static vars.
2811         (validate_equiv_mem_from_store): Use "data" param to communicate..
2812         (validate_equiv_mem): ..from here.
2813
2814 2016-04-30  Alan Modra  <amodra@gmail.com>
2815
2816         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2817         split out from..
2818         (update_reg_equivs): ..here.  Move allocation and freeing of
2819         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2820         end_alias_analysis to..
2821         (ira): ..here.
2822
2823 2016-04-30  Alan Modra  <amodra@gmail.com>
2824
2825         * ira.c (pdx_subregs): Delete.
2826         (struct equivalence): Add pdx_subregs field.
2827         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2828         pdx_subregs access.
2829         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2830         pdx_subregs access.
2831
2832 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2833
2834         * config/rs6000/altivec.h: Change definitions of vec_xl and
2835         vec_xst.
2836         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2837         (LD_ELEMREV_V2DI): New.
2838         (LD_ELEMREV_V4SF): New.
2839         (LD_ELEMREV_V4SI): New.
2840         (LD_ELEMREV_V8HI): New.
2841         (LD_ELEMREV_V16QI): New.
2842         (ST_ELEMREV_V2DF): New.
2843         (ST_ELEMREV_V2DI): New.
2844         (ST_ELEMREV_V4SF): New.
2845         (ST_ELEMREV_V4SI): New.
2846         (ST_ELEMREV_V8HI): New.
2847         (ST_ELEMREV_V16QI): New.
2848         (XL): New.
2849         (XST): New.
2850         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2851         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2852         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2853         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2854         (altivec_expand_builtin): Add handling for
2855         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2856         (rs6000_invalid_builtin): Add error-checking for
2857         RS6000_BTM_P9_VECTOR.
2858         (altivec_init_builtins): Define builtins used to implement vec_xl
2859         and vec_xst.
2860         (rs6000_builtin_mask_names): Define power9-vector.
2861         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2862         (RS6000_BTM_P9_VECTOR): Define.
2863         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2864         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2865         (vsx_ld_elemrev_v2df): Likewise.
2866         (vsx_ld_elemrev_v4sf): Likewise.
2867         (vsx_ld_elemrev_v4si): Likewise.
2868         (vsx_ld_elemrev_v8hi): Likewise.
2869         (vsx_ld_elemrev_v16qi): Likewise.
2870         (vsx_st_elemrev_v2df): Likewise.
2871         (vsx_st_elemrev_v2di): Likewise.
2872         (vsx_st_elemrev_v4sf): Likewise.
2873         (vsx_st_elemrev_v4si): Likewise.
2874         (vsx_st_elemrev_v8hi): Likewise.
2875         (vsx_st_elemrev_v16qi): Likewise.
2876         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2877         grammar.
2878
2879 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2880
2881         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2882         out into ...
2883         (simplify_control_stmt_condition_1): ... here.  Recurse into
2884         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2885
2886 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2887
2888         PR target/69810
2889         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2890         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2891         define_insn_and_split to define_insn.
2892         (zero_extendqi<mode>2_dot2): Same.
2893         (extendqi<mode>2_dot): Same.
2894         (extendqi<mode>2_dot2): Same.
2895
2896 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2897
2898         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2899         (probe_stack): New expander.
2900         (probe_stack_<mode>): New insn pattern.
2901
2902 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2903
2904         * config/i386/i386.md
2905         (operations with memory inputs setting flags peephole2):
2906         Remove uneeded REG_P checks.  Cleanup pattern generation.
2907
2908 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2909
2910         * tree-vect-loop.c (vect_transform_loop): Fix
2911         nb_iterations_upper_bound computation for vectorized loop.
2912
2913 2016-04-29  Marek Polacek  <polacek@redhat.com>
2914             Jakub Jelinek  <jakub@redhat.com>
2915
2916         PR sanitizer/70342
2917         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2918         TARGET_EXPR_SLOT as a base.
2919
2920 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2921
2922         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2923         with 'rCm2' constraints to limit possible immediate size.
2924         (*load_zeroextendqisi_update): Likewise.
2925         (*load_signextendqisi_update): Likewise.
2926         (*loadhi_update): Likewise.
2927         (*load_zeroextendhisi_update): Likewise.
2928         (*load_signextendhisi_update): Likewise.
2929         (*loadsi_update): Likewise.
2930         (*loadsf_update): Likewise.
2931
2932 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2933
2934         * config/i386/predicates.md (constm1_operand): Fix comparison.
2935
2936 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2937
2938         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2939
2940 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2941
2942         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2943         remaining SH5 related settings.
2944         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2945         shmedia_prepare_call_address): Delete.
2946         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2947         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2948         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2949         UNSUPPORTED_SH2A): Remove m5 checks.
2950         (sh_divide_strategy_e): Remove SH5 division strategies.
2951         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2952         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2953
2954 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2955
2956         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2957
2958 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2959
2960         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2961         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2962         Change lder to ldr.
2963         * config/s390/vector.md ("mov<mode>"): Likewise.
2964
2965 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2966
2967         * config/s390/constraints.md ("U", "W"): Invoke
2968         s390_mem_constraint with "ZR" and "ZT".
2969         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2970         addresses when using LRA.  Accept also short displacements for S
2971         and T constraints.  Do not check for long displacement target for
2972         S and T constraints.
2973         (s390_mem_constraint): Remove handling of U and W constraints.
2974         * config/s390/s390.md (various patterns): Remove the short
2975         displacement constraints (Q and R) if a long displacement
2976         constraint is present.  Add longdisp as required CPU capability.
2977         * config/s390/vector.md: Likewise.
2978         * config/s390/vx-builtins.md: Likewise.
2979
2980 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2981
2982         PR target/60040
2983         * reload1.c (reload): Call finish_spills before
2984         restarting reload loop. Skip select_reload_regs
2985         if update_eliminables_and_spill returns true.
2986
2987 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2988
2989         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2990         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2991         (umulhisi3_imm): Update predicates and constraint letters.
2992         (umulhisi3_reg): Declare instruction as commutative.
2993         * config/arc/constraints.md (J12, J16): New constraints.
2994         * config/arc/predicates.md (short_unsigned_const_operand): New
2995         predicate.
2996         (arc_short_operand): Likewise.
2997         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2998
2999 2016-04-29  Richard Biener  <rguenther@suse.de>
3000
3001         PR tree-optimization/13962
3002         PR tree-optimization/65686
3003         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
3004         * tree-ssa-alias.c (ptrs_compare_unequal): New function
3005         using PTA to compare pointers.
3006         * match.pd: Add pattern for pointer equality compare simplification
3007         using ptrs_compare_unequal.
3008
3009 2016-04-29  Richard Biener  <rguenther@suse.de>
3010
3011         * stor-layout.c (layout_type): Do not build a pointer-to-element
3012         type for arrays.
3013
3014 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
3015
3016         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
3017         Use SWI mode iterator.  Use general_reg_operand predicate.
3018         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
3019         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
3020         predicates.
3021
3022 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
3023
3024         PR middle-end/70843
3025         * fold-const.c (operand_equal_p): Don't verify hash value equality
3026         if arg0 == arg1.
3027         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
3028         and OMP_CLAUSE.
3029
3030 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3031
3032         PR target/70858
3033         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3034         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3035         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3036         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3037         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3038
3039 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3040
3041         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3042         to info.  Don't initialize separate fields to 0.  Clean up
3043         formatting a bit.
3044
3045 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3046
3047         * config/i386/i386.md (peephole2s for operations with memory inputs):
3048         Use SWI mode iterator.
3049         (peephole2s for operations with memory outputs): Ditto.
3050         Do not check for stack checking probe.
3051
3052         (probe_stack): Remove expander.
3053
3054 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3055             Andrew Burgess  <andrew.burgess@embecosm.com>
3056
3057         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
3058         operands as 32-bits.
3059
3060 2016-04-28  Jason Merrill  <jason@redhat.com>
3061
3062         * gdbinit.in: Skip line-map.h.
3063
3064 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3065             Andrew Burgess  <andrew.burgess@embecosm.com>
3066
3067         * config/arc/arc.c (arc_conditional_register_usage): Take
3068         TARGET_RRQ_CLASS into account.
3069         (arc_print_operand): Support printing 'p' and 's' operands.
3070         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
3071         as 0.
3072         (TARGET_RRQ_CLASS): Define.
3073         (IS_POWEROF2_OR_0_P): Define.
3074         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
3075         alternatives.
3076         (*tst_movb): New define_insn.
3077         (*tst): Avoid recognition if it could prevent '*tst_movb'
3078         combination; replace c/CnL with c/Chs alternative.
3079         (*tst_bitfield_tst): New define_insn.
3080         (*tst_bitfield_asr): New define_insn.
3081         (*tst_bitfield): New define_insn.
3082         (andsi3_i): Add Rrq variant.
3083         (extzv): New define_expand.
3084         (insv): New define_expand.
3085         (*insv_i): New define_insn.
3086         (*movb): New define_insn.
3087         (*movb_signed): New define_insn.
3088         (*movb_high): New define_insn.
3089         (*movb_high_signed): New define_insn.
3090         (*movb_high_signed + 1): New define_split pattern.
3091         (*mrgb): New define_insn.
3092         (*mrgb + 1): New define_peephole2 pattern.
3093         (*mrgb + 2): New define_peephole2 pattern.
3094         * config/arc/arc.opt (mbitops): New option for nps400, uses
3095         TARGET_NPS_BITOPS_DEFAULT.
3096         * config/arc/constraints.md (q): Make register class conditional.
3097         (Rrq): New register constraint.
3098         (Chs): New constraint.
3099         (Clo): New constraint.
3100         (Chi): New constraint.
3101         (Cbf): New constraint.
3102         (Cbn): New constraint.
3103         (C18): New constraint.
3104         (Cbi): New constraint.
3105
3106 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3107
3108         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
3109         dst->popcount.
3110         (bitmap_intersection_of_preds): Ditto.
3111         (bitmap_union_of_succs): Ditto.
3112         (bitmap_union_of_preds): Ditto.
3113         * sbitmap.c (do_popcount): Delete.
3114         (BITMAP_DEBUGGING): Delete.
3115         (sbitmap_verify_popcount): Delete.
3116         (sbitmap_alloc): Don't initialize the popcount field.
3117         (sbitmap_alloc_with_popcount): Delete.
3118         (sbitmap_resize): Don't resize the popcount array.
3119         (sbitmap_vector_alloc): Don't initialize the popcount field.
3120         (bitmap_copy): Don't copy the popcount array.
3121         (bitmap_clear): Don't clear the popcount array.
3122         (bitmap_clear): Delete the popcount array handling.
3123         (bitmap_ior_and_compl): Delete the popcount assert.
3124         (bitmap_not): Ditto.
3125         (bitmap_and_compl): Ditto.
3126         (bitmap_and): Delete the popcount array handling.
3127         (bitmap_xor): Ditto.
3128         (bitmap_ior): Ditto.
3129         (bitmap_or_and): Delete the popcount assert.
3130         (bitmap_and_or): Ditto.
3131         (popcount_table): Delete.
3132         (sbitmap_elt_popcount): Delete.
3133         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
3134         (bitmap_set_bit): Delete the popcount assert.
3135         (bitmap_clear_bit): Ditto.
3136         (sbitmap_free): Don't free the popcount array.
3137         (sbitmap_alloc_with_popcount): Delete declaration.
3138         (sbitmap_popcount): Ditto.
3139
3140 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3141             Andrew Burgess  <andrew.burgess@embecosm.com>
3142
3143         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
3144         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
3145         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
3146         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
3147         * config/arc/arc.opt (mcmem): New option.
3148         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
3149         supply length for r/m alternative.
3150         (*extendqisi2_ac): Likewise.
3151         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
3152         r/Uex alternative.
3153         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
3154         (movhi_insn): Likewise.
3155         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
3156         (*zero_extendqihi2_i): Add r/Ucm alternative.
3157         (*zero_extendqisi2_ac): Likewise.
3158         (*zero_extendhisi2_i): Likewise.
3159         * config/arc/constraints.md (Uex): New memory constraint.
3160         (Ucm): New define_constraint.
3161         * config/arc/predicates.md (long_immediate_loadstore_operand):
3162         Return 0 for MEM with cmem_address address.
3163         (cmem_address_0): New predicates.
3164         (cmem_address_1): Likewise.
3165         (cmem_address_2): Likewise.
3166         (cmem_address): Likewise.
3167
3168 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3169
3170         * config/rs6000/rs6000.c (machine_function): Rename
3171         insn_chain_scanned_p to spe_insn_chain_scanned_p.
3172         (rs6000_stack_info): Adjust.
3173
3174 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3175             Andrew Burgess  <andrew.burgess@embecosm.com>
3176
3177         * config/arc/constraints.md (Usd): Convert to define_constraint.
3178         (Us<): Likewise.
3179         (Us>): Likewise.
3180
3181 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3182
3183         PR target/70821
3184         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
3185         Add new peephole2 where the first insn is *mov<mode>_or instead of
3186         *mov<mode>_internal.
3187
3188 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
3189
3190         * tracer.c (bb_seen): Make static.
3191
3192 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
3193
3194         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
3195         support, setup defaults.
3196         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
3197         * config/arc/arc.c (arc_init): Add NPS400 support.
3198         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
3199         (TARGET_ARC700): NPS400 is also an ARC700.
3200         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
3201
3202 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3203
3204         PR target/70668
3205         * config/nds32/nds32.md (casesi): Don't access the operands array
3206         out of bounds.
3207
3208 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3209
3210         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
3211         (or $-1,reg peephole2): Ditto.
3212         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
3213
3214 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3215
3216         * doc/extend.texi (Common Function Attributes) [optimize]:
3217         Discourage use of the optimize attribute.
3218
3219 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
3220
3221         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
3222         special case builtin.
3223         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3224         ALTIVEC_BUILTIN_VEC_ADDE.
3225         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3226         support for ALTIVEC_BUILTIN_VEC_ADDE.
3227         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3228         for __builtin_vec_adde.
3229
3230 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3231
3232         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
3233         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
3234
3235 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3236
3237         PR testsuite/70595
3238         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3239         attributes): Document cilkplus_runtime.
3240
3241 2016-04-28  Martin Jambor  <mjambor@suse.cz>
3242
3243         * tree-cfg.c (verify_expr): Verify that local declarations belong to
3244         this function.  Call verify_expr on MEM_REFs and bases of other
3245         handled_components.
3246
3247 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3248
3249         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
3250         for WORD_REGISTER_OPERATIONS to runtime check.
3251
3252 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3253
3254         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
3255
3256 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3257
3258         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
3259         big-endian compilation.
3260         * config/arc/arc.md (addf3): Likewise.
3261         (subdf3): Likewise.
3262         (muldf3): Likewise.
3263
3264 2016-04-28  Richard Biener  <rguenther@suse.de>
3265
3266         PR tree-optimization/70840
3267         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
3268         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
3269         Mark x * pow(x,c) -> pow(x,c+1) commutative.
3270         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
3271
3272 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3273
3274         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
3275         and explain why in a comment.
3276
3277 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3278
3279         * config/arc/arc.md (cpu_facility): Add fpx variant.
3280         (subdf3): Prohibit use reverse sub when assist operations option
3281         is enabled.
3282         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
3283         instructions only when FPX is enabled.
3284         * testsuite/gcc.target/arc/trsub.c: New test.
3285
3286 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3287
3288         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
3289         mult_operator when calculating "type" attribute.
3290         (*fop_<mode>_1_i387): Ditto.
3291         (*fop_xf_1_i387): Ditto.
3292         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
3293         Use std::swap to swap operands.  Use RTL expressions to generate
3294         converted pattern.
3295
3296 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3297             Joern Rennecke  <joern.rennecke@embecosm.com>
3298
3299         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
3300         declaration.
3301         (emit_pic_move): Remove.
3302         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
3303         * config/arc/arc.c (emit_pic_move): Removed.
3304         (TARGET_HAVE_TLS): Define.
3305         (arc_conditional_register_usage): Test for arc_tp_regno.
3306         (arc_print_operand, arc_print_operand_address): Handle TLS
3307         unspecs.
3308         (arc_needs_pcl_p): New function.
3309         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
3310         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
3311         (arc_raw_symbolic_reference_mentioned_p): Likewise.
3312         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
3313         (arc_legitimize_tls_address): Likewise.
3314         (DTPOFF_ZERO_SYM): Define.
3315         (arc_legitimize_pic_address): Make it static, handle TLS cases.
3316         (arc_output_pic_addr_const): Print TLS unspecs.
3317         (prepare_pic_move): New function, replaces emit_pic_move.
3318         (arc_legitimate_constant_p): Handle TLS unspecs.
3319         (arc_legitimate_address_p): Likewise.
3320         (arc_rewrite_small_data_p): Use assert for TLS constants.
3321         (prepare_move_operands): Use prepare_pic_move.
3322         (arc_legitimize_address): Legitimize tls addresses.
3323         (arc_epilogue_uses): Check for arc_tp_regno.
3324         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
3325         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
3326         Define.
3327         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
3328         Likewise.
3329         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
3330         %(arc_tls_extra_start_spec).
3331         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
3332         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
3333         (EH_USES): Define.
3334         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
3335         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
3336         (UNSPEC_TLS_OFF): Add.
3337         (R10_REG): Define.
3338         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
3339         (get_thread_pointersi): New patterns.
3340         * config/arc/arc.opt (mtp-regno): New option.
3341         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
3342         (move_dest_operand): Likewise.
3343         * configure: Regenerate.
3344         * configure.ac: Add arc*-*-* case to test for tls.
3345         * doc/invoke.texi (ARC options): Document mtp-regno.
3346
3347 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3348
3349         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
3350         the new ARC HS SIMD instructions.
3351         (arc_preferred_simd_mode): New function.
3352         (arc_autovectorize_vector_sizes): Likewise.
3353         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
3354         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3355         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
3356         (arc_init_builtins): Add new SIMD builtin types.
3357         (arc_split_move): Handle 64 bit vector moves.
3358         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
3359         (TARGET_PLUS_QMACW): Define.
3360         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
3361         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
3362         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
3363         (VSUBADD4H): New builtins.
3364         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
3365         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
3366
3367 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
3368             Matthias Klose  <doko@debian.org>
3369
3370         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
3371
3372 2016-04-28  Richard Biener  <rguenther@suse.de>
3373
3374         PR middle-end/70777
3375         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
3376         canonicalization.
3377
3378 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
3379
3380         * common/config/sh/sh-common.c: Remove SH5 support.
3381         * config/sh/constraints.md: Likewise.
3382         * config/sh/config/sh/elf.h: Likewise.
3383         * config/sh/linux.h: Likewise.
3384         * config/sh/netbsd-elf.h: Likewise.
3385         * config/sh/predicates.md: Likewise.
3386         * config/sh/sh-c.c: Likewise.
3387         * config/sh/sh-protos.h: Likewise.
3388         * config/sh/sh.c: Likewise.
3389         * config/sh/sh.h: Likewise.
3390         * config/sh/sh.md: Likewise.
3391         * config/sh/sh.opt: Likewise.
3392         * config/sh/sync.md: Likewise.
3393         * config/sh/sh64.h: Delete.
3394         * config/sh/shmedia.h: Likewise.
3395         * config/sh/shmedia.md: Likewise.
3396         * config/sh/sshmedia.h: Likewise.
3397         * config/sh/t-netbsd-sh5-64: Likewise.
3398         * config/sh/t-sh64: Likewise.
3399         * config/sh/ushmedia.h: Likewise.
3400
3401 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3402
3403         * config/i386/i386.md (sign_extend to memory peephole2s): Use
3404         general_reg_operand instead of register_operand predicate.
3405
3406 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3407
3408         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
3409
3410 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
3411
3412         * match.pd (A - B > A, A + B < A): New transformations.
3413
3414 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
3415
3416         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
3417         which defaults to true.  Emit an outer pair of parentheses only if
3418         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
3419         don't emit parentheses for the right-hand operand.
3420
3421 2016-04-27  Jeff Law  <law@redhat.com>
3422
3423         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
3424
3425 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3426
3427         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
3428         (altivec_lvx_<mode>_internal): Document.
3429         (altivec_lvx_<mode>_2op): New define_insn.
3430         (altivec_lvx_<mode>_1op): Likewise.
3431         (altivec_lvx_<mode>_2op_si): Likewise.
3432         (altivec_lvx_<mode>_1op_si): Likewise.
3433         (altivec_stvx_<mode>): Remove.
3434         (altivec_stvx_<mode>_internal): Document.
3435         (altivec_stvx_<mode>_2op): New define_insn.
3436         (altivec_stvx_<mode>_1op): Likewise.
3437         (altivec_stvx_<mode>_2op_si): Likewise.
3438         (altivec_stvx_<mode>_1op_si): Likewise.
3439         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3440         Expand vec_ld and vec_st during parsing.
3441         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
3442         changes.
3443         (altivec_expand_stvx_be): Likewise.
3444         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
3445         address-masking behavior in RTL.
3446         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
3447         address-masking behavior in RTL.
3448         (altivec_expand_builtin): Change builtin code arguments for calls
3449         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3450         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3451         presence of lvx/stvx patterns.
3452         (alignment_with_canonical_addr): New function.
3453         (alignment_mask): Likewise.
3454         (find_alignment_op): Likewise.
3455         (recombine_lvx_pattern): Likewise.
3456         (recombine_stvx_pattern): Likewise.
3457         (recombine_lvx_stvx_patterns): Likewise.
3458         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3459         stvx patterns from expand.
3460         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3461         expansions.
3462         (vector_altivec_store_<mode>): Likewise.
3463
3464 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3465
3466         * config/aarch64/aarch64.md
3467         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3468         remove the "fp" attributes.
3469         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3470         add the "simd" attributes.
3471         (*movdf_aarch64): Likewise.
3472         (*movtf_aarch64): Remove the "fp" attributes.
3473         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3474         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3475
3476 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3477
3478         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3479         rtx to rtx_code_label *.
3480         * rtl.h (maybe_set_first_label_num): Likewise.
3481
3482 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3483
3484         * df-core.c (df_add_problem): Make the problem param be const.
3485         (df_remove_problem): Make local "problem" be const.
3486         * df-problems.c (problem_RD): Make const.
3487         (problem_LR): Likewise.
3488         (problem_LIVE): Likewise.
3489         (problem_MIR): Likewise.
3490         (problem_CHAIN): Likewise.
3491         (problem_WORD_LR): Likewise.
3492         (problem_NOTE): Likewise.
3493         (problem_MD): Likewise.
3494         * df-scan.c (problem_SCAN): Likewise.
3495         * df.h (struct df_problem): Make field "dependent_problem" be
3496         const.
3497         (struct dataflow): Likewise for field "problem".
3498         (df_add_problem): Make param const.
3499
3500 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3501
3502         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3503         inter-unit moves to/from vector registers are enabled.  Do not disable
3504         for TARGET_MMX.
3505
3506 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3507
3508         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3509         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3510         #define to...
3511         (enum df_problem_id): ...this new enum.
3512         (struct df_problem): Convert field "id" from "int" to
3513         enum df_problem_id.
3514
3515 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3516
3517         * rtl.def: Update comment for "things in the instruction chain" to
3518         reflect the removal of the leading "i" field for INSN_UID in
3519         r210360.  Fix bogus apostrophe.
3520
3521 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3522
3523         * config/i386/i386.md
3524         (lea arith with mem operand + setcc peephole2): Set operator mode.
3525
3526 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3527
3528         PR target/70155
3529         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3530         (dimode_scalar_to_vector_candidate_p): This.
3531         (timode_scalar_to_vector_candidate_p): New function.
3532         (scalar_to_vector_candidate_p): Likewise.
3533         (timode_check_non_convertible_regs): Likewise.
3534         (timode_remove_non_convertible_regs): Likewise.
3535         (remove_non_convertible_regs): Likewise.
3536         (remove_non_convertible_regs): Renamed to ...
3537         (dimode_remove_non_convertible_regs): This.
3538         (scalar_chain::~scalar_chain): Make it virtual.
3539         (scalar_chain::compute_convert_gain): Make it pure virtual.
3540         (scalar_chain::mark_dual_mode_def): Likewise.
3541         (scalar_chain::convert_insn): Likewise.
3542         (scalar_chain::convert_registers): Likewise.
3543         (scalar_chain::add_to_queue): Make it protected.
3544         (scalar_chain::emit_conversion_insns): Likewise.
3545         (scalar_chain::replace_with_subreg): Likewise.
3546         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3547         (scalar_chain::convert_op): Likewise.
3548         (scalar_chain::convert_reg): Likewise.
3549         (scalar_chain::make_vector_copies): Likewise.
3550         (scalar_chain::convert_registers): New pure virtual function.
3551         (class dimode_scalar_chain): New class.
3552         (class timode_scalar_chain): Likewise.
3553         (scalar_chain::mark_dual_mode_def): Renamed to ...
3554         (dimode_scalar_chain::mark_dual_mode_def): This.
3555         (timode_scalar_chain::mark_dual_mode_def): New function.
3556         (timode_scalar_chain::convert_insn): Likewise.
3557         (dimode_scalar_chain::convert_registers): Likewise.
3558         (scalar_chain::compute_convert_gain): Renamed to ...
3559         (dimode_scalar_chain::compute_convert_gain): This.
3560         (scalar_chain::replace_with_subreg): Renamed to ...
3561         (dimode_scalar_chain::replace_with_subreg): This.
3562         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3563         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3564         (scalar_chain::make_vector_copies): Renamed to ...
3565         (dimode_scalar_chain::make_vector_copies): This.
3566         (scalar_chain::convert_reg): Renamed to ...
3567         (dimode_scalar_chain::convert_reg ): This.
3568         (scalar_chain::convert_op): Renamed to ...
3569         (dimode_scalar_chain::convert_op): This.
3570         (scalar_chain::convert_insn): Renamed to ...
3571         (dimode_scalar_chain::convert_insn): This.
3572         (scalar_chain::convert): Call convert_registers.
3573         (convert_scalars_to_vector): Change to scalar_chain pointer to
3574         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3575         in 32-bit mode.  Delete scalar_chain pointer.  Call
3576         free_dominance_info in 64-bit mode.
3577         (pass_stv::gate): Remove TARGET_64BIT check.
3578         (ix86_option_override): Put the 64-bit STV pass before the CSE
3579         pass.
3580
3581 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3582
3583         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3584         dw_loc_frame_offset field.
3585         * dwarf2out.c (new_loc_descr): Likewise.
3586         (resolve_args_picking_1): Turn the VISITED hash set into a
3587         FRAME_OFFSET hash map. Use it to associate a frame offset to
3588         visited nodes. Remove uses of the CHECKING_P macro.
3589         (resolve_args_picking): Update call to resolve_args_picking_1.
3590
3591 2016-04-27  Martin Liska  <mliska@suse.cz>
3592
3593         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3594         (free_loop_data): Release vuses of groups.
3595
3596 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3597
3598         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3599         instead of redundant use_id and boolean have_use_for.
3600         (struct iv_use): Change sub_id into group_id.  Remove field next.
3601         Move fields: related_cands, n_map_members, cost_map and selected
3602         to ...
3603         (struct iv_group): ... here.  New structure.
3604         (struct iv_common_cand): Use structure declaration directly.
3605         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3606         (MAX_CONSIDERED_USES): Rename macro to ...
3607         (MAX_CONSIDERED_GROUPS): ... here.
3608         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3609         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3610         (dump_uses): Rename to ...
3611         (dump_groups): ... here.  Update all uses.
3612         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3613         (find_induction_variables): Refactor format of dump information.
3614         (record_sub_use): Delete.
3615         (record_use): Update all uses.
3616         (record_group): New function.
3617         (record_group_use, find_interesting_uses_op): Call above functions.
3618         Update all uses.
3619         (find_interesting_uses_cond): Ditto.
3620         (group_compare_offset): New function.
3621         (split_all_small_groups): Rename to ...
3622         (split_small_address_groups_p): ... here.  Update all uses.
3623         (split_address_groups):  Update all uses.
3624         (find_interesting_uses): Refactor format of dump information.
3625         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3626         base and step.
3627         (add_candidate, record_common_cand): Remove redundant assert.
3628         (add_iv_candidate_for_biv): Update use.
3629         (add_iv_candidate_derived_from_uses): Update all uses.
3630         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3631         (alloc_use_cost_map): Ditto.
3632         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3633         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3634         (determine_use_iv_cost_generic): Ditto.
3635         (determine_group_iv_cost_generic): Ditto.
3636         (determine_use_iv_cost_address): Ditto.
3637         (determine_group_iv_cost_address): Ditto.
3638         (determine_use_iv_cost_condition): Ditto.
3639         (determine_group_iv_cost_cond): Ditto.
3640         (determine_use_iv_cost): Ditto.
3641         (determine_group_iv_cost): Ditto.
3642         (set_autoinc_for_original_candidates): Update all uses.
3643         (find_iv_candidates): Update all uses.  Refactor dump information.
3644         (determine_use_iv_costs): Ditto.
3645         (determine_iv_costs): Ditto.
3646         (iv_ca_cand_for_use): Rename to ...
3647         (iv_ca_cand_for_group): ... here.  Update all uses.
3648         (iv_ca_add_use, iv_ca_add_group): Ditto.
3649         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3650         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3651         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3652         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3653         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3654         (create_new_iv, adjust_iv_update_pos): Ditto.
3655         (rewrite_use_address): Delete.
3656         (rewrite_use_address_1): Rename to ...
3657         (rewrite_use_address): ... here.
3658         (rewrite_use_compare): Update all uses.
3659         (rewrite_use): Delete.
3660         (rewrite_uses): Rename to ...
3661         (rewrite_groups): ... here.  Update all uses.
3662         (remove_unused_ivs, free_loop_data): Update all uses.
3663         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3664
3665 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3666
3667         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3668         for WORD_REGISTER_OPERATIONS to runtime check.
3669
3670 2016-04-27  Richard Biener  <rguenther@suse.de>
3671
3672         PR ipa/70760
3673         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3674         aggregate_value_p to determine if a function result is
3675         returned by reference.
3676         (ipa_pta_execute): Functions having their address taken are
3677         not automatically nonlocal.
3678
3679 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3680
3681         PR sanitizer/70683
3682         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3683         * fold-const.c (operand_equal_p): If flag_checking and
3684         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3685         and if it returns non-zero, assert iterative_hash_expr on both
3686         args is the same.
3687
3688 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3689
3690         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3691
3692 2016-04-27  Nick Clifton  <nickc@redhat.com>
3693
3694         PR middle-end/49889
3695         * varasm.c (merge_weak): Generate an error if an attempt is made
3696         to convert a non-weak static function into a weak, public function.
3697
3698 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3699
3700         * params.def (MAX_PARTITION_SIZE): New param.
3701         * doc/invoke.texi: Document lto-max-partition.
3702
3703 2016-04-27  Richard Biener  <rguenther@suse.de>
3704
3705         PR ipa/70785
3706         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3707         function cummulating used_from_other_partition, externally_visible
3708         and force_output from aliases.
3709         (refered_from_nonlocal_var): Likewise.
3710         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3711         node flags properly.
3712
3713 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3714
3715         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3716         (-Wmemset-elt-size): New item.
3717
3718 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3719
3720         PR ada/70759
3721         * stor-layout.h (internal_reference_types): Delete.
3722         * stor-layout.c (reference_types_internal): Likewise.
3723         (internal_reference_types): Likewise.
3724         (layout_type) <REFERENCE_TYPE>: Adjust.
3725
3726 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3727
3728         PR sanitizer/70683
3729         * tree.h (inchash::add_expr): Add FLAGS argument.
3730         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3731         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3732         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3733         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3734         if swap_tree_comparison (code) is smaller than code, hash that
3735         and arguments in the other order.  Hash CONVERT_EXPR the same
3736         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3737         of ADDR_EXPR of decl as the decl itself.  Add or remove
3738         OEP_ADDRESS_OF from recursive flags as needed.  For
3739         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3740         operands commutatively and only the third one normally.
3741         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3742
3743 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3744
3745         * config/rtems.h (LIB_SPEC): Add -latomic.
3746
3747 2016-04-27  Joel Sherrill  <joel@rtems.org>
3748
3749         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3750         xilink.ld and flags not relevant to RTEMS.
3751
3752 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3753
3754         * toplev.c (backend_init_target): Avoid calling init_reload when using
3755         LRA.
3756
3757 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3758
3759         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3760         for loops rather than one for the whole function.
3761
3762 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3763
3764         * match.pd (X + CST CMP X): New transformation.
3765
3766 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3767
3768         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3769         * fold-const.c (fold_binary_loc): Remove 2 transformations
3770         superseded by match.pd.
3771         * match.pd (x+x -> x*2): Generalize to integers.
3772
3773 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3774
3775         * config/i386/i386.md (operation on memory peephole): Duplicate an
3776         existing peephole and adapt it to match lea rather than an operation
3777         that clobbers CC.
3778
3779         PR rtl-optimization/57193
3780         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3781         and above.
3782         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3783
3784 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3785
3786         * tree-if-conv.c (any_pred_load_store): New static variable.
3787         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3788         any_pred_load_store instead of and_mask_load_store.
3789         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3790         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3791         (combine_blocks, tree_if_conversion): Ditto.
3792
3793 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3794
3795         PR tree-optimization/70771
3796         PR tree-optimization/70775
3797         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3798         virtual PHI nodes.  Delete parameter.
3799         (if_convertible_loop_p_1): Delete argument to above function.
3800         (predicate_all_scalar_phis): Delete code handling single-argument
3801         PHIs.
3802         (tree_if_conversion): Mark and update virtual SSA.
3803
3804 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3805
3806         PR target/61821
3807         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3808         (x86_elf_aligned_common): Rename to ...
3809         (x86_elf_aligned_decl_common): ... this.
3810         Add decl arg.  Switch to .lbss for largecomm object.  Use
3811         LARGECOMM_SECTION_ASM_OP.
3812         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3813         renaming.
3814         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3815         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3816         Pass new decl arg.
3817         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3818         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3819
3820 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3821
3822         PR target/59407
3823         * config/i386/i386.c (SECTION_LARGE): Define.
3824         (x86_64_elf_select_section): Set it for large data/bss sections.
3825         Only clear SECTION_WRITE for .lrodata.
3826         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3827         data/bss sections.
3828         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3829         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3830         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3831         SECTION_MACH_DEP.
3832         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3833         * doc/tm.texi: Regenerate.
3834
3835 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3836
3837         PR bootstrap/70704
3838         * configure.ac (--enable-checking): Document extra flag, for
3839         non-release builds default to --enable-checking=yes,extra.
3840         If misc checking and extra checking, define CHECKING_P to 2 instead
3841         of 1.
3842         * common.opt (fchecking=): Add.
3843         * doc/invoke.texi (-fchecking=): Document.
3844         * doc/install.texi: Document --enable-checking changes.
3845         * configure: Regenerated.
3846         * config.in: Regenerated.
3847
3848 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3849
3850         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3851         attribute instead of which_alternative.
3852         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3853         Use EXT_REX_SSE_REG_P where appropriate.
3854
3855 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3856
3857         * config/i386/predicates.md (const0_operand): Do not match
3858         const_wide_int code.
3859         (const1_operand): Ditto.
3860
3861 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3862
3863         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3864         for SSE constm1 operands and TARGET_AVX512VL.
3865         (*movti_internal): Ditto.
3866         (*mov<mode>_or): Use constm1_operand predicate.
3867         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3868         for SSE vector_all_ones operands and TARGET_AVX512VL.
3869         * config/i386/predicates.md (constm1_operand): New predicate.
3870         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3871         emission of constant -1 load.
3872
3873 2016-04-25  Jason Merrill  <jason@redhat.com>
3874
3875         * gdbinit.in: Skip is-a.h.
3876
3877         * attribs.c (register_scoped_attributes): Fix logic.
3878         * attribs.h: Declare register_scoped_attributes.
3879
3880 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3881
3882         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3883         stxvd2x and stxvw4x built-in functions.
3884
3885 2016-04-25  DJ Delorie  <dj@redhat.com>
3886
3887         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3888         (ashrhi3): Likewise.
3889         (lshrhi3): Likewise.
3890
3891 2016-04-25  Richard Biener  <rguenther@suse.de>
3892
3893         PR tree-optimization/70780
3894         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3895         wasn't visited yet.
3896         (compute_antic): Mark blocks with abnormal preds as visited as
3897         they have a final empty antic-in solution already.
3898
3899 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3900
3901         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3902
3903 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3904
3905         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3906         mode is VQI to improve mixed mode vectorization.
3907         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3908         define_insn to match low half of signed vaddw.
3909         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3910         define_insn to match high half of signed vaddw.
3911         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3912         define_insn to match low half of unsigned vaddw.
3913         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3914         define_insn to match high half of unsigned vaddw.
3915         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3916         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3917         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3918         for new function.
3919         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3920         * config/arm/predicates.md (vect_par_constant_high): Support
3921         big endian and simplify by calling
3922         arm_simd_check_vect_par_cnst_half
3923         (vect_par_constant_low): Likewise.
3924
3925 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3926
3927         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3928         predicate for operand 2.
3929
3930 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3931             H.J. Lu  <hongjiu.lu@intel.com>
3932
3933         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3934         machine_mode argument.
3935         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3936         constm1_rtx operands.  For VOIDmode constants, get mode from
3937         pred_mode.  Check mode size if the mode is supported by ABI.
3938         (standard_sse_constant_opcode): Do not use standard_constant_p.
3939         Strictly check ABI support for all-ones operands.
3940         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3941         immediates. Update calls to standard_sse_constant_p.
3942         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3943         (ix86_rtx_costs): Ditto.
3944         * config/i386/i386.md (*movxi_internal_avx512f): Use
3945         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3946         Use (v,BC) alternative instead of (v,C). Use register_operand
3947         checks instead of MEM_P.
3948         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3949         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3950         isa attribute.  Use register_operand checks instead of MEM_P.
3951         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3952         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3953         alternative and corresponding sse2 isa attribute.
3954         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3955         to standard_sse_constant_p.
3956         (FP constant splitters): Ditto.
3957         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3958         (C): Ditto.
3959         * config/i386/predicates.md (constm1_operand): Remove.
3960         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3961         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3962         vector_all_ones_operand instead of constm1_operand.
3963
3964 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3965
3966         * print-rtl.c (print_rtx_insn_vec): New function.
3967         * print-rtl.h: New prototype.
3968         * store-motion.c (struct st_expr): Make avail_stores a vector.
3969         (st_expr_entry): Adjust.
3970         (free_st_expr_entry): Likewise.
3971         (print_store_motion_mems): Likewise.
3972         (find_moveable_store): Likewise.
3973         (compute_store_table): Likewise.
3974         (delete_store): Likewise.
3975         (build_store_vectors): Likewise.
3976
3977 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3978
3979         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3980
3981 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3982
3983         * vec.h (vec_safe_contains): New function.
3984         (vec::contains): Likewise.
3985         (vec::begin): Likewise.
3986         (vec::end): Likewise.
3987
3988 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3989
3990         PR sanitizer/70712
3991         * cfgexpand.c (expand_stack_vars): Fix typo.
3992
3993 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3994
3995         * system.h (list, map, set, vector): Include conditionally.
3996         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3997         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3998         * ipa-icf.c (INCLUDE_LIST): Define.
3999         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
4000         * config/sh/sh.c (INCLUDE_VECTOR): Define.
4001         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
4002         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
4003         * cp/logic.cc (INCLUDE_LIST): Define.
4004         * fortran/trans-common.c (INCLUDE_MAP): Define.
4005
4006 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4007
4008         * auto-profile.c: Remove <string.h> include.
4009         * ipa-icf-gimple.c: Remove <list> include.
4010         * diagnostic.c: Remove <new> include.
4011         * genmatch.c: Likewise.
4012         * pretty-print.c: Likewise.
4013         * toplev.c: Likewise
4014         * c/c-objc-common.c: Likewise.
4015         * cp/error.c: Likewise.
4016         * fortran/error.c: Likewise.
4017
4018 2016-04-22  Richard Biener  <rguenther@suse.de>
4019
4020         * lto-streamer-in.c (input_ssa_names): Do not allocate
4021         GIMPLE_NOP for all SSA names.
4022         * lto-streamer-out.c (output_ssa_names): Do not output
4023         SSA names that should have been released.
4024
4025 2016-04-22  Richard Biener  <rguenther@suse.de>
4026
4027         PR tree-optimization/70740
4028         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
4029         VDEF.
4030
4031 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4032
4033         PR target/70750
4034         * config/i386/predicates.md (call_insn_operand): Replace
4035         sibcall_memory_operand with memory_operand.
4036
4037 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
4038
4039         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4040         has_single_use() tests.
4041         (register_edge_assert_for_1): Likewise.
4042         (find_assert_locations_1): Check the liveness bitmap instead of
4043         checking has_single_use().
4044
4045 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
4046
4047         PR target/70728
4048         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4049         Extract AVX-512BW constraint from AVX.
4050
4051 2016-04-21  Richard Biener  <rguenther@suse.de>
4052
4053         PR tree-optimization/70725
4054         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
4055         for phi_convertible_by_degenerating_args.
4056         (predicate_all_scalar_phis): Handle single-argument PHIs.
4057
4058 2016-04-21  Richard Biener  <rguenther@suse.de>
4059
4060         PR middle-end/70747
4061         * fold-const.c (fold_comparison): Return properly typed
4062         constant boolean.
4063
4064 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
4065
4066         PR tree-optimization/70715
4067         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4068         after expanding BASE using expand_simple_operations.
4069
4070 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4071
4072         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
4073         New transformations.
4074
4075 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4076
4077         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
4078
4079 2016-04-20  Jan Hubicka  <jh@suse.cz>
4080
4081         * ipa-inline.c (can_inline_edge_p): Pass caller info to
4082         ultiimate_alias_target.
4083         (update_callee_keys): Likewise.
4084         (lookup_recursive_calls): Likewise.
4085         (speculation_useful_p): Likewise.
4086
4087 2016-04-20  Jan Hubicka  <jh@suse.cz>
4088
4089         PR ipa/70018
4090         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
4091         (set_nothrow_flag_1): ... this; handle interposition correctly;
4092         recurse on aliases and thunks.
4093         (cgraph_node::set_nothrow_flag): New.
4094         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
4095         functions compiled with non-call exceptions that binds to current
4096         def.
4097         (propagate_nothrow): Be safe WRT interposition.
4098         * cgraph.h (set_nothrow_flag): Update prototype.
4099
4100 2016-04-18  Jan Hubicka  <jh@suse.cz>
4101
4102         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4103         max_loop_iterations_int.
4104         (tree_unswitch_outer_loop): Likewise.
4105
4106 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4107
4108         PR tree-optimization/69489
4109         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
4110         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
4111         Revise dump message.
4112         (if_convertible_bb_p): Remove check on edge count of basic block's
4113         predecessors.
4114
4115 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4116
4117         PR tree-optimization/56625
4118         PR tree-optimization/69489
4119         * tree-data-ref.h (DR_INNERMOST): New macro.
4120         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
4121         hashing struct innermost_loop_behavior.
4122         (ref_DR_map): Remove.
4123         (innermost_DR_map): New map.
4124         (baseref_DR_map): Revise comment.
4125         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
4126         to innermost_DR_map accroding to its innermost loop behavior.
4127         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
4128         to its innermost loop behavior.
4129         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
4130         Add initialization for innermost_DR_map.  Record memory reference
4131         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
4132         have innermost loop behavior.
4133         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
4134         innermost_DR_map.
4135
4136 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
4137
4138         * config/i386/i386.md (*lea<mode>_general_1): Rename from
4139         *lea_general_1.  Use explicit SWI12 mode interator.
4140         (*lea<mode>_general_2): Rename from *lea_general_2.
4141         Use explicit SWI12 mode interator.
4142         (*lea<mode>_general_3): Rename from *lea_general_3.
4143         Use explicit SWI12 mode interator.
4144         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
4145         Use explicit SWI12 mode interator.
4146         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
4147         Use explicit SWI48 mode interator.
4148
4149 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4150
4151         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4152         Short-cut unaligned load and store cases.  Handle all integer
4153         vector modes.
4154         (ix86_expand_vector_move_misalign): Short-cut unaligned load
4155         and store cases.  Call ix86_avx256_split_vector_move_misalign
4156         directly without checking mode class.
4157
4158 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4159             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4160
4161         PR target/64971
4162         * config/aarch64/aarch64.md (sibcall): Force call
4163         address to be DImode for ILP32.
4164         (sibcall_value): Likewise.
4165
4166 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4167
4168         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4169
4170 2016-04-20  Richard Biener  <rguenther@suse.de>
4171
4172         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
4173         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
4174         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
4175         (maybe_push_res_to_seq): Adjust.
4176         * gimple-fold.c (maybe_build_generic_op): Likewise.
4177
4178 2016-04-20  Marek Polacek  <polacek@redhat.com>
4179
4180         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4181         rather than true.
4182
4183 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
4184
4185         * config/i386/sse.md (vec_unpacks_lo_hi): Always
4186         use kmovw to support AVX512F target.
4187
4188 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4189
4190         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
4191
4192 2016-04-20  Marek Polacek  <polacek@redhat.com>
4193
4194         PR tree-optimization/70725
4195         * tree-if-conv.c (is_false_predicate): New function.
4196         (predicate_mem_writes): Use it.
4197
4198 2016-04-20  Richard Biener  <rguenther@suse.de>
4199
4200         PR tree-optimization/70726
4201         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4202         shift amounts from a pattern stmt operand.
4203
4204 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4205
4206         PR target/70674
4207         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4208         stack_restore_from_fpr pattern when restoring r15.
4209         (s390_optimize_prologue): Strip away the memory barrier in the
4210         parallel when trying to get rid of restore insns.
4211         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4212         definition for loading the stack pointer from an FPR.  Compared to
4213         the normal move insn this pattern includes a full memory barrier.
4214
4215 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR middle-end/70680
4218         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4219         implicitly linear or lastprivate iterator on the outer context.
4220
4221 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4222
4223         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
4224         alignment check.
4225         * config/i386/i386.md (ssememalign): Removed.
4226         * config/i386/sse.md: Remove ssememalign attribute from patterns.
4227
4228 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4229
4230         PR target/69201
4231         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
4232         const short * to __builtin_ia32_loaddquhi512_mask.
4233         (_mm512_maskz_loadu_epi16): Likewise.
4234         (_mm512_mask_storeu_epi16): Pass short * to
4235         __builtin_ia32_storedquhi512_mask.
4236         (_mm512_mask_loadu_epi8): Pass const char * to
4237         __builtin_ia32_loaddquqi512_mask.
4238         (_mm512_maskz_loadu_epi8): Likewise.
4239         (_mm512_mask_storeu_epi8): Pass char * to
4240         __builtin_ia32_storedquqi512_mask.
4241         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
4242         const double * to __builtin_ia32_loadupd512_mask.
4243         (_mm512_mask_loadu_pd): Likewise.
4244         (_mm512_maskz_loadu_pd): Likewise.
4245         (_mm512_storeu_pd): Pass double * to
4246         __builtin_ia32_storeupd512_mask.
4247         (_mm512_mask_storeu_pd): Likewise.
4248         (_mm512_loadu_ps): Pass const float * to
4249         __builtin_ia32_loadups512_mask.
4250         (_mm512_mask_loadu_ps): Likewise.
4251         (_mm512_maskz_loadu_ps): Likewise.
4252         (_mm512_storeu_ps): Pass float * to
4253         __builtin_ia32_storeups512_mask.
4254         (_mm512_mask_storeu_ps): Likewise.
4255         (_mm512_mask_loadu_epi64): Pass const long long * to
4256         __builtin_ia32_loaddqudi512_mask.
4257         (_mm512_maskz_loadu_epi64): Likewise.
4258         (_mm512_mask_storeu_epi64): Pass long long *
4259         to __builtin_ia32_storedqudi512_mask.
4260         (_mm512_loadu_si512): Pass const int * to
4261         __builtin_ia32_loaddqusi512_mask.
4262         (_mm512_mask_loadu_epi32): Likewise.
4263         (_mm512_maskz_loadu_epi32): Likewise.
4264         (_mm512_storeu_si512): Pass int * to
4265         __builtin_ia32_storedqusi512_mask.
4266         (_mm512_mask_storeu_epi32): Likewise.
4267         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
4268         char * to __builtin_ia32_storedquqi256_mask.
4269         (_mm_mask_storeu_epi8): Likewise.
4270         (_mm256_mask_loadu_epi16): Pass const short * to
4271         __builtin_ia32_loaddquhi256_mask.
4272         (_mm256_maskz_loadu_epi16): Likewise.
4273         (_mm_mask_loadu_epi16): Pass const short * to
4274         __builtin_ia32_loaddquhi128_mask.
4275         (_mm_maskz_loadu_epi16): Likewise.
4276         (_mm256_mask_loadu_epi8): Pass const char * to
4277         __builtin_ia32_loaddquqi256_mask.
4278         (_mm256_maskz_loadu_epi8): Likewise.
4279         (_mm_mask_loadu_epi8): Pass const char * to
4280         __builtin_ia32_loaddquqi128_mask.
4281         (_mm_maskz_loadu_epi8): Likewise.
4282         (_mm256_mask_storeu_epi16): Pass short * to.
4283         __builtin_ia32_storedquhi256_mask.
4284         (_mm_mask_storeu_epi16): Pass short * to.
4285         __builtin_ia32_storedquhi128_mask.
4286         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
4287         const double * to __builtin_ia32_loadupd256_mask.
4288         (_mm256_maskz_loadu_pd): Likewise.
4289         (_mm_mask_loadu_pd): Pass onst double * to
4290         __builtin_ia32_loadupd128_mask.
4291         (_mm_maskz_loadu_pd): Likewise.
4292         (_mm256_mask_storeu_pd): Pass double * to
4293         __builtin_ia32_storeupd256_mask.
4294         (_mm_mask_storeu_pd): Pass double * to
4295         __builtin_ia32_storeupd128_mask.
4296         (_mm256_mask_loadu_ps): Pass const float * to
4297         __builtin_ia32_loadups256_mask.
4298         (_mm256_maskz_loadu_ps): Likewise.
4299         (_mm_mask_loadu_ps): Pass const float * to
4300         __builtin_ia32_loadups128_mask.
4301         (_mm_maskz_loadu_ps): Likewise.
4302         (_mm256_mask_storeu_ps): Pass float * to
4303         __builtin_ia32_storeups256_mask.
4304         (_mm_mask_storeu_ps): ass float * to
4305         __builtin_ia32_storeups128_mask.
4306         (_mm256_mask_loadu_epi64): Pass const long long * to
4307         __builtin_ia32_loaddqudi256_mask.
4308         (_mm256_maskz_loadu_epi64): Likewise.
4309         (_mm_mask_loadu_epi64): Pass const long long * to
4310         __builtin_ia32_loaddqudi128_mask.
4311         (_mm_maskz_loadu_epi64): Likewise.
4312         (_mm256_mask_storeu_epi64): Pass long long * to
4313         __builtin_ia32_storedqudi256_mask.
4314         (_mm_mask_storeu_epi64): Pass long long * to
4315         __builtin_ia32_storedqudi128_mask.
4316         (_mm256_mask_loadu_epi32): Pass const int * to
4317         __builtin_ia32_loaddqusi256_mask.
4318         (_mm256_maskz_loadu_epi32): Likewise.
4319         (_mm_mask_loadu_epi32): Pass const int * to
4320         __builtin_ia32_loaddqusi128_mask.
4321         (_mm_maskz_loadu_epi32): Likewise.
4322         (_mm256_mask_storeu_epi32): Pass int * to
4323         __builtin_ia32_storedqusi256_mask.
4324         (_mm_mask_storeu_epi32): Pass int * to
4325         __builtin_ia32_storedqusi128_mask.
4326         * config/i386/i386-builtin-types.def (PCSHORT): New.
4327         (PINT64): Likewise.
4328         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
4329         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
4330         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
4331         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
4332         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
4333         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
4334         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
4335         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
4336         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
4337         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
4338         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
4339         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
4340         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
4341         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
4342         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
4343         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
4344         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
4345         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
4346         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
4347         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
4348         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
4349         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
4350         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
4351         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
4352         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
4353         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
4354         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
4355         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
4356         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
4357         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
4358         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
4359         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
4360         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
4361         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
4362         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
4363         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
4364         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
4365         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
4366         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
4367         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
4368         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
4369         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
4370         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
4371         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
4372         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
4373         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
4374         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
4375         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
4376         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
4377         use UNSPEC_STOREU.
4378         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
4379         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
4380         load nor store.
4381         (ix86_expand_vector_move_misalign): Likewise.
4382         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
4383         to scalar function prototype for unaligned load/store builtins.
4384         (ix86_expand_special_args_builtin): Updated.
4385         * config/i386/sse.md (UNSPEC_LOADU): Removed.
4386         (UNSPEC_STOREU): Likewise.
4387         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
4388         (VI_ULOADSTORE_F_AVX512VL): Likewise.
4389         (ssescalarsize): Handle V4TI, V2TI and V1TI.
4390         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4391         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4392         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
4393         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
4394         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
4395         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
4396         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
4397         (<avx512>_storedqu<mode>_mask): Likewise.
4398         (*sse4_2_pcmpestr_unaligned): Likewise.
4399         (*sse4_2_pcmpistr_unaligned): Likewise.
4400         (*mov<mode>_internal): Renamed to ...
4401         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
4402         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
4403         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
4404         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
4405
4406 2016-04-19  Richard Biener  <rguenther@suse.de>
4407
4408         PR tree-optimization/70171
4409         * tree-ssa-phiprop.c: Include stor-layout.h.
4410         (phiprop_insert_phi): Handle the aggregate copy case.
4411         (propagate_with_phi): Likewise.
4412
4413 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
4414
4415         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
4416         instead of simplify_gen_subreg (... , 0).
4417         (ix86_delegitimize_address): Ditto.
4418         (ix86_split_divmod): Ditto.
4419         (ix86_split_copysign_const): Ditto.
4420         (ix86_split_copysign_var): Ditto.
4421         (ix86_expand_args_builtin): Ditto.
4422         (ix86_expand_round_builtin): Ditto.
4423         (ix86_expand_special_args_builtin): Ditto.
4424         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
4425         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
4426         (udivmodqi4): Ditto.
4427         (absneg splitters): Ditto.
4428         (*jcc_bt<mode>_1): Ditto.
4429
4430 2016-04-19  Richard Biener  <rguenther@suse.de>
4431
4432         PR tree-optimization/70724
4433         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4434         restoring out from ...
4435         (free_scc_vn): ... here.
4436         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4437         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4438         tail merging.
4439         (pass_fre::execute): Restore SSA info.
4440
4441 2016-04-19  Richard Biener  <rguenther@suse.de>
4442
4443         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
4444         * gimple-walk.c (walk_gimple_op): Initialize it.
4445         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
4446         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
4447         remapping SSA names of defs.
4448         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4449         adjustment.
4450
4451 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4452
4453         PR middle-end/70689
4454         * lra-constraints.c (equiv_substition_p): New.
4455         (process_alt_operands): Use it.
4456         (swap_operands): Swap it.
4457         (curr_insn_transform): Update it.
4458
4459 2016-04-18  Michael Matz  <matz@suse.de>
4460
4461         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4462         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4463         * tree-core.h (tree_type_common.align): Use bit-field.
4464         (tree_type_common.spare): New.
4465         (tree_decl_common.off_align): Make smaller.
4466         (tree_decl_common.align): Use bit-field.
4467
4468         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4469         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4470         (scan_sharing_clauses): Ditto.
4471         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4472         (omp_finish_file): Ditto.
4473         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4474         (layout_decl): Ditto.
4475         (relayout_decl): Ditto.
4476         (finalize_record_size): Use SET_TYPE_ALIGN.
4477         (finalize_type_size): Ditto.
4478         (finish_builtin_struct): Ditto.
4479         (layout_type): Ditto.
4480         (initialize_sizetypes): Ditto.
4481         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4482         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4483         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4484         (get_chain_field): Ditto.
4485         (get_trampoline_type): Ditto.
4486         (get_nl_goto_field): Ditto.
4487         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4488         SET_DECL_ALIGN.
4489         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4490         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4491         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4492         (build_qualified_type): Use SET_TYPE_ALIGN.
4493         (build_aligned_type, build_range_type_1): Ditto.
4494         (build_atomic_base): Ditto.
4495         (build_common_tree_nodes): Ditto.
4496         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4497         (expand_one_stack_var_at): Ditto.
4498         * coverage.c (build_var): Use SET_DECL_ALIGN.
4499         * except.c (init_eh): Ditto.
4500         * function.c (assign_parm_setup_block): Ditto.
4501         * symtab.c (increase_alignment_1): Ditto.
4502         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4503         * tree-vect-stmts.c (ensure_base_align): Ditto.
4504         * varasm.c (align_variable): Ditto.
4505         (assemble_variable): Ditto.
4506         (build_constant_desc): Ditto.
4507         (output_constant_def_contents): Ditto.
4508
4509         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4510         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4511         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4512         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4513         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4514
4515 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4516
4517         PR target/70708
4518         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4519         replace %vmovsd with "%vmovq".
4520         (vec_concatv2df): Likewise.
4521
4522 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4523
4524         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4525         (*vec_extractv2si_0): Ditto.
4526         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4527         (zero_extended_scalar_load_operand splitters): Ditto.
4528         (vec_extract splitters): Ditto.
4529         (*vec_extractv4si_0_zext): Ditto.
4530         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4531         and lowpart_subreg.
4532         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4533         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4534         (*sse4_1_extractps): Use lowpart_subreg.
4535         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4536
4537 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4538
4539         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4540         gld requirements.
4541         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4542         Mention Solaris 11 packaging changes.
4543         Update gas and gld requirements.
4544         Remove reference to pre-Solaris 10 bug.
4545         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4546         systems and bugs.
4547         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4548         with cc.
4549
4550 2016-04-17  Jan Hubicka  <jh@suse.cz>
4551
4552         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4553         max_loop_iterations_int.
4554
4555 2016-04-18  Richard Biener  <rguenther@suse.de>
4556
4557         PR tree-optimization/43434
4558         * tree-ssa-structalias.c (struct vls_data): New.
4559         (visit_loadstore): Handle all pointer-based accesses.
4560         (compute_dependence_clique): Compute a bitmap of restrict tags
4561         assigned bases and pass it to visit_loadstore.
4562
4563 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4564
4565         PR target/70711
4566         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4567         armv8.1-a and armv8.1-a+crc.
4568
4569 2016-04-18  Richard Biener  <rguenther@suse.de>
4570
4571         PR tree-optimization/70701
4572         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4573         references after translating through a memcpy.
4574
4575 2016-04-18  Richard Biener  <rguenther@suse.de>
4576
4577         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4578         (compute_antic): ... here.  For partial antic use regular
4579         postorder and scrap iteration.
4580         (compute_partial_antic_aux): Remove unused return value.
4581         (init_pre): Do not allocate postorder.
4582         (fini_pre): Do not free postorder.
4583
4584 2016-04-18  Richard Biener  <rguenther@suse.de>
4585
4586         PR middle-end/37870
4587         * expmed.c (extract_bit_field_1): Remove broken case
4588         using a wider MODE_INT mode.
4589
4590 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4591
4592         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4593         unless compiling with at least GCC-4.8.
4594
4595 2016-04-17  Jan Hubicka  <jh@suse.cz>
4596
4597         PR bootstrap/70706
4598         * graphite.c (graphite_finalize): Update call to
4599         tree_estimate_probability.
4600         * predict.h (tree_estimate_probability): Update prototype.
4601
4602 2016-04-17  Jan Hubicka  <jh@suse.cz>
4603
4604         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4605         (tree_estimate_probability): Likewise.
4606         (pass_profile::execute): Update.
4607         (report_predictor_hitrates): New function.
4608         * profile.c (compute_branch_probabilities): Use it.
4609         * predict.h (report_predictor_hitrates): Declare.
4610
4611 2016-04-17  Jan Hubicka  <jh@suse.cz>
4612
4613         PR ipa/70018
4614         * cgraph.h (cgraph_node::set_const_flag,
4615         cgraph_node::set_pure_flag): Update prototype to return bool;
4616         update comment.
4617         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4618         of interposable symbol are interposable, too.
4619         (cgraph_set_const_flag_1): Rename to ...
4620         (set_const_flag_1): ... this one; change to self recursive function
4621         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4622         clearnig the flag in all variants and also virtual thunks of const
4623         functions are pure; track if any change was done.
4624         (cgraph_node::set_const_flag): Update.
4625         (struct set_pure_flag_info): New struct.
4626         (cgraph_set_pure_flag_1): Rename to ...
4627         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4628         rather than pointer encoded flags; track if any changes was done;
4629         handle correctly clearning flag and setting flag of aliases already
4630         declared const.
4631         (cgraph_node::set_pure_flag): Update.
4632         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4633
4634 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4635
4636         PR other/70433
4637         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4638         backslash in label.
4639
4640 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4641
4642         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4643         '{}<> ' as escape-for-record.
4644
4645 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4646
4647         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4648         structure.
4649
4650 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4651
4652         PR other/70185
4653         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4654         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4655         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4656         * passes.c (finish_optimization_passes): Only call
4657         finish_graph_dump_file if dfi->graph_dump_initialized.
4658         (execute_function_dump, pass_init_dump_file): Use
4659         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4660
4661 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4662
4663         PR tree-optimization/70256
4664         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4665         (debug_varmap): New function.
4666
4667 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4668
4669         PR other/70183
4670         * passes.c (pass_manager::register_pass): Propagate pflags.
4671
4672 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4673
4674         PR other/68875
4675         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4676         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4677         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4678         check if it's equal to p_start.
4679         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4680
4681 2016-04-15  Jan Hubicka  <jh@suse.cz>
4682
4683         PR ipa/70018
4684         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4685         function does not bind to current def.
4686         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4687         handle conservatively calls to functions that does not need to bind
4688         to current def.
4689         (check_call): Update call of worse_state.
4690         (ignore_edge_for_nothrow): Update.
4691         (ignore_edge_for_pure_const): Likewise.
4692         (propagate_pure_const): Update calls to worse_state.
4693         (skip_function_for_local_pure_const): Reformat comments.
4694
4695 2016-04-15  Jan Hubicka  <jh@suse.cz>
4696
4697         PR ipa/70018
4698         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4699         (cgraph_node::function_symbol): Likewise.
4700         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4701         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4702         (symtab_node::ultimate_alias_target): Add REF parameter.
4703         (symtab_node::binds_to_current_def_p): Declare.
4704         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4705         (cgraph_node::function_symbol): Likewise.
4706         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4707         (cgraph_node::get_availability): Likewise.
4708         (cgraph_edge::binds_to_current_def_p): New inline function.
4709         (varpool_node::get_availability): Add REF parameter.
4710         (varpool_node::ultimate_alias_target): Likewise.
4711         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4712         (symtab_node::binds_to_current_def_p): Likewise.
4713         * varpool.c (varpool_node::get_availability): Likewise.
4714
4715 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4716
4717         PR target/70662
4718         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4719         Fix mode size check.
4720
4721 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4722
4723         * BASE-VER: Set to 7.0.0.
4724
4725 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4726
4727         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4728
4729 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4730
4731         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4732         architecture revisions.
4733
4734 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4735
4736         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4737         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4738         * config/i386/i386.md (stack decrement to push peepholes): Guard
4739         with !x86_using_red_zone ().
4740
4741 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4742
4743         PR c++/70675
4744         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4745         to dump_generic_node.
4746         (NIY): Pass also flags to do_niy.
4747
4748 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4749
4750         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4751         (simd_clone_vector_of_formal_parm_types)
4752         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4753         (simd_clone_mangle, simd_clone_create)
4754         (simd_clone_adjust_return_type, create_tmp_simd_array)
4755         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4756         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4757         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4758         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4759         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4760         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4761         * omp-simd-clone.c: ... this new file.
4762         (simd_clone_vector_of_formal_parm_types): Make it static.
4763         * Makefile.in (OBJS): Add omp-simd-clone.o.
4764
4765 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4766
4767         PR target/70662
4768         * config/i386/sse.md: Use proper memory operand modifiers.
4769
4770
4771 2016-04-15  Richard Biener  <rguenther@suse.de>
4772         Alan Modra  <amodra@gmail.com>
4773
4774         PR tree-optimization/70130
4775         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4776         when alignment stays not the same and no not use the realign
4777         scheme then.
4778
4779 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4780
4781         PR target/70669
4782         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4783         direct move handlers for KFmode. Change TFmode handlers test from
4784         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4785
4786 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4787
4788         PR c++/70594
4789         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4790         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4791         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4792         * tree-ssa-live.c (remove_unused_scope_block_p): When
4793         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4794         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4795         block_ultimate_origin is FUNCTION_DECL.
4796         (remove_unused_locals): If current_function_decl is
4797         polymorphic_ctor_dtor_p, pass initial true to
4798         remove_unused_scope_block_p' is_ctor_dtor_block.
4799
4800 2016-04-14  Martin Sebor  <msebor@redhat.com>
4801
4802         PR c++/69517
4803         PR c++/70019
4804         PR c++/70588
4805         * doc/extend.texi (Variable Length): Revert.
4806
4807 2016-04-14  Marek Polacek  <polacek@redhat.com>
4808             Jan Hubicka  <hubicka@ucw.cz>
4809
4810         PR c++/70029
4811         * tree.c (verify_type): Disable the canonical type of main variant
4812         check.
4813
4814 2016-04-14  Jason Merrill  <jason@redhat.com>
4815
4816         * cfgexpand.c, expr.c: Revert previous change.
4817
4818 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4819
4820         PR middle-end/70643
4821         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4822         when building a mem ref for the incoming reduction variable.
4823
4824 2016-04-14  Richard Biener  <rguenther@suse.de>
4825
4826         PR tree-optimization/70614
4827         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4828         loop if the evolution dropped to chrec_dont_know.
4829         (interpret_condition_phi): Likewise.
4830
4831 2016-04-14  Richard Biener  <rguenther@suse.de>
4832
4833         PR tree-optimization/70623
4834         * tree-ssa-pre.c (changed_blocks): Make global ...
4835         (compute_antic): ... local here.  Move and fix worklist
4836         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4837         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4838         worklist handling, dump when ANTIC_IN changed.
4839         (compute_partial_antic_aux): Remove worklist handling.
4840         (init_pre): Do not compute post dominators.  Add a comment about
4841         the CFG order chosen.
4842         (fini_pre): Do not free post dominators.
4843
4844 2016-04-13  Martin Sebor  <msebor@redhat.com>
4845
4846         PR c++/69517
4847         PR c++/70019
4848         PR c++/70588
4849         * doc/extend.texi (Variable Length): Document C++ specifics.
4850
4851 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4852
4853         PR c++/70641
4854         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4855         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4856         eh edges have been purged.
4857
4858         PR c++/70594
4859         * tree-sra.c (create_access_replacement,
4860         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4861         gets fancy name.
4862         * tree-pretty-print.c (dump_fancy_name): New function.
4863         (dump_decl_name, dump_generic_node): Use it.
4864
4865 2016-04-13  Jason Merrill  <jason@redhat.com>
4866
4867         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4868         * expr.c (expand_expr_real_1): Likewise.
4869
4870 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4871
4872         * config/i386/i386.md (kunpckhi): Swap operands.
4873         (kunpcksi): Likewise.
4874         (kunpckdi): Likewise.
4875         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4876         (vec_pack_trunc_<mode>): Likewise.
4877
4878 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4879
4880         PR debug/70628
4881         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4882
4883         PR middle-end/70633
4884         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4885         gimplification turns some element into non-constant.
4886
4887         PR debug/70628
4888         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4889         * explow.c (convert_memory_address_addr_space_1): No longer static,
4890         add NO_EMIT argument and don't call convert_modes if true, pass
4891         it down recursively, remove break after return.
4892         (convert_memory_address_addr_space): Adjust caller.
4893         * simplify-rtx.c (simplify_unary_operation_1): Call
4894         convert_memory_address_addr_space_1 instead of convert_memory_address,
4895         if it returns NULL, don't simplify.
4896
4897 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4898
4899         PR target/70630
4900         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4901
4902 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4903
4904         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4905         Bump the upper SIMDLEN limits, so that if the return type or
4906         characteristic type if the return type is void can be passed in
4907         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4908         allowed.
4909
4910 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4911
4912         PR target/70640
4913         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4914         Do not use "=" constraint on an input constraint.
4915         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4916         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4917         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4918         generates (neg (abs ...)) instead of (abs ...).
4919
4920 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4921
4922         PR rtl-optimization/70596
4923         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4924         just invalidate LRA data and reset them.  Adjust dump wording.
4925
4926 2016-04-12  Martin Liska  <mliska@suse.cz>
4927
4928         Revert
4929         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4930
4931         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4932         estimates here.
4933         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4934         max_loop_iterations_int.
4935         (tree_unswitch_outer_loop): Likewise.
4936         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4937         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4938
4939 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4940
4941         PR tree-optimization/68756
4942         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4943         instead of new_name.
4944
4945 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4946
4947         PR tree-optimization/70602
4948         * tree-sra.c (generate_subtree_copies): Don't write anything into
4949         constant pool decls.
4950
4951         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4952         regardless whether there are depend clauses or not.
4953
4954 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4955
4956         PR target/70381
4957         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4958         target attribute and pragma from changing the -mfloat128
4959         and -mfloat128-hardware options.
4960
4961         * doc/extend.texi (Additional Floating Types): Document PowerPC
4962         __float128 restrictions.
4963
4964 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4965
4966         PR target/70133
4967         * config/aarch64/driver-aarch64.c
4968         (aarch64_get_extension_string_for_isa_flags): New.
4969         (arch_extension): Rename to...
4970         (aarch64_arch_extension): ...This.
4971         (ext_to_feat_string): Rename to...
4972         (aarch64_extensions): ...This.
4973         (aarch64_core_data): Keep track of architecture extension flags.
4974         (cpu_data): Rename to...
4975         (aarch64_cpu_data): ...This.
4976         (aarch64_arch_driver_info): Keep track of architecture extension
4977         flags.
4978         (get_arch_name_from_id): Rename to...
4979         (get_arch_from_id): ...This, change return type.
4980         (host_detect_local_cpu): Update and reformat for renames, handle
4981         extensions through common infrastructure.
4982
4983 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4984
4985         PR target/70133
4986         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4987         track of a canonical flag name.
4988         (all_extensions): Likewise.
4989         (arch_to_arch_name): Also track extension flags enabled by the arch.
4990         (all_architectures): Likewise.
4991         (aarch64_parse_extension): Move to here.
4992         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4993         rework.
4994         (aarch64_rewrite_selected_cpu): Update for above change.
4995         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4996         are handled, such that the single explicit value enabled by an
4997         extension is kept seperate from the implicit values it also enables.
4998         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4999         to here.
5000         (aarch64_parse_extension): New.
5001         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
5002         here to config/aarch64/aarch64-protos.h.
5003         (aarch64_parse_extension): Move from here to
5004         common/config/aarch64/aarch64-common.c.
5005         (aarch64_option_print): Update.
5006         (aarch64_declare_function_name): Likewise.
5007         (aarch64_start_file): Likewise.
5008         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
5009         the canonical flag for extensions.
5010         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
5011         flags.
5012
5013 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
5014
5015         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
5016         AARCH64_FL_CRC.
5017
5018 2016-04-09  Tom de Vries  <tom@codesourcery.com>
5019
5020         PR tree-optimization/68953
5021         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
5022         first to last subscript.
5023
5024 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
5025
5026         PR tree-optimization/70586
5027         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
5028         for any calls.
5029
5030 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
5031
5032         PR lto/70289
5033         PR ipa/70348
5034         PR tree-optimization/70373
5035         PR middle-end/70533
5036         PR middle-end/70534
5037         PR middle-end/70535
5038         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5039         clauses for acc parallel reductions as necessary.  Error on those
5040         that are private.
5041         * omp-low.c (scan_sharing_clauses): Don't install variables which
5042         are used in acc parallel reductions.
5043         (lower_rec_input_clauses): Remove dead code.
5044         (lower_oacc_reductions): Add support for reference reductions.
5045         (lower_reduction_clauses): Remove dead code.
5046         (lower_omp_target): Don't remap variables appearing in acc parallel
5047         reductions.
5048         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
5049
5050 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
5051
5052         PR middle-end/70593
5053         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
5054         with multiple SSA_NAME defs, force the outputs other than first
5055         to be live before calling live_track_process_def on each output.
5056
5057         PR rtl-optimization/70574
5058         * fwprop.c (forward_propagate_and_simplify): Don't add
5059         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
5060         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
5061         paradoxical subregs within *loc.
5062
5063 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
5064
5065         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
5066         -ftree-parallelize-loops={0,1}.
5067         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
5068         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
5069         * config/ia64/hpux.h (LIB_SPEC): Likewise.
5070         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5071         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
5072
5073 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
5074
5075         PR sanitizer/70541
5076         * asan.c (instrument_derefs): If we get unknown location, extract it
5077         with EXPR_LOCATION.
5078         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
5079
5080 2016-04-08  Tom de Vries  <tom@codesourcery.com>
5081
5082         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
5083         implicit firstprivate clause.
5084
5085 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5086
5087         PR target/70566
5088         * config/arm/thumb2.md (tst + branch-> lsls + branch
5089         peephole below *orsi_not_shiftsi_si): Require that condition
5090         register is dead after the peephole.
5091         (second peephole after the above): Likewise.
5092
5093 2016-04-08  Alan Modra  <amodra@gmail.com>
5094
5095         PR target/70117
5096         * builtins.c (fold_builtin_classify): For IBM extended precision,
5097         look at just the high-order double to test for NaN.
5098         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
5099         test just the high double for Inf but both doubles for subnormal
5100         limit.
5101
5102 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
5103
5104         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
5105         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
5106         node->simdclone->mask_mode != VOIDmode masks.
5107         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
5108         earlier, use it instead of node->simdclone.
5109         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5110         Set clonei->mask_mode.
5111
5112 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5113
5114         PR c/70436
5115         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
5116         Pass it through to cp_parser_already_scoped_statement.
5117         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
5118         it through to cp_parser_statement.
5119         (cp_parser_statement): Pass IF_P through to
5120         cp_parser_iteration_statement.
5121         (cp_parser_pragma): Adjust call to
5122         cp_parser_iteration_statement.
5123
5124 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5125
5126         PR c/70436
5127         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
5128         resolve a future -Wparentheses warning.
5129         * omp-low.c (scan_sharing_clauses): Likewise.
5130         * tree-parloops.c (eliminate_local_variables): Likewise.
5131
5132 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
5133
5134         PR rtl-optimization/70398
5135         * lra-constraints.c (process_address_1): Check zero scale and code
5136         for reloading with zero scale.
5137
5138 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
5139
5140         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
5141         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
5142
5143 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
5144
5145         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5146         Add support for AVX512F clones, include them by default for
5147         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
5148         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
5149         up to 128.
5150
5151         PR middle-end/70550
5152         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
5153         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
5154         firstprivate clauses.
5155         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
5156         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
5157         (lower_omp_target): Set TREE_NO_WARNING for
5158         non-addressable possibly uninitialized vars which are copied into
5159         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
5160
5161 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
5162
5163         * config/pa/predicates.md (integer_store_memory_operand): Accept
5164         REG+D operands with a large offset when reload_in_progress is true.
5165         (floating_point_store_memory_operand): Likewise.
5166
5167 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5168
5169         PR c++/70336
5170         * match.pd (nested int casts): Limit to GIMPLE.
5171
5172 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
5173
5174         PR ipa/66223
5175         * ipa-devirt.c (maybe_record_node): Fix comment; use
5176         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
5177
5178 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5179
5180         PR rtl-optimization/70542
5181         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
5182         if there are any uses other than insn or debug insns.
5183
5184 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
5185             Jakub Jelinek  <jakub@redhat.com>
5186
5187         PR tree-optimization/70509
5188         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
5189         Shift HOST_WIDE_INT_1U instead of 1.
5190
5191 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5192
5193         PR tree-optimization/70509
5194         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5195         of the vector base type for index.
5196
5197 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5198
5199         PR target/70510
5200         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5201
5202 2016-04-05  Richard Biener  <rguenther@suse.de>
5203
5204         PR tree-optimization/70526
5205         * tree-sra.c (build_ref_for_offset): Use prev_base to
5206         extract the alias pointer type.
5207
5208 2016-04-05  Richard Biener  <rguenther@suse.de>
5209
5210         * dse.c (struct store_info): Remove alias_set member.
5211         (struct read_info_type): Likewise.
5212         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5213         spill_deleted, clear_alias_set_lookup): Remove.
5214         (get_group_info): Remove dead base == NULL_RTX case.
5215         (dse_step0): Remove initialization of removed variables.
5216         (delete_dead_store_insn): Reomve alias set dumping.
5217         (free_read_records): Remove alias_set handling.
5218         (canon_address): Remove alias_set_out parameter.
5219         (record_store): Remove spill_alias_set, it's always zero.
5220         (check_mem_read_rtx): Likewise.
5221         (dse_step2): Rename from ...
5222         (dse_step2_nospill): ... this.  Adjust.
5223         (scan_stores): Rename from ...
5224         (scan_stores_nospill): ... this.
5225         (scan_reads): Rename from ...
5226         (scan_reads_nospill): ... this.
5227         (scan_stores_spill, scan_reads_spill): Remove.
5228         (dse_step3_scan): Remove for_spills argument which is always false.
5229         (dse_step3): Likewise.
5230         (dse_step5): Rename from ...
5231         (dse_step5_nospill): ... this.  Remove alias_set handling.
5232         (rest_of_handle_dse): Adjust.
5233
5234 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5235
5236         PR target/70525
5237         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5238         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5239         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5240         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5241
5242 2016-04-05  Richard Biener  <rguenther@suse.de>
5243
5244         PR middle-end/70499
5245         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5246         non-register type temporaries into SSA.
5247
5248 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5249
5250         PR ipa/66223
5251         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5252         calls when sanitizing.
5253         (possible_polymorphic_call_target_p): Fix formatting.
5254
5255 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5256             Jakub Jelinek <jakub@redhat.com>
5257
5258         PR middle-end/70457
5259         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5260         to ensure a call statement is compatible with a built-in's
5261         prototype.
5262         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5263         Likewise.
5264
5265 2016-04-04  Richard Biener  <rguenther@suse.de>
5266
5267         PR rtl-optimization/70484
5268         * rtl.h (canon_output_dependence): Declare.
5269         * alias.c (canon_output_dependence): New function.
5270         * dse.c (record_store): Use canon_output_dependence rather
5271         than canon_true_dependence.
5272
5273 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5274
5275         PR ipa/68881
5276         * cgraph.h (symtab_node::copy_visibility_from): New function.
5277         * symtab.c (symtab_node::copy_visibility_from): New function.
5278         * ipa-visibility.c (optimize_weakref): New function.
5279         (function_and_variable_visibility): Use it.
5280
5281 2016-04-04  Martin Liska  <mliska@suse.cz>
5282
5283         PR hsa/70402
5284         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5285         value that is really in range handled by SBR instruction.
5286         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5287         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5288         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5289
5290 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5291
5292         PR target/70416
5293         PR target/67391
5294         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5295         set, but not for SP_REG operands.
5296
5297 2016-04-02  Martin Sebor  <msebor@redhat.com>
5298
5299         PR c++/67376
5300         * fold-const.c (maybe_nonzero_address): New function.
5301         (fold_comparison): Call it.  Fold equality and relational
5302         expressions involving null pointers.
5303         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5304
5305 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5306
5307         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5308         the "Y" constraint (scalar FP 0.0 immediate).
5309
5310         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5311         Add the "const_double" to the list of operand constraints.
5312
5313 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5314
5315         PR rtl-optimization/70467
5316         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5317         If low word of the last operand is 0, just emit addition/subtraction
5318         for the high word.
5319
5320 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5321
5322         PR target/70404
5323         * config/s390/s390.c (s390_expand_insv): Check for everything
5324         constant instead of just VOIDmode stuff.
5325
5326 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5327
5328         PR target/70496
5329         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5330
5331 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5332
5333         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5334
5335 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5336
5337         PR rtl-optimization/70461
5338         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5339         is necessary.
5340
5341 2016-03-31  Martin Liska  <mliska@suse.cz>
5342
5343         PR hsa/70399
5344         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5345         a tree value or an immediate integer value to a buffer
5346         that is eventually copied to a BRIG section.
5347         (emit_immediate_operand): Call the function here.
5348         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5349         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5350         of class' fields that are removed.
5351         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5352         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5353         m_brig_repr_size fields.
5354
5355 2016-03-31  Martin Liska  <mliska@suse.cz>
5356
5357         PR hsa/70391
5358         * hsa-gen.c (hsa_function_representation::update_dominance): New
5359         function.
5360         (convert_addr_to_flat_segment): Likewise.
5361         (gen_hsa_memory_set): New alignment argument.
5362         (gen_hsa_ctor_assignment): Likewise.
5363         (gen_hsa_insns_for_single_assignment): Provide alignment
5364         to gen_hsa_ctor_assignment.
5365         (gen_hsa_insns_for_direct_call): Add new argument.
5366         (expand_lhs_of_string_op): New function.
5367         (expand_string_operation_builtin): Likewise.
5368         (expand_memory_copy): New function.
5369         (expand_memory_set): New function.
5370         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5371         (convert_switch_statements): Change signature.
5372         (generate_hsa): Use a return value of the function.
5373         (pass_gen_hsail::execute): Do not call
5374         convert_switch_statements here.
5375         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5376         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5377         (hsa_function_representation::update_dominance): New function.
5378
5379 2016-03-31  Martin Liska  <mliska@suse.cz>
5380
5381         PR hsa/70391
5382         * hsa-brig.c (emit_directive_variable): Emit alignment
5383         according to hsa_symbol::m_align.
5384         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5385         (dump_hsa_symbol): Dump alignment of HSA symbols.
5386         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5387         (gen_hsa_addr_with_align): New function.
5388         (hsa_bitmemref_alignment): Use newly added function.
5389         (gen_hsa_insns_for_load): Likewise.
5390         (gen_hsa_insns_for_store): Likewise.
5391         (gen_hsa_memory_copy): New argument added.
5392         (gen_hsa_insns_for_single_assignment): Respect
5393         alignment for assignments processed via gen_hsa_memory_copy.
5394         (gen_hsa_insns_for_direct_call): Likewise.
5395         (gen_hsa_insns_for_return): Likewise.
5396         (gen_function_def_parameters): Set default alignment.
5397         * hsa.c (hsa_object_alignment): New function.
5398         (hsa_byte_alignment): Pasted function.
5399         * hsa.h (hsa_symbol::m_align): New field.
5400
5401 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5402
5403         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5404         scratch field for goto case.
5405
5406 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5407
5408         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5409
5410 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5411
5412         PR target/70442
5413         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5414         (scalar_chain::convert_insn): Call convert_op for reg
5415         moves to handle undefined registers.
5416
5417 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5418
5419         PR c++/70393
5420         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5421         Assert we don't want to move backwards.
5422
5423 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5424
5425         PR target/70453
5426         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5427
5428 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5429
5430         PR rtl-optimization/70460
5431         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5432         with operand from REG_LABEL_OPERAND, instead substitute
5433         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5434         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5435
5436 2016-03-31  Martin Liska  <mliska@suse.cz>
5437
5438         * passes.c (execute_one_pass): Do not call
5439         todo_after for a discarded function.
5440
5441 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5442
5443         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5444         (no_cost, infinite_cost): Initialize the new field.
5445         (get_computation_cost_at): Record setup cost.
5446         (determine_use_iv_cost_address): Skip cost computation for sub
5447         uses if we can estimate it without losing accuracy.
5448
5449 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5450
5451         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5452         estimates here.
5453         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5454         max_loop_iterations_int.
5455         (tree_unswitch_outer_loop): Likewise.
5456         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5457         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5458
5459 2016-03-30  Richard Biener  <rguenther@suse.de>
5460
5461         PR middle-end/70450
5462         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5463
5464 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5465
5466         PR target/70421
5467         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5468         in gen_blendm expander.
5469
5470 2016-03-30  Nick Clifton  <nickc@redhat.com>
5471
5472         PR target/62254
5473         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5474         case where we are already provided with an SImode SUBREG.
5475
5476 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5477
5478         PR target/70439
5479         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5480         conflict between DRAP register and __builtin_eh_return.
5481
5482 2016-03-30  Michael Matz  <matz@suse.de>
5483             Richard Biener  <rguenther@suse.de>
5484
5485         PR ipa/12392
5486         * ipa-polymorphic-call.c (struct type_change_info): Change
5487         speculative to an unsigned allowing to limit the work we do.
5488         (csftc_abort_walking_p): New inline function..
5489         (check_stmt_for_type_change): Limit the number of may-defs
5490         skipped for speculative devirtualization to
5491         max-speculative-devirt-maydefs.
5492         * params.def (max-speculative-devirt-maydefs): New param.
5493         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5494
5495 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5496
5497         PR target/63890
5498         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5499         and TARGET_MACHO.
5500
5501 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5502
5503         PR tree-optimization/59124
5504         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5505         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5506
5507 2016-03-29  Jeff Law  <law@redhat.com>
5508
5509         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5510
5511 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5512
5513         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5514         to HOST_WIDE_INT.
5515
5516 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5517
5518         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5519         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5520         gcrt0.o if linking dynamically.
5521
5522 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5523
5524         PR ipa/70283
5525         * ipa-devirt.c (methods_equal_p): New function.
5526         (compare_virtual_tables): Use it.
5527         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5528         * cgraphclones.c (clone_function_name_1): Use
5529         symbol_table::symbol_suffix_separator.
5530         * coverage.c (build_var): Likewise.
5531         * symtab.c (symbol_table::symbol_suffix_separator): New.
5532
5533 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5534
5535         PR rtl-optimization/70429
5536         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5537         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5538         mode != result_mode.
5539
5540         PR c++/70353
5541         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5542
5543         PR tree-optimization/70405
5544         * ssa-iterators.h (num_imm_uses): Add missing braces.
5545
5546 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5547
5548         PR rtl-optimization/68695
5549         * ira-color.c (allocno_copy_cost_saving): New.
5550         (improve_allocation): Use it.
5551
5552 2016-03-29  Richard Henderson  <rth@redhat.com>
5553
5554         PR middle-end/70355
5555         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5556
5557 2016-03-29  Richard Biener  <rguenther@suse.de>
5558
5559         PR middle-end/70424
5560         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5561         use alignment returned by get_pointer_alignment_1 if it is
5562         bigger than BITS_PER_UNIT.
5563         * builtins.c (get_pointer_alignment_1): Do not return true
5564         for alignment extracted from SSA info.
5565
5566 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5567
5568         * config/ft32/ft32.opt (mnodiv): New.
5569         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5570         * doc/invoke.texi (FT32 Options -mnodiv): New.
5571
5572 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5573
5574         PR target/70406
5575         * config/i386/i386.md (define_split, andn): Fix modes.
5576
5577 2016-03-26  Richard Biener  <rguenther@suse.de>
5578             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5579
5580         PR ipa/70366
5581         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5582         instead of
5583         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5584         as 2nd argument to cl_optimization_restore().
5585
5586 2016-03-25  Richard Henderson  <rth@redhat.com>
5587
5588         PR target/70120
5589         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5590         * config/aarch64/aarch64-protos.h: Declare it.
5591         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5592
5593 2016-03-25  Alan Modra  <amodra@gmail.com>
5594
5595         PR target/70052
5596         * config/rs6000/constraints.md (j): Simplify.
5597         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5598         decimal float 0.D.
5599         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5600         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5601          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5602         in all constraint alternatives.
5603         (movtd_64bit_nodm): Delete "j" constraint alternative.
5604
5605 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5606
5607         * tree-ssa-propagate.c: Enhance docs for
5608         SSA_PROP_NOT_INTERESTING.
5609
5610 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5611
5612         * doc/extend.texi: Fix typo in documentation to pure attribute.
5613
5614 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5615
5616         PR target/70319
5617         * config/pa/pa.md (bswapdi2): Use a scratch register.
5618
5619 2016-03-24  Richard Henderson  <rth@redhat.com>
5620
5621         PR middle-end/69845
5622         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5623         overflow.
5624
5625 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5626
5627         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5628         using ix86_expand_binary_operator instead of gen_andsi3.
5629
5630 2016-03-24  Richard Biener  <rguenther@suse.de>
5631
5632         PR tree-optimization/70396
5633         * tree-vect-stmts.c (vectorizable_comparison): Use
5634         get_vectype_for_scalar_type.
5635
5636 2016-03-24  Richard Biener  <rguenther@suse.de>
5637
5638         PR middle-end/70370
5639         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5640         with register bases.
5641
5642 2016-03-24  Richard Biener  <rguenther@suse.de>
5643
5644         PR tree-optimization/70372
5645         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5646         build_all_ones_cst to also handle vector types correctly.
5647
5648 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5649
5650         PR target/70381
5651         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5652         -mfloat128 here.
5653
5654 2016-03-23  Marek Polacek  <polacek@redhat.com>
5655
5656         PR c++/69884
5657         * doc/invoke.texi: Document -Wignored-attributes.
5658
5659 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5660
5661         PR tree-optimization/69042
5662         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5663         parameter from 30 to 40.
5664
5665 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5666
5667         PR tree-optimization/69042
5668         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5669         for use with constant offset stripped in base.
5670
5671 2016-03-23  Richard Biener  <rguenther@suse.de>
5672
5673         PR middle-end/70251
5674         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5675         mode compatibility check.
5676         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5677
5678 2016-03-23  Jeff Law  <law@redhat.com>
5679
5680         PR tree-optimization/64058
5681         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5682         CONFLICT_COUNT.
5683         (struct ssa_conflicts): Move up earlier in the file.
5684         (conflicts_, var_map_): New static variables.
5685         (initialize_conflict_count): New function to initialize the
5686         CONFLICT_COUNT field for each conflict pair.
5687         (compare_pairs): Lazily initialize the conflict count and use it
5688         as the first tie-breaker.
5689         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5690         and wipe conflicts_ and map_ around the call to qsort.  Remove
5691         special case for 2 coalesce pairs.
5692         * bitmap.c (bitmap_count_unique_bits): New function.
5693         (bitmap_count_bits_in_word): New function, extracted from
5694         bitmap_count_bits.
5695         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5696         * bitmap.h (bitmap_count_unique_bits): Declare it.
5697
5698 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5699
5700         PR target/69917
5701         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5702         transparent alias chain for decl assembler name.
5703         * config/sol2.c (solaris_assemble_visibility): Likewise.
5704
5705 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5706
5707         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5708         duration.
5709         (v10_fdivs): Likewise.
5710         (v10_fdivd): Likewise.
5711
5712 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5713
5714         PR driver/70132
5715         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5716         to not call fclose twice on file.
5717
5718 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5719
5720         PR tree-optimization/70354
5721         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5722         oprnd0 is wider than oprnd1 and there is a cast from the wider
5723         type to oprnd1, mask it with the mask of the narrower type.
5724
5725         PR target/70321
5726         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5727         Optimize TARGET_STV splitters, if high or low word of last argument
5728         is 0 or -1.
5729
5730 2016-03-22  Jeff Law  <law@redhat.com>
5731
5732         PR target/70232
5733         tree-ssa-threadbackward.c
5734         (fsm_find_control_statement_thread_paths): Correctly distinguish
5735         between old style jump threads vs FSM jump threads.
5736
5737 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5738
5739         PR target/70302
5740         * config/i386/i386.c (scalar_chain::convert_op): Support
5741         uninitialized register usage case.
5742
5743 2016-03-22  Richard Biener  <rguenther@suse.de>
5744
5745         PR middle-end/70251
5746         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5747         int...
5748         (capture::gen_transform): ... to change behavior when substituting
5749         a condition into cond or not-cond expr context.
5750         (dt_simplify::gen_1): Adjust.
5751         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5752         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5753         last change and instead change to
5754         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5755         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5756
5757 2016-03-22  Anthony Green  <green@moxielogic.com>
5758
5759         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5760         issue for moxiebox targets.
5761         (CC1PLUS_SPEC): Ditto.
5762
5763 2016-03-22  Richard Biener  <rguenther@suse.de>
5764
5765         PR middle-end/70333
5766         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5767         in the wide type.
5768
5769 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5770
5771         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5772
5773 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5774
5775         PR target/70325
5776         * config/i386/i386.c (def_builtin): Handle
5777         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5778         bits.
5779         (const struct builtin_description bdesc_special_args[]):
5780         Remove duplicate ISA bits.
5781
5782 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5783
5784         PR target/70329
5785         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5786         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5787         in a way that works also for AVX512BW.
5788
5789         PR target/70300
5790         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5791         instead of source if operands[1] is xmm16 and above and
5792         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5793         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5794
5795         PR c++/70295
5796         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5797         on assign if (*from_p) is a comparison, set it to
5798         TREE_NO_WARNING (*from_p).
5799
5800 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5801
5802         PR middle-end/70326
5803         * lra.c (restore_scratches): Ignore deleted insns.
5804
5805 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5806             Jakub Jelinek  <jakub@redhat.com>
5807
5808         PR tree-optimization/70317
5809         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5810         to HONOR_NANS.
5811
5812 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5813
5814         PR target/70327
5815         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5816         of ix86_expand_move.
5817         (movoi): Ditto.
5818         (movti): Use general_operand for operand 1 predicate.
5819
5820 2016-03-21  Martin Liska  <mliska@suse.cz>
5821
5822         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5823         insns.
5824         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5825
5826 2016-03-21  Martin Liska  <mliska@suse.cz>
5827
5828         PR ipa/70306
5829         * ipa-icf.c (sem_function::parse): Skip static
5830         constructors and destructors.
5831
5832 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5833
5834         PR target/70296
5835         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5836         function-like macro, peek following token(s) if it is followed
5837         by CPP_OPEN_PAREN token with optional padding in between, and
5838         if not, don't treat it like a macro.
5839
5840 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5841             Alexander Monakov  <amonakov@ispras.ru>
5842
5843         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5844         for the stabs debug format.
5845
5846 2016-03-21  Richard Biener  <rguenther@suse.de>
5847
5848         PR tree-optimization/70310
5849         * tree-vect-generic.c (expand_vector_condition): Fold the built
5850         condition.
5851
5852 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5853
5854         PR target/70293
5855         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5856         Block third alternative for AVX-512VL target,
5857
5858 2016-03-21  Martin Liska  <mliska@suse.cz>
5859
5860         PR hsa/70234
5861         * hsa-brig.c (emit_function_directives): Mark unemitted
5862         global variables for emission.
5863         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5864         (get_symbol_for_decl): Likewise.
5865         * hsa.h (struct hsa_symbol): New flag.
5866
5867 2016-03-21  Richard Biener  <rguenther@suse.de>
5868
5869         PR tree-optimization/70288
5870         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5871         we do not estimate unsimplified all-constant conditionals or
5872         switches as optimized away.
5873
5874 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5875
5876         PR rtl-optimization/69102
5877         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5878         when we have a readonly dependency context.
5879
5880 2016-03-18  Jeff Law  <law@redhat.com>
5881
5882         PR rtl-optimization/70263
5883         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5884         (update_equiv_regs): When trying to move a store to after the insn
5885         that sets the source of the store, make sure the store occurs after
5886         the insn that sets the source of the store.  When successful note
5887         the REG_EQUIV note created in the dump file.
5888
5889 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5890             Bernd Schmidt  <bschmidt@redhat.com>
5891
5892         * doc/extend.texi: Document more potential problems with basic asms.
5893
5894 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5895
5896         PR rtl-optimization/70278
5897         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5898         VOIDmode.
5899
5900 2016-03-18  Jason Merrill  <jason@redhat.com>
5901
5902         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5903
5904 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5905
5906         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5907         values to 128b regs.
5908
5909 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5910
5911         PR tree-optimization/70252
5912         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5913         boolean vector has a proper number of elements.
5914         (supportable_narrowing_operation): Likewise.
5915
5916 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5917
5918         PR ipa/70269
5919         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5920
5921 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5922
5923         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5924         instead of replace_rtx for DEBUG_INSNs.
5925
5926 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5927
5928         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5929         load type reservations.
5930
5931 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5932
5933         PR target/70188
5934         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5935         define_constraint for "Q" and "T" constraints.
5936
5937 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5938
5939         Tweak the pipeline model for Exynos M1
5940
5941         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5942         model.
5943
5944 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5945
5946         PR c/70264
5947         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5948         where one or both locations aren't within a line_map.
5949
5950 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5951
5952         PR driver/70192
5953         * opts.c (finish_options): Don't set flag_pie to the default if
5954         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5955         if it is -1.
5956
5957 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5958
5959         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5960         true as ALL_REGS argument to replace_rtx.
5961
5962 2016-03-17  Richard Biener  <rguenther@suse.de>
5963
5964         PR debug/70271
5965         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5966         last.
5967
5968 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5969
5970         PR target/70245
5971         * rtl.h (replace_rtx): Add ALL_REGS argument.
5972         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5973         equality and assert mode is the same, instead of just rtx pointer
5974         equality.
5975         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5976         true as ALL_REGS argument to replace_rtx.
5977
5978 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5979
5980         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5981         for boolean vector with vector mode only.
5982         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5983
5984 2016-03-17  Nick Clifton  <nickc@redhat.com>
5985
5986         PR target/70162
5987         * config/rx/rx.c (rx_print_integer): Print negative constants in
5988         decimal.
5989
5990 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5991
5992         PR target/70261
5993         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5994
5995 2016-03-16  Richard Henderson  <rth@redhat.com>
5996             Richard Biener  <rguenth@suse.de>
5997
5998         PR middle-end/70240
5999         PR middle-end/68215
6000         PR tree-opt/68714
6001         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
6002         first operand as is_gimple_condexpr.
6003
6004         PR middle-end/70240
6005         PR middle-end/68215
6006         Revert r231575
6007         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
6008         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
6009         Do not gimplify the result.
6010         (do_unop): Adjust call to tree_vec_extract.
6011         (do_binop): Likewise.
6012         (do_compare): Likewise.
6013         (do_plus_minus): Likewise.
6014         (do_negate): Likewise.
6015         (expand_vector_condition): Likewise.
6016         (do_cond): Likewise.
6017
6018 2016-03-16  Richard Henderson  <rth@redhat.com>
6019
6020         PR target/70048
6021         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
6022         (aarch64_classify_address): Use it.
6023         (aarch64_legitimize_address): Force all subexpressions of PLUS
6024         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
6025
6026 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
6027             Richard Biener  <rguenth@suse.de>
6028
6029         PR target/70245
6030         * rtlanal.c (replace_rtx): For REG, if from is a REG,
6031         return to even if only REGNO is equal, and assert
6032         mode is the same.
6033
6034 2016-03-11  Jeff Law  <law@redhat.com>
6035
6036         PR rtl-optimization/70224
6037         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6038
6039 2016-03-16  Richard Henderson  <rth@redhat.com>
6040
6041         PR middle-end/70199
6042         * function.h (struct function): Add has_forced_label_in_static.
6043         * gimplify.c (force_labels_r): Set it.
6044         * lto-streamer-in.c (input_struct_function_base): Read it.
6045         * lto-streamer-out.c (output_struct_function_base): Write it.
6046         * tree-inline.c (has_label_address_in_static_1): Remove.
6047         (copy_forbidden): Remove fndecl parameter; test
6048         has_forced_label_in_static.
6049         (inline_forbidden_p): Update call to copy_forbidden.
6050         (tree_versionable_function_p): Likewise.
6051         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
6052         (chkp_versioning): Likewise.
6053         * tree-inline.h (copy_forbidden): Update decl.
6054
6055 2016-03-16  Marek Polacek  <polacek@redhat.com>
6056
6057         PR c/70093
6058         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
6059         function being thunked if the result type doesn't have fixed size.
6060         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
6061         doesn't have fixed size.
6062
6063 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
6064
6065         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
6066         reporting malformed loop nest.
6067
6068 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6069
6070         PR lto/70187
6071         * ipa-devirt.c (possible_polymorphic_call_targets): Move
6072         nodes.length () == 1 test to before first nodes[0] access.
6073
6074 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6075
6076         PR tree-optimization/68715
6077         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
6078         single_pred_p test.
6079
6080 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6081
6082         PR tree-optimization/68809
6083         * graphite-scop-detection.c (same_close_phi_node): Test if result types
6084         are the same.
6085
6086 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
6087             Sandra Loosemore  <sandra@codesourcery.com>
6088
6089         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
6090         on leaf attribute. Mention ELF interposition problems.
6091
6092 2016-03-16  Alan Modra  <amodra@gmail.com>
6093
6094         PR rtl-optimization/69195
6095         PR rtl-optimization/47992
6096         * ira.c (indirect_jump_optimize): Ignore artificial defs.
6097         Add comments.
6098
6099 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6100
6101         PR bootstrap/69513
6102         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
6103
6104 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6105
6106         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
6107
6108 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
6109
6110         PR rtl-optimization/70222
6111         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
6112         optimization if mode is different from result_mode, queue up masking
6113         of the result in outer_op.  Formatting fix.
6114
6115         PR middle-end/70239
6116         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
6117         of safe_grow.
6118
6119 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6120
6121         PR rtl-optimization/69032
6122         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
6123         looping backwards over basic block insns.
6124
6125 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6126
6127         PR target/66660
6128         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
6129         to non-speculative when propagating trap bits.
6130
6131 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6132
6133         PR rtl-optimization/63384
6134         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
6135         DEBUG_INSN_P insns.
6136
6137 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6138
6139         PR target/64411
6140         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
6141         factored out from ...
6142         (sched_analyze_insn): ... here.
6143         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
6144         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
6145         get_implicit_reg_pending_clobbers in it.
6146         (setup_id_reg_sets): Use setup_id_implicit_regs.
6147         (deps_init_id): Ditto.
6148
6149 2016-03-15  Tom de Vries  <tom@codesourcery.com>
6150
6151         PR ipa/70161
6152         * cgraph.c (cgraph_node::get_body): Save, reset and restore
6153         dump_file_name.
6154         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
6155         execute_function_dump.
6156         (execute_one_pass): Don't dump function if it will be dumped after ipa
6157         transform.
6158
6159 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
6160
6161         * genrecog.c (match_pattern_2): If pred is NULL don't call
6162         safe_predicate_mode on it.
6163
6164 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
6165
6166         PR middle-end/70219
6167         * lra-constraints.c (delete_move_and_clobber): Change assertion
6168         to also allow dregno == 0.
6169
6170 2016-03-14  Richard Henderson  <rth@redhat.com>
6171
6172         PR tree-opt/68714
6173         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
6174         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
6175         (reassociate_bb): Use optimize_vec_cond_expr; avoid
6176         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
6177         on vectors.
6178
6179 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6180
6181         PR target/70083
6182         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
6183         regs.
6184         (lra_create_live_ranges_1): initialize hard register biggest_mode to
6185         VOIDmode.
6186         * lra-constraints.c (split_reg): For hard regs, try to find the
6187         biggest single-register mode used in the function.
6188
6189 2016-03-14  Richard Biener  <rguenther@suse.de>
6190
6191         PR tree-optimization/56365
6192         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6193         constants to compare against.
6194
6195 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6196
6197         PR target/70098
6198         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6199         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6200         (define_split for the GPR case): Use int_reg_operand instead of
6201         gpc_reg_operand for the output.
6202
6203 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6204
6205         PR tree-optimization/70045
6206         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6207         create_empty_if_region_on_edge argument.
6208
6209 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6210
6211         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6212         (STACK_CHECK_PROTECT): Likewise.
6213         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6214         (STACK_CHECK_PROTECT): Likewise.
6215         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6216         (STACK_CHECK_PROTECT): Likewise.
6217         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6218         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6219         (STACK_CHECK_PROTECT): Likewise.
6220
6221 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6222
6223         PR rtl-optimization/69307
6224         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6225         registers in modes that span more than one register.
6226
6227 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6228
6229         PR target/69614
6230         * lra-constraints.c (delete_move_and_clobber): New.
6231         (remove_inheritance_pseudos): Use it.
6232
6233 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6234
6235         PR ada/70017
6236         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6237         the libcall is LCT_THROW.
6238         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6239         for the checking routine.
6240
6241 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6242
6243         PR target/70131
6244         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6245         optimization if we have direct move.
6246         (roundu32<mode>2_fprs): Likewise.
6247
6248 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6249
6250         PR target/70123
6251         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6252         be rematerialized.
6253         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6254         Arguments swapped.  All callers changed.  Take reg_renumber into
6255         account, and Calculate and compare register ranges for hard regs.
6256
6257 2016-03-11  Jeff Law  <law@redhat.com>
6258
6259         PR tree-optimization/70190
6260         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6261         Handle cases where we can not extract the taken edge, even though we
6262         found a constant value.
6263
6264         PR tree-optimization/64058
6265         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6266         (num_coalesce_pairs): Move up earlier in file.
6267         (find_coalesce_pair): Initialize the INDEX field for each pair
6268         discovered.
6269         (compare_pairs): No longer sort on the elements in each pair.
6270         Instead break ties with the index of the coalesce pair.
6271
6272 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6273
6274         PR target/70002
6275         * config/aarch64/aarch64-protos.h
6276         (aarch64_save_restore_target_globals): New prototype.
6277         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6278         Call the above when popping pragma.
6279         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6280         New function.
6281         (aarch64_set_current_function): Rewrite using the above.
6282
6283 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6284
6285         PR tree-optimization/70177
6286         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6287         (extract_ops_from_tree): ... this.  In the 2 argument
6288         overload remove _1 suffix.
6289         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6290         (extract_ops_from_tree): ... this.
6291         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6292         Adjust callers.
6293         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6294         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6295         extract_ops_from_tree instead of 2 operand one.
6296
6297 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6298
6299         PR tree-optimization/70013
6300         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6301         for constant-pool entries.
6302
6303 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6304
6305         PR rtl-optimization/70174
6306         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6307         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6308
6309         PR tree-optimization/70169
6310         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6311         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6312         for unknown codes.
6313
6314 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6315             Jakub Jelinek  <jakub@redhat.com>
6316
6317         PR target/70160
6318         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6319         of uninitialized values.
6320
6321 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6322
6323         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6324         define_expand.
6325         ("*trunctddd2"): New pattern definition.
6326         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6327         TD->DD truncation.
6328
6329 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6330
6331         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6332         definitions for BFP and DFP rounding modes.
6333         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6334         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6335         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6336         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6337         numbers.
6338
6339 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6340
6341         * config/s390/constraints.md: Adjust comment.
6342         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6343         s390_decompose_addrstyle_without_index.
6344         * config/s390/predicates.md (shift_count_or_setmem_operand):
6345         Rename to setmem_operand.
6346         * config/s390/s390-protos.h
6347         (s390_decompose_shift_count): Rename to
6348         s390_decompose_addrstyle_without_index.
6349         * config/s390/s390.c (s390_decompose_shift_count)
6350         (s390_mem_constraint, print_shift_count_operand)
6351         (print_operand_address, print_operand): Rename
6352         s390_decompose_shift_count to
6353         s390_decompose_addrstyle_without_index and rename
6354         print_shift_count_operand to print_addrstyle_operand troughout the
6355         file.
6356         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6357         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6358         Rename shift_count_or_setmem_operand to setmem_operand.
6359         * config/s390/vx-builtins.md ("vec_insert<mode>")
6360         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6361         nonmemory_operand.
6362
6363 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6364
6365         PR target/70168
6366         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6367         Handle overlapping retval and newval.
6368
6369 2016-03-10  Nick Clifton  <nickc@redhat.com>
6370
6371         PR target/7044
6372         * config/aarch64/aarch64.c
6373         (aarch64_override_options_after_change_1): When forcing
6374         flag_omit_frame_pointer to be true, use a special value that can
6375         be detected if this function is called again, thus preventing
6376         flag_omit_leaf_frame_pointer from being forced to be false.
6377
6378 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6379
6380         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6381         Set x_flag_omit_leaf_frame_pointer when handling
6382         -momit-leaf-frame-pointer.
6383
6384 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6385
6386         PR lto/69589
6387         * cgraph.c (cgraph_node::dump): Dump split_part and
6388         indirect_call_target.
6389         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6390         * ipa.c (has_addr_references_p): Cleanup.
6391         (is_indirect_call_target_p): New.
6392         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6393         called indirectly as local.
6394         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6395
6396 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6397
6398         PR ipa/69630
6399         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6400         on cxa_pure_virtual.
6401
6402 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6403
6404         PR lto/69589
6405         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6406
6407 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6408
6409         PR lto/69589
6410         * tree.c (need_assembler_name_p): Only record main variant type names.
6411
6412 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6413
6414         PR target/70113.
6415         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6416         Always define to 0 or 1.
6417         (TARGET_FIX_ERR_A53_843419): New macro.
6418         * config/aarch64/aarch64-elf-raw.h
6419         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6420         * config/aarch64/aarch64-linux.h: Likewise.
6421         * config/aarch64/aarch64.c
6422         (aarch64_override_options_after_change_1): Do not default
6423         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6424         843419 is on.
6425         (aarch64_attributes): Handle fix-cortex-a53-843419.
6426         (aarch64_can_inline_p): Likewise.
6427         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6428
6429 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6430         Jakub Jelinek <jakub@redhat.com>
6431
6432         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6433         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6434         DECL_COMMONS if flag_unconstrained_commons is set.
6435         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6436         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6437         (funconstrained-commons): Document.
6438
6439 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6440
6441         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6442         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6443
6444 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6445
6446         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6447         has a proper number of elements.
6448
6449 2016-03-10  Alan Modra  <amodra@gmail.com>
6450
6451         PR rtl-optimization/69195
6452         PR rtl-optimization/47992
6453         * ira.c (recorded_label_ref): Delete.
6454         (update_equiv_regs): Return void.
6455         (indirect_jump_optimize): New function.
6456         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6457         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6458         Delete update_regstat.
6459
6460 2016-03-10  Richard Biener  <rguenther@suse.de>
6461
6462         PR tree-optimization/70128
6463         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6464         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6465
6466 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6467
6468         PR tree-optimization/70152
6469         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6470         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6471
6472         PR target/70086
6473         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6474         instead of gen_sse2_loadlpd.
6475         * config/i386/sse.md (*vec_concatv2df): Rename to...
6476         (vec_concatv2df): ... this.
6477
6478         PR tree-optimization/70127
6479         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6480
6481 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6482
6483         PR c/68473
6484         PR c++/70105
6485         * diagnostic-show-locus.c (compatible_locations_p): New function.
6486         (layout::layout): Sanitize ranges using compatible_locations_p.
6487
6488 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6489
6490         PR c/68473
6491         PR c++/70105
6492         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6493         location_range param with three const expanded_locations * and a
6494         bool.
6495         (layout::layout): Replace call to
6496         rich_location::lazily_expand_location with get_expanded_location.
6497         Extract the range and perform location expansion here, passing
6498         the results to the layout_range ctor.
6499         * diagnostic.c (source_range::debug): Delete.
6500         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6501         of rich_location::get_expanded_location.
6502         * gcc-rich-location.c (get_range_for_expr): Delete.
6503         (gcc_rich_location::add_expr): Reimplement to avoid the
6504         rich_location::add_range overload that took a location_range,
6505         passing a location_t instead.
6506
6507 2016-03-09  Richard Biener  <rguenther@suse.de>
6508         Jakub Jelinek  <jakub@redhat.com>
6509
6510         PR tree-optimization/70138
6511         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6512         Also skip vect_double_reduction_def.
6513
6514 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6515
6516         PR target/70049
6517         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6518         if the operand is "m".
6519
6520 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6521
6522         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6523
6524 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6525
6526         * config/i386/i386.c (processor_target_table): Fix cost table
6527         intialization order for znver1.
6528
6529 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6530
6531         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6532         - becuase -> because.
6533         * ipa-reference.c (ignore_module_statics): Likewise.
6534         * cgraph.c (cgraph_node::get_body): Likewise.
6535         * ipa-inline.c (early_inliner): Likewise.
6536         * ipa-devirt.c (types_same_for_odr): Likewise.
6537         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6538         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6539
6540 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6541
6542         * tree-ssa-math-opts.c: Fix typo in comment.
6543
6544 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6545
6546         PR target/70110
6547         * config/i386/i386.c (scalar_chain::make_vector_copies,
6548         scalar_chain::convert_reg): Call end_sequence in between
6549         get_insns and emit_conversion_insns rather than after both
6550         calls.
6551
6552 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6553
6554         PR target/70064
6555         * config/i386/i386.h (machine_function): Add
6556         pc_thunk_call_expanded flag.
6557         (ix86_pc_thunk_call_expanded): New define.
6558         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6559         (*set_got): Rename insn pattern from set_got.
6560         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6561         * config/i386/i386.c (ix86_compute_frame_layout): Use
6562         ix86_pc_thunk_call_expanded to prevent red-zone.
6563
6564 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6565
6566         * hsa.h (hsa_get_ctor_statements): Declare.
6567         (hsa_get_dtor_statements): Likewise.
6568         (hsa_get_kernel_dispatch_type): Likewise.
6569         * hsa.c (hsa_get_ctor_statements): New function.
6570         (hsa_get_dtor_statements): Likewise.
6571         (hsa_get_kernel_dispatch_type): Likewise.
6572         * hsa-brig.c (hsa_cdtor_statements): Removed.
6573         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6574         hsa_get_dtor_statements.
6575         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6576         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6577
6578 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6579
6580         * config/arm/arm-cores.def (cortex-r8): New.
6581         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6582         * config/arm/arm-tune.md: Likewise.
6583         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6584
6585 2016-03-07  Martin Sebor  <msebor@redhat.com>
6586
6587         PR rtl-optimization/19705
6588         * doc/invoke.texi (Options That Control Optimization): Clarify
6589         -fno-branch-count-reg.
6590
6591 2016-02-26  Richard Biener  <rguenther@suse.de>
6592             Jeff Law  <law@redhat.com>
6593
6594         PR tree-optimization/69740
6595         * cfghooks.c (remove_edge): Request loop fixups if we delete
6596         an edge that might turn an irreducible loop into a natural
6597         loop.
6598         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6599         Move after definition of loops_state_clear.
6600
6601 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6602
6603         PR rtl-optimization/69052
6604         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6605         to CONST_WIDE_INT.
6606
6607 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6608
6609         PR tree-optimization/70116
6610         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6611         is_tm_ending stmts and ubsan/asan internal functions.
6612         (find_duplicate): Use it.  Don't test is_tm_ending here.
6613
6614 2016-03-07  Richard Biener  <rguenther@suse.de>
6615
6616         PR tree-optimization/70115
6617         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6618         (propagate_constants_for_unrolling): Use replace_uses_by.
6619
6620 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6621
6622         PR middle-end/69916
6623         * omp-low.c (struct oacc_loop): Add ifns.
6624         (new_oacc_loop_raw): Initialize it.
6625         (finish_oacc_loop): Clear mask & flags if no ifns.
6626         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6627         (oacc_loop_xform_loop): Add ifns arg & adjust.
6628         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6629
6630 2016-03-07  Richard Henderson  <rth@redhat.com>
6631
6632         PR rtl-opt/70061
6633         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6634         (insert_value_copy_on_edge): Likewise.
6635
6636 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6637
6638         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6639
6640 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6641
6642         PR target/62281
6643         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6644
6645 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6646
6647         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6648
6649 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6650
6651         Fix sseimul type attribute.
6652         * config/i386/znver1.md
6653         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6654         znver1_sseimul_avx256_load) : Fix the type attribute.
6655         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6656         pipe usage and latency.
6657
6658 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6659
6660         PR c++/70084
6661         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6662         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6663         to the right type.
6664
6665 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6666
6667         PR c/69973
6668         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6669
6670         PR rtl-optimization/69941
6671         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6672         the reg share its mode.
6673
6674 2016-03-04  Jeff Law  <law@redhat.com>
6675
6676         PR tree-optimization/69196
6677         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6678         If the both SSA_NAMEs are anonymous, then consider them unassociated
6679         and include the PHI in the statement count.
6680
6681 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6682
6683         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6684         construct in oacc routine.  Check for oacc region in oacc routine.
6685
6686 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6687
6688         PR target/70062
6689         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6690         2016-02-22 changes, instead don't recurse if RECUR is already true.
6691         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6692         to pass true to the new argument.
6693         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6694
6695         PR target/70059
6696         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6697         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6698         fixes.
6699         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6700
6701 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6702
6703         PR rtl-optimization/57676
6704         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6705         with flag_checking.
6706
6707 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6708
6709         * tree-vect-patterns.c (search_type_for_mask): Handle
6710         comparison of booleans.
6711
6712 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6713
6714         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6715         Fix @xref usage.
6716
6717         PR debug/69947
6718         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6719         all other ops that have dw_val_class_die_ref operands,
6720         and DW_OP_GNU_entry_value.
6721
6722 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6723
6724         PR rtl-optimization/69904
6725         * config/arm/arm.c (arm_cannot_copy_insn_p):
6726         Return true for load-exclusive instructions.
6727
6728 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6729
6730         PR target/70021
6731         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6732         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6733         the pattern no matter if it is used just by non-pattern, pattern
6734         or mix thereof.
6735         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6736         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6737         oprnd1 def_stmt is in pattern, don't look through it.
6738
6739 2016-03-03  Marek Polacek  <polacek@redhat.com>
6740
6741         PR middle-end/70050
6742         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6743
6744 2016-03-03  Martin Liska  <mliska@suse.cz>
6745
6746         PR tree-optimization/70043
6747         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6748         previous statement if we see a debug statement.
6749
6750 2016-03-03  Richard Biener  <rguenther@suse.de>
6751
6752         PR tree-optimization/55936
6753         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6754         parameter and guard unsafe equivalence use.
6755         (vrp_evaluate_conditional_warnv_with_ops): Always use
6756         safe equivalences but not via the quadratic compare_names
6757         helper.
6758
6759 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6760
6761         PR target/70014
6762         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6763         for operand 1 to s_register_operand. Change predicate for operand
6764         2 to arm_not_immediate_operand.
6765
6766 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6767
6768         * doc/tm.texi: Regenerated.
6769
6770 2016-03-02  Richard Henderson  <rth@redhat.com>
6771
6772         PR rtl-opt/67145
6773         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6774         simplification when all args are positive non-fixed registers.
6775
6776 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6777
6778         * target.def (lra_p): Specify that new ports should use LRA.
6779
6780 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6781
6782         PR libgomp/69555
6783         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6784         gimplify_type_sizes the type they refer to.
6785         (omp_notice_variable): Handle reference vars to VLAs.
6786         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6787         reference to VLA decls in the second pass instead of first pass.
6788
6789 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6790
6791         PR tree-optimization/68659
6792         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6793         new_expr == NULL_TREE.
6794         (get_new_name): Handle ADDR_EXPR.
6795
6796 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6797
6798         PR rtl-optimization/69052
6799         * loop-invariant.c (canonicalize_address): New function.
6800         (inv_can_prop_to_addr_use): Check validity of address expression
6801         which is canonicalized by above function.
6802
6803 2016-03-02  Alan Modra  <amodra@gmail.com>
6804
6805         PR ipa/69990
6806         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6807         larger alignment.
6808
6809 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6810
6811         PR target/70028
6812         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6813         (*movhi_internal): Put mask moves from and to memory separately
6814         from moves from/to GPRs.
6815
6816 2016-03-02  Richard Biener  <rguenther@suse.de>
6817
6818         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6819         GENERIC expressions in GIMPLE.
6820
6821 2016-03-02  Richard Biener  <rguenther@suse.de>
6822
6823         * config/i386/i386.c (type_natural_mode): Fix typo.
6824
6825 2016-03-02  Nick Clifton  <nickc@redhat.com>
6826
6827         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6828
6829 2016-03-02  Richard Biener  <rguenther@suse.de>
6830             Uros Bizjak  <ubizjak@gmail.com>
6831
6832         PR target/67278
6833         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6834
6835 2016-03-02  Richard Biener  <rguenther@suse.de>
6836
6837         PR middle-end/67278
6838         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6839
6840 2016-03-02  Marek Polacek  <polacek@redhat.com>
6841
6842         PR c/67854
6843         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6844         "is promoted to" warning.
6845
6846 2016-03-01  DJ Delorie  <dj@redhat.com>
6847
6848         * config.gcc: Deprecate mep-*.
6849
6850 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6851
6852         PR middle-end/70025
6853         * lra-constraints.c (regno_val_use_in): New.
6854         (match_reload): Use it instead of regno_use_in.
6855
6856 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6857
6858         PR rtl-optimization/70007
6859         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6860         references present in REG_EQUAL notes attached to non-SET patterns.
6861
6862 2016-03-01  Jeff Law  <law@redhat.com>
6863
6864         PR tree-optimization/69196
6865         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6866         Appropriately clamp the number of statements to copy when the
6867         thread path does not traverse a loop backedge.
6868
6869         PR tree-optimization/69196
6870         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6871         Do count some PHIs in the thread path against the insn count.  Decrease
6872         final statement count by one as the control statement in the last
6873         block will get removed.  Remove special cased code for handling PHIs
6874         in the last block.
6875
6876 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6877
6878         PR target/70027
6879         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6880         asm dialect alternatives to explicit GOTPCREL calls.
6881
6882 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6883
6884         PR ada/70017
6885         * ira.c (do_reload): Issue warning for generic stack checking here...
6886         * reload1.c (reload): ...instead of here and streamline it.
6887
6888 2016-03-01  Nick Clifton  <nickc@redhat.com>
6889
6890         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6891
6892 2016-03-01  Richard Biener  <rguenther@suse.de>
6893
6894         PR tree-optimization/69983
6895         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6896         types and fall back to operand_equal_p.
6897
6898 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6899
6900         Revert
6901         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6902
6903         * config/s390/constraints.md ("jm8"): New constraint.
6904         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6905         predicate.
6906         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6907         into ...
6908         ("*setmem_long<setmem_and>"): New pattern.
6909         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6910         into ...
6911         ("*setmem_long_31z<setmem_and>"): New pattern.
6912         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6913         New substitution rules with the required attributes.
6914
6915
6916 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6917
6918         Revert
6919         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6920
6921         * gensupport.c (process_substs_on_one_elem): Split loop to
6922         complete mark_operands_used_in_match_dup on all expressions in the
6923         vector first.
6924         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6925         and remove function.
6926
6927 2016-03-01  Richard Biener  <rguenther@suse.de>
6928
6929         PR middle-end/70022
6930         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6931         vector BIT_FIELD_REF extract.
6932
6933 2016-03-01  Richard Biener  <rguenther@suse.de>
6934
6935         PR tree-optimization/69994
6936         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6937
6938 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6939
6940         PR tree-optimization/69956
6941         * tree-vect-stmts.c (supportable_widening_operation): Support
6942         multi-step conversion of boolean vectors.
6943         (supportable_narrowing_operation): Likewise.
6944
6945 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6946
6947         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6948         anymore.
6949
6950 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6951
6952         * config/s390/subst.md (DSI_VI): New mode iterator.
6953         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6954         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6955         the insn definition.
6956         ("*vec_set<mode>"): Change predicate and add alternative to
6957         support only either register or const_int operands as element
6958         selector.
6959         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6960         operands.
6961         ("vec_extract<mode>"): New expander.
6962         ("*vec_extract<mode>"): New insn definition supporting reg and
6963         const_int element selectors.
6964         ("*vec_extract<mode>_plus"): New insn definition supporting
6965         reg+const_int element selectors.
6966         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6967         following expander+insn definition.
6968         ("<vec_shifts_name><mode>3"): New expander.
6969         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6970
6971 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6972
6973         * config/s390/s390.md ("*tabort_1"): Change predicate to
6974         nonmemory_operand.  Add a second alternative to cover
6975         register as well as const int operands.
6976         ("*tabort_1_plus"): New pattern definition.
6977
6978 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6979
6980         * config/s390/s390.md ("*ashrdi3_cc_31")
6981         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6982         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6983         Merge insn definitions into ...
6984         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6985         New pattern definition.
6986         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6987         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6988         ("*ashr<mode>3_and"): Merge insn definitions into ...
6989         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6990         New pattern definition.
6991         * config/s390/subst.md ("addr_style_op_cc_subst")
6992         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6993         substitutions patterns plus attributes.
6994         Add ashiftrt to SUBST iterator.
6995
6996 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6997
6998         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6999         op2 to nonmemory_operand.
7000         ("*<shift>di3_31", "*<shift>di3_31_and"):
7001         Merge into single pattern definition ...
7002         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
7003         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
7004         pattern definition ...
7005         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
7006         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
7007         iterator.
7008
7009 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7010
7011         * config/s390/predicates.md (const_int_6bitset_operand): New
7012         predicate.
7013         * config/s390/s390.md: Include subst.md.
7014         ("rotl<mode>3"): New expander.
7015         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
7016         ...
7017         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
7018         * config/s390/subst.md: New file.
7019
7020 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7021
7022         * config/s390/s390.md ("op_type", "atype", "length" attributes):
7023         Remove RRR type.  It doesn't really exist.
7024         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
7025         attributes.
7026         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
7027         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
7028         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
7029         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
7030         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7031         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7032         `enabled' attribute.
7033
7034 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7035
7036         * gensupport.c (process_substs_on_one_elem): Split loop to
7037         complete mark_operands_used_in_match_dup on all expressions in the
7038         vector first.
7039         (adjust_operands_numbers): Inline into process_substs_on_one_elem
7040         and remove function.
7041
7042 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7043
7044         PR target/69706
7045         * config/sparc/sparc.c (NWORDS_UP): Rename to...
7046         (CEIL_NWORDS): ...this.  Use CEIL macro.
7047         (compute_fp_layout): Adjust to above renaming.
7048         (function_arg_union_value): Likewise.
7049         (sparc_arg_partial_bytes): Likewise.
7050         (sparc_function_arg_advance): Likewise.
7051
7052 2016-02-29  Jeff Law  <law@redhat.com>
7053
7054         PR tree-optimization/70005
7055         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
7056         where an object with a boolean range is compared against a value
7057         outside [0..1].
7058
7059         PR tree-optimization/69999
7060         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
7061         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
7062         loop cleanups.
7063
7064 2016-02-29  Richard Biener  <rguenther@suse.de>
7065
7066         PR tree-optimization/69994
7067         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
7068         (get_unary_op): Look through nop conversions.
7069         (ops_equal_values_p): New function, look for equality diregarding
7070         nop conversions.
7071         (eliminate_plus_minus_pair): Use ops_equal_values_p
7072         (repropagate_negates): Do not use get_unary_op here.
7073
7074 2016-02-29  Martin Liska  <mliska@suse.cz>
7075
7076         * system.h: Poison ENABLE_CHECKING macro.
7077
7078 2016-02-29  Martin Liska  <mliska@suse.cz>
7079
7080         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
7081         is presented in dump flags.
7082         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7083         (hsa_regalloc): Likewise.
7084
7085 2016-02-19  Richard Biener  <rguenther@suse.de>
7086
7087         PR tree-optimization/69980
7088         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
7089         permutation of those we need to keep.
7090
7091 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7092
7093         PR target/69706
7094         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
7095         (NWORDS_UP): ...this
7096         (init_cumulative_args): Minor tweaks.
7097         (sparc_promote_function_mode): Likewise.
7098         (scan_record_type): Delete.
7099         (traverse_record_type): New function template.
7100         (classify_data_t): New structure type.
7101         (classify_registers): New inline function.
7102         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
7103         exhausted.  Instantiate traverse_record_type on classify_registers and
7104         deal with the case of a structure passed in slot #15 with no FP field
7105         in the first word.
7106         (assign_data_t): New structure type.
7107         (compute_int_layout): New static function.
7108         (compute_fp_layout): Likewise.
7109         (count_registers): New inline function.
7110         (assign_int_registers): New static function.
7111         (assign_fp_registers): Likewise.
7112         (assign_registers): New inline function.
7113         (function_arg_record_value_1): Delete.
7114         (function_arg_record_value_2): Likewise.
7115         (function_arg_record_value_3): Likewise.
7116         (function_arg_record_value): Adjust to above changes.  Instantiate
7117         traverse_record_type on count_registers to first count the number of
7118         registers to be used and then on assign_registers to assign them.
7119         (function_arg_union_value): Adjust to above renaming.
7120         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
7121         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
7122         case of a structure passed in slot #15
7123         (sparc_function_arg_advance): Likewise.
7124         (function_arg_padding): Minor tweak.
7125
7126 2016-02-29  Richard Biener  <rguenther@suse.de>
7127
7128         PR tree-optimization/69720
7129         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
7130         the adjustment_def path for possibly vectorized defs.
7131         (vect_create_epilog_for_reduction): Handle vectorized initial
7132         defs properly.
7133
7134 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7135
7136         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
7137
7138 2016-02-27  Jeff Law  <law@redhat.com>
7139
7140         Revert
7141         2016-02-26  Richard Biener  <rguenther@suse.de>
7142                     Jeff Law  <law@redhat.com>
7143
7144         PR tree-optimization/69740
7145         * cfghooks.c (remove_edge): Request loop fixups if we delete
7146         an edge that might turn an irreducible loop into a natural
7147         loop.
7148
7149 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
7150
7151         PR rtl-optimization/69896
7152         * tree-vect-generic.c (get_compute_type): Avoid single element
7153         vector types.
7154
7155 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
7156
7157         Rename the AArch64 tuning option and related functions to enable the
7158         Newton series for the reciprocal square root to reflect its
7159         approximative characteristic.
7160
7161         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
7162         function to "aarch64_emit_approx_rsqrt".
7163         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
7164         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
7165         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
7166         (xgene1_tunings): Likewise.
7167         (use_rsqrt_p): Likewise.
7168         (aarch64_emit_swrsqrt): Use new function name.
7169         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
7170         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
7171         text explaining this option.
7172         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
7173
7174 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7175
7176         PR target/69969
7177         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7178         complain about -mallow-movmisalign without -mvsx if
7179         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
7180
7181 2016-02-26  Joel Sherrill  <joel@rtems.org>
7182
7183         * config.gcc: Add x86_64-*-rtems*.
7184         * gcc/config/i386/rtems-64.h: New file.
7185
7186 2016-02-26  Joel Sherrill  <joel@rtems.org>
7187
7188         * config.gcc: Add aarch64-*-rtems*.
7189         * gcc/config/aarch64/rtems.h: New file.
7190
7191 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7192
7193         PR target/69946
7194         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7195         shift amount using %h.  Add comment.
7196
7197 2016-02-26  Richard Biener  <rguenther@suse.de>
7198             Jeff Law  <law@redhat.com>
7199
7200         PR tree-optimization/69740
7201         * cfghooks.c (remove_edge): Request loop fixups if we delete
7202         an edge that might turn an irreducible loop into a natural
7203         loop.
7204
7205 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7206
7207         PR middle-end/69920
7208         * tree-sra.c (sra_modify_assign): Do not remove loads of
7209         uninitialized aggregates to SSA_NAMEs.
7210
7211 2016-02-26  Richard Henderson  <rth@redhat.com>
7212
7213         PR target/69709
7214         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7215         pseudo in case the target rtx matches the source of the left
7216         shift.
7217
7218 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7219
7220         PR hsa/69568
7221         * hsa.h (hsa_type_packed_p): Declare.
7222         * hsa.c (hsa_type_packed_p): New function.
7223         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7224         loads.
7225         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7226         * hsa-brig.c (emit_basic_insn): Likewise.
7227
7228 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7229
7230         pr hsa/69674
7231         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7232         pointers.
7233         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7234
7235 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7236
7237         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7238         hsa_op_with_type operands.
7239         (hsa_unsigned_type_for_type): Declare.
7240         * hsa.c (hsa_unsigned_type_for_type): New function.
7241         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7242         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7243         the finalizer.  Do not emit extra move.
7244
7245 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7246
7247         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7248         atomic operations in private segment.
7249
7250 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7251
7252         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7253         statements to wi->info.  Also disallow omp simd constructs.
7254         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7255         for not gridifying.  Dump special string for omp_for.
7256
7257 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7258
7259         PR target/69245
7260         * config/aarch64/aarch64.c (aarch64_set_current_function):
7261         Save/restore target globals when switching to
7262         target_option_default_node.
7263
7264 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7265
7266         PR target/69613
7267         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7268         Return 0 if !SHIFT_COUNT_TRUNCATED.
7269
7270 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7271             Eric Botcazou  <ebotcazou@adacore.com>
7272
7273         PR rtl-optimization/69891
7274         * dse.c (scan_insn): If we can't figure out memset arguments
7275         or they are non-constant, call clear_rhs_from_active_local_stores.
7276
7277 2016-02-26  Martin Liska  <mliska@suse.cz>
7278
7279         * doc/extend.texi: Mention clog10, clog10f an clog10l
7280         in Builtins section.
7281
7282 2016-02-26  Martin Liska  <mliska@suse.cz>
7283
7284         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7285         CHECKING_P.
7286         (resolve_args_picking_1): Likewise.
7287         * dwarf2out.h (struct GTY): Likewise.
7288
7289 2016-02-26  Martin Liska  <mliska@suse.cz>
7290
7291         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7292         with flag_checking.
7293         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7294
7295 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7296             Martin Liska  <mliska@suse.cz>
7297
7298         * doc/install.texi: Mention --enable-valgrind-annotations.
7299
7300 2016-02-26  Richard Biener  <rguenther@suse.de>
7301
7302         PR tree-optimization/69551
7303         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7304         looking through aliases adjust DECL_PT_UID to refer to the
7305         ultimate alias target.
7306
7307 2016-02-25  Martin Liska  <mliska@suse.cz>
7308
7309         PR middle-end/69919
7310         * alloc-pool.c (after_memory_report): New variable.
7311         * alloc-pool.h (base_pool_allocator ::release): Do not use
7312         the infrastructure if after_memory_report.
7313         * toplev.c (toplev::main): Mark after memory report.
7314
7315 2016-02-25  Richard Biener  <rguenther@suse.de>
7316
7317         PR tree-optimization/48795
7318         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7319
7320 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7321
7322         PR driver/68463
7323         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7324         offloading is enabled and -fopenacc or -fopenmp is specified.
7325         (CRTOFFLOADEND): Likewise.
7326         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7327         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7328         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7329         (offload_objects_file_name): New static var.
7330         (tool_cleanup): Remove offload_objects_file_name file.
7331         (find_offloadbeginend): Replace with ...
7332         (find_crtoffloadtable): ... this.
7333         (run_gcc): Remove offload_argc and offload_argv.
7334         Get offload_objects_file_name from -foffload-objects=... option.
7335         Read names of object files with offload from this file, pass them to
7336         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7337         don't pass offloadbegin and offloadend to the linker.  Don't pass
7338         offload non-LTO files to the linker, because now they're not claimed.
7339
7340 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7341
7342         PR ipa/69630
7343         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7344         on builtin_unreachable.
7345
7346 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7347
7348         PR rtl-optimization/69896
7349         * regcprop.c: Include cfgrtl.h.
7350         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7351         than remembered mode, either delete it (if noop_move_p), or
7352         treat like copy_p but not noop_p instruction.
7353
7354 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7355
7356         PR debug/69705
7357         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7358         - allow NULL decl for Fortran DW_TAG_common_block variables.
7359
7360 2016-02-24  Jason Merrill  <jason@redhat.com>
7361
7362         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7363
7364 2016-02-24  Richard Biener  <rguenther@suse.de>
7365             Jakub Jelinek  <jakub@redhat.com>
7366
7367         PR middle-end/69760
7368         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7369         conditionally executed ops to well-defined overflow behavior.
7370
7371 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7372
7373         PR middle-end/69915
7374         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7375         elements.
7376
7377 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7378
7379         PR rtl-optimization/69886
7380         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7381         argument.  Use it when checking validity of set instructions.
7382         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7383         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7384         callsite.
7385         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7386         * store-motion.c (find_moveable_store): Update
7387         can_assign_to_reg_without_clobbers_p callsite.
7388
7389 2016-02-24  Richard Biener  <rguenther@suse.de>
7390
7391         PR middle-end/68963
7392         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7393         bogus check.
7394         (record_nonwrapping_iv): Do not fall back to the low/high bound
7395         for non-constant IV bases if the stmt is not always executed.
7396
7397 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7398
7399         * config/arm/arm-cores.def (cortex-a32): New entry.
7400         * config/arm/arm-tables.opt: Regenerate.
7401         * config/arm/arm-tune.md: Regenerate.
7402         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7403         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7404         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7405         for -mcpu and -mtune.
7406
7407 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7408
7409         PR target/69875
7410         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7411         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7412         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7413         (atomic_loaddi_1): Delete.
7414         (atomic_loaddi): Rewrite expander using the above changes.
7415
7416 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7417
7418         PR c/69918
7419         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7420         2 to 3.
7421
7422 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7423             Richard Biener  <rguenth@suse.de>
7424
7425         PR middle-end/69909
7426         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7427         set_mem_attributes if tem is SSA_NAME which got expanded
7428         as a MEM.
7429
7430 2016-02-24  Richard Biener  <rguenther@suse.de>
7431
7432         PR tree-optimization/69907
7433         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7434         end of permutations for BB vectorization.
7435
7436 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7437
7438         * config/arm/arm-c.c (arm_option_override): Initialize
7439         target_option_current_node.
7440         * config/arm/arm.c (arm_pragma_target_parse): Replace
7441         build_target_option_node call by target_option_current_node.
7442         Set target_option_current_node.
7443         Fix comments.
7444
7445 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7446
7447         PR target/69810
7448         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7449         define_insn_and_split to define_insn.
7450         (zero_extendqi<mode>2_dot2): Same.
7451         (extendqi<mode>2_dot): Same.
7452         (extendqi<mode>2_dot2): Same.
7453
7454 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7455
7456         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7457         and add bypass for AES{D,E} and AESMC pairs.
7458         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7459         and AESMC pairs.
7460
7461 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7462
7463         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7464         series for reciprocal square root in Exynos M1.
7465
7466 2016-02-23  Martin Sebor  <msebor@redhat.com>
7467
7468         PR c/69759
7469         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7470         __builtin_alloca_with_align.
7471
7472 2016-02-23  Richard Henderson  <rth@redhat.com>
7473
7474         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7475         (ix86_register_pragmas): Remove __seg_tls.
7476         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7477         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7478         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7479         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7480         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7481         * doc/extend.texi (__seg_tls): Remove item.
7482
7483 2016-02-23  Richard Biener  <rguenther@suse.de>
7484
7485         * alloc-pool.h (struct allocation_object): Make id member
7486         conditional on CHECKING_P again.
7487         (get_instance): Adjust.
7488         (base_pool_allocator): Likewise.
7489
7490 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7491
7492         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7493         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7494         zero.
7495         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7496         flag_openacc.
7497         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7498
7499 2016-02-23  Richard Biener  <rguenther@suse.de>
7500
7501         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7502         * bitmap.h (struct bitmap_usage): Likewise.
7503         (bitmap_move): Declare.
7504         * bitmap.c (register_overhead): Take size_t argument.
7505         (bitmap_move): New function.
7506         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7507         to properly account overhead.
7508         * tree.c (free_node): Use tree_size.
7509
7510 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7511
7512         PR c++/69902
7513         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7514         when inverting comparison.
7515
7516         PR c/69900
7517         * common.opt (Wunreachable-code): Add Warning flag.
7518
7519 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7520             Jakub Jelinek  <jakub@redhat.com>
7521
7522         PR c/69911
7523         * cgraphunit.c (check_global_declaration): Check main_input_filename
7524         and DECL_SOURCE_FILE are not NULL.
7525
7526 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7527
7528         PR tree-optimization/69666
7529         * tree-sra.c (sra_modify_assign): Do not attempt to create
7530         default_def replacements for unscalarizable regions.
7531
7532 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7533
7534         PR c/28901
7535         * cgraphunit.c (check_global_declaration): Check level of
7536         warn_unused_const_variable and main_input_filename.
7537         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7538         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7539         (-Wunused-const-variable): Explain levels 1 and 2.
7540
7541 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7542
7543         PR target/69888
7544         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7545         identical arguments.  Formatting and spelling fixes.
7546
7547         PR target/69885
7548         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7549         be specified.
7550
7551         PR target/69894
7552         PR target/69895
7553         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7554         and m68k-devices.def.
7555         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7556         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7557
7558 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7559
7560         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7561         and HImode registers.
7562
7563 2016-02-22  Richard Biener  <rguenther@suse.de>
7564
7565         PR tree-optimization/69882
7566         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7567         preserve permutations present because of gaps.
7568         (vect_supported_load_permutation_p): Always continue checking
7569         permutations after vect_attempt_slp_rearrange_stmts.
7570
7571 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7572
7573         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7574         min_profitable_estimate, rather than min_profitable_iters.
7575
7576 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7577
7578         PR target/69885
7579         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7580         SImode for last match_operand.
7581
7582 2016-02-22  Martin Liska  <mliska@suse.cz>
7583
7584         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7585         return bitsize - 1 as the return value.
7586
7587 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7588
7589         PR target/69806
7590         PR target/54089
7591         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7592         Handle negative shift counts.
7593         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7594         force_reg on the shift constant.
7595         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7596         (lshrsi3_d): Handle negative shift counts.
7597
7598 2016-02-22  Richard Biener  <rguenther@suse.de>
7599             Tom de Vries  <tom@codesourcery.com>
7600
7601         * graph.c: Include dumpfile.h.
7602         (print_graph_cfg): Split into three overloads.
7603         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7604
7605 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7606
7607         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7608         dump-fn.
7609
7610 2016-02-22  Richard Biener  <rguenther@suse.de>
7611
7612         PR ipa/37448
7613         * ipa-inline-transform.c (inline_call): When not updating
7614         overall summaries adjust self size by the growth estimate.
7615         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7616         hash-set, do not update overall summaries here.  Renamed from ...
7617         (inline_to_all_callers): ... this which is now wrapping the
7618         above and performing delayed overall summary update.
7619         (early_inline_small_functions): Delay updating of the overall
7620         summary.
7621
7622 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7623
7624         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7625         variable.
7626
7627 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7628
7629         PR driver/69805
7630         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7631         :%* in %:gt() argument.
7632         (greater_than_spec_func): Adjust for expecting only numbers,
7633         if there are more than two numbers, compare the last two.
7634
7635 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7636
7637         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7638         -Wnarrowing with -std.
7639
7640 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7641
7642         PR c++/69851
7643         * expr.c (store_field): Don't use bit-field path if exp is
7644         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7645         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7646         and the assignment can be performed by bitwise copy.  Formatting
7647         fix.
7648
7649         PR middle-end/69838
7650         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7651         call copy_reg_eh_region_note_forward on before and/or after sequences
7652         and remove note from insn if it no longer can throw.
7653
7654         PR target/69820
7655         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7656         if TARGET_AVX512BW.
7657
7658 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7659
7660         * config/s390/vector.md: Add missing commutative operand markers
7661         to the patterns which qualify for one.
7662         * config/s390/vx-builtins.md: Likewise.
7663
7664 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7665
7666         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7667         types to mode iterators.
7668         (vec_double): ... and mode attribute.
7669         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7670
7671 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7672
7673         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7674         Change the predicate of op2 from nonimmediate to general and let
7675         reload fix it if necessary.
7676
7677 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7678
7679         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7680
7681 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7682
7683         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7684         mode.
7685
7686 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7687
7688         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7689         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7690         * config/s390/s390.md ("movstr<P:mode>"): Call
7691         s390_expand_vec_movstr.
7692
7693 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7694
7695         * config/s390/s390.md: Add missing output modifier for operand 1
7696         to print it as address properly.
7697
7698 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7699
7700         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7701         * config/s390/2964.md: New file.
7702         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7703         of insn grouping attributes depending on the CPU level.
7704         (s390_get_unit_mask): New function.
7705         (s390_sched_score): Remove the OOO from the scheduling macros.
7706         Add loop to calculate a score for the instruction mix.
7707         (s390_sched_reorder): Likewise plus improve debug output.
7708         (s390_sched_variable_issue): Rename macros as above.  Calculate
7709         the unit distances after actually scheduling an insn.  Improve
7710         debug output.
7711         (s390_sched_init): Clear last_scheduled_unit_distance array.
7712         * config/s390/s390.md: Include 2964.md.
7713
7714 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7715
7716         PR target/69671
7717         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7718         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7719         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7720         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7721         *avx512f_<code>v8div16qi2_mask_1): New insns.
7722
7723 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7724
7725         PR target/68404
7726         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7727         2016-02-09 change.
7728
7729         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7730         earlyclobber from target.  Use wF constraint for fused memory
7731         address.
7732         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7733
7734 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7735             Martin Liska  <mliska@suse.cz>
7736
7737         PR sanitizer/69863
7738         * cfgexpand.c (asan_sanitize_stack_p): New function.
7739         (partition_stack_vars): Use the function.
7740         (expand_stack_vars): Likewise.
7741         (defer_stack_allocation): Likewise.
7742         (expand_used_vars): Likewise.
7743
7744 2016-02-18  Richard Biener  <rguenther@suse.de>
7745
7746         PR middle-end/69553
7747         * fold-const.c (operand_equal_p): Properly compare offsets for
7748         IMAGPART_EXPR and ARRAY_REF.
7749
7750 2016-02-18  Nick Clifton  <nickc@redhat.com>
7751
7752         PR target/62254
7753         PR target/69610
7754         * config/arm/arm.c (arm_option_override_internal): Disable
7755         interworking if the target does not support thumb instructions.
7756         (arm_reload_in_hi): Handle the case where a register to register
7757         move needs reloading because there is no simple pattern to handle
7758         it.
7759         (arm_reload_out_hi): Likewise.
7760
7761 2016-02-18  Richard Biener  <rguenther@suse.de>
7762
7763         PR middle-end/69854
7764         * match.pd: Don't use fold_binary or fold_unary for folding
7765         constants.
7766
7767 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7768
7769         PR c++/69850
7770         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7771         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7772         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7773         warn on gimple_no_warning_p statements.
7774
7775 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7776
7777         * doc/extend.texi (C++ Attributes): Correct description of
7778         warn_unused type attribute.
7779
7780 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7781
7782         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7783         correct instruction.
7784
7785 2016-02-17  Richard Biener  <rguenther@suse.de>
7786
7787         PR rtl-optimization/69609
7788         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7789         (find_traces_1_round): When ending a trace update cached priority
7790         of successors.
7791         (bb_to_key): Use cached priority when available.
7792         (copy_bb): Initialize cached priority.
7793         (reorder_basic_blocks_software_trace_cache): Likewise.
7794
7795 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7796
7797         PR target/69161
7798         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7799         New predicate.
7800         (aarch64_comparison_operator): Break overly long line into two.
7801         (aarch64_comparison_operation): Likewise.
7802         * config/aarch64/aarch64.md (cstorecc4): Use
7803         aarch64_comparison_operator_mode instead of
7804         aarch64_comparison_operator.
7805         (cstore<mode>4): Likewise.
7806         (aarch64_cstore<mode>): Likewise.
7807         (*cstoresi_insn_uxtw): Likewise.
7808         (cstore<mode>_neg): Likewise.
7809         (*cstoresi_neg_uxtw): Likewise.
7810
7811 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7812
7813         PR target/69161
7814         * config/arm/predicates.md (arm_comparison_operator_mode):
7815         New predicate.
7816         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7817         instead of arm_comparison_operator.
7818         (*mov_negscc): Likewise.
7819         (*mov_notscc): Likewise.
7820         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7821         (*thumb2_mov_negscc): Likewise.
7822         (*thumb2_mov_negscc_strict_it): Likewise.
7823         (*thumb2_mov_notscc): Likewise.
7824         (*thumb2_mov_notscc_strict_it): Likewise.
7825
7826 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7827
7828         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7829         Add missing return.
7830
7831 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7832
7833         * config/visium/visium.c (machine_libfunc_index): New enum.
7834         (machine_libfuncs): New structure.
7835         (visium_libfuncs): New static variable.
7836         (TARGET_INIT_LIBFUNCS): Define to...
7837         (visium_init_libfuncs): ...this.  New function.
7838         (expand_block_move_4): Use the appropriate libfunc.
7839         (expand_block_move_2): Likewise.
7840         (expand_block_move_1): Likewise.
7841         (expand_block_set_4): Likewise.
7842         (expand_block_set_2): Likewise.
7843         (expand_block_set_1): Likewise.
7844         (visium_trampoline_init): Likewise.
7845
7846 2016-02-17  Nick Clifton  <nickc@redhat.com>
7847
7848         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7849         TI's devices.csv file as of March 2016.
7850
7851 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7852
7853         PR Target/48344
7854         * opts-global.c (handle_common_deferred_options): Introduce and
7855         initialize two global variables to remember command-line options
7856         specifying a stack-limiting register.
7857         * opts.h: Add extern declarations of the two new global variables.
7858         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7859         variable based on the values of the two new global variables.
7860
7861 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7862
7863         PR c/69835
7864         * common.opt (Wnonnull-compare): New warning.
7865         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7866         of arguments against NULL.
7867         (-Wnonnull-compare): Document.
7868         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7869         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7870         * passes.def (pass_warn_nonnull_compare): Add.
7871         * gimple-ssa-nonnull-compare.c: New file.
7872
7873 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7874
7875         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7876         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7877
7878 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7879
7880         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7881         reciprocal sqrt for -mlow-precision-recip-sqrt.
7882
7883 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7884             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7885
7886         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7887         always use lane loads to construct non-constant vectors.
7888
7889 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7890
7891         * config/aarch64/aarch64.md
7892         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7893         constraints for operand 3.
7894         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7895
7896 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7897             Richard Biener  <rguenther@suse.de>
7898
7899         PR tree-optimization/69820
7900         * tree-vect-patterns.c (type_conversion_p): Return false if
7901         *orig_type is unsigned single precision or boolean.
7902         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7903         Formatting fix.
7904
7905 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7906
7907         PR rtl-optimization/69764
7908         PR rtl-optimization/69771
7909         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7910         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7911
7912 2016-02-16  Richard Biener  <rguenther@suse.de>
7913
7914         PR tree-optimization/69776
7915         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7916         sets from caller.
7917         (indirect_refs_may_alias_p): Likewise.
7918         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7919         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7920         according to tbaa_p.
7921         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7922         (optimize_stmt): For redundant store discovery do not allow tbaa.
7923
7924 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7925
7926         PR tree-optimization/69714
7927         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7928         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7929
7930 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7931
7932         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7933         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7934         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7935         * config/arc/arc.c (arc_init): Check FPU options.
7936         (get_arc_condition_code): Handle new CC_FPU* modes.
7937         (arc_select_cc_mode): Likewise.
7938         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7939         register pair only. Allow access for ARCv2 accumulator.
7940         (gen_compare_reg): Whenever we have FPU support use FPU compare
7941         instructions.
7942         (arc_reorg): Don't generate brcc insns when FPU compare
7943         instructions are involved.
7944         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7945         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7946         floating point emulation.
7947         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7948         (REVERSE_CONDITION): Add new CC_FPU* modes.
7949         (TARGET_FP_SP_BASE): Define.
7950         (TARGET_FP_DP_BASE): Likewise.
7951         (TARGET_FP_SP_FUSED): Likewise.
7952         (TARGET_FP_DP_FUSED): Likewise.
7953         (TARGET_FP_SP_CONV): Likewise.
7954         (TARGET_FP_DP_CONV): Likewise.
7955         (TARGET_FP_SP_SQRT): Likewise.
7956         (TARGET_FP_DP_SQRT): Likewise.
7957         (TARGET_FP_DP_AX): Likewise.
7958         * config/arc/arc.md (ARCV2_ACC): New constant.
7959         (type): New fpu type attribute.
7960         (SDF): Conditional iterator.
7961         (cstore<mode>, cbranch<mode>): Change expand condition.
7962         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7963         handles FPU/FPX cases as well.
7964         * config/arc/arc.opt (mfpu): New option.
7965         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7966         Renamed.
7967         (adddf3, muldf3, subdf3): Removed.
7968         * config/arc/predicates.md (proper_comparison_operator): Recognize
7969         CC_FPU* modes.
7970         * config/arc/fpu.md: New file.
7971         * doc/invoke.texi (ARC Options): Document mfpu option.
7972
7973 2016-02-16  Richard Biener  <rguenther@suse.de>
7974
7975         PR rtl-optimization/69291
7976         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7977         noce_operand_ok check.
7978
7979 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7980
7981         PR lto/67709
7982         * omp-low.c (simd_clone_create): Remove call to
7983         symtab->call_cgraph_insertion_hooks.
7984
7985 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7986
7987         PR tree-optimization/69802
7988         * tree-ssa-reassoc.c (update_range_test): If op is
7989         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7990         op == 1 test of precision 1 integral op, otherwise handle
7991         that case as op itself.  Fix up formatting.
7992         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7993         up formatting.
7994
7995 2016-02-16  Richard Biener  <rguenther@suse.de>
7996
7997         PR tree-optimization/69586
7998         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7999         types for conversion sources.
8000
8001 2016-02-16  Richard Biener  <rguenther@suse.de>
8002
8003         PR middle-end/69801
8004         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
8005         mask OEP_ADDRESS_OF.
8006
8007 2016-02-16  Alan Modra  <amodra@gmail.com>
8008
8009         PR target/68973
8010         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
8011         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
8012         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
8013         (p8_mtvsrwz): New.
8014         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
8015         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
8016         (p8_fmrgow_<mode>): Likewise.
8017         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
8018         changes.
8019         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
8020         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
8021         to use movdi_internal64.  Remove op0_di.
8022         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
8023
8024 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
8025
8026         Add support for the FCCMP insn types
8027
8028         * config/aarch64/aarch64.md (fccmp): Change insn type.
8029         (fccmpe): Likewise.
8030         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8031         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8032         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8033         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8034         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8035         * config/arm/types.md (fccmps): Add new insn type.
8036         (fccmpd): Likewise.
8037
8038 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8039
8040         * alias.c (get_alias_set): Fix a typo in comment.
8041
8042 2016-02-15  Richard Biener  <rguenther@suse.de>
8043
8044         PR tree-optimization/69595
8045         * match.pd: Complete range test simplification to true.
8046
8047 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
8048
8049         PR rtl-optimization/69648
8050         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
8051         pic_offset_table_rtx.
8052
8053         PR rtl-optimization/69752
8054         * ira.c (update_equiv_regs): When looking for more than a single SET,
8055         also take other side effects into account.
8056
8057 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8058
8059         * config/s390/s390.c (s390_function_profiler): Add a new sequence
8060         for z900+ CPUs in 31-bit mode.
8061
8062 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8063
8064         * common/config/s390/s390-common.c (s390_supports_split_stack):
8065         New function.
8066         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
8067         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
8068         * config/s390/s390.c (struct machine_function): New field
8069         split_stack_varargs_pointer.
8070         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
8071         in s390_emit_prologue.
8072         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
8073         vararg pointer.
8074         (morestack_ref): New global.
8075         (SPLIT_STACK_AVAILABLE): New macro.
8076         (s390_expand_split_stack_prologue): New function.
8077         (s390_live_on_entry): New function.
8078         (s390_va_start): Use split-stack vararg pointer if appropriate.
8079         (s390_asm_file_end): Emit the split-stack note sections.
8080         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
8081         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
8082         (UNSPECV_SPLIT_STACK_CALL): New unspec.
8083         (UNSPECV_SPLIT_STACK_DATA): New unspec.
8084         (split_stack_prologue): New expand.
8085         (split_stack_space_check): New expand.
8086         (split_stack_data): New insn.
8087         (split_stack_call): New expand.
8088         (split_stack_call_*): New insn.
8089         (split_stack_cond_call): New expand.
8090         (split_stack_cond_call_*): New insn.
8091
8092 2016-02-15  Richard Biener  <rguenther@suse.de>
8093
8094         PR tree-optimization/69783
8095         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8096         Add trivially correct cases.
8097
8098 2016-02-15  Tom de Vries  <tom@codesourcery.com>
8099
8100         PR lto/69655
8101         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
8102         do_force_output.
8103         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
8104
8105 2016-02-15  Richard Biener  <rguenther@suse.de>
8106
8107         PR tree-optimization/69776
8108         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8109         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
8110         indicate whether we can use TBAA to disambiguate against stores.
8111         Use alias-set zero if not.
8112         (visit_reference_op_store): Do not use TBAA when looking up
8113         redundant stores.
8114         * tree-ssa-pre.c (compute_avail): Use TBAA here.
8115         (eliminate_dom_walker::before_dom_children): But not when looking
8116         up redundant stores.
8117
8118 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
8119
8120         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
8121
8122 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8123
8124         *  config/i386/znver1.md
8125         (znver1_pop, znver1_pop_mem,
8126         znver1_load_imov_double_store,
8127         znver1_load_imov_direct_store,
8128         znver1_load_imov_direct_load,
8129         znver1_load_imov_double_load): Add new.
8130         (znver1_insn, znver1_insn_load): Add icmov type.
8131         (znver1_sseavx_fma,
8132         znver1_sseavx_fma_load,
8133         znver1_avx256_fma,
8134         znver1_avx256_fma_load): Fix pipe usage.
8135
8136 2016-02-14  Alan Modra  <amodra@gmail.com>
8137
8138         PR target/68973
8139         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
8140         with an invalid hard reg, reload just the reg not the entire
8141         pre/post-inc/dec address expression.
8142
8143 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8144
8145         PR target/67260
8146         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
8147         fixed R1_REG scratch reg.
8148         (sibcall_value_pcrel_fdpic): Likewise.
8149
8150 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8151
8152         PR target/67636
8153         PR target/64345
8154         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
8155
8156 2016-02-12  Walter Lee  <walt@tilera.com>
8157
8158         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
8159         * config/tilegx/t-tilegx: Likewise.
8160
8161 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8162
8163         PR other/69554
8164         * diagnostic-show-locus.c (struct line_span): New struct.
8165         (layout::get_first_line): Delete.
8166         (layout::get_last_line): Delete.
8167         (layout::get_num_line_spans): New member function.
8168         (layout::get_line_span): Likewise.
8169         (layout::print_heading_for_line_span_index_p): Likewise.
8170         (layout::get_expanded_location): Likewise.
8171         (layout::calculate_line_spans): Likewise.
8172         (layout::m_first_line): Delete.
8173         (layout::m_last_line): Delete.
8174         (layout::m_line_spans): New field.
8175         (layout::layout): Update comment.  Replace m_first_line and
8176         m_last_line with m_line_spans, replacing their initialization
8177         with a call to calculate_line_spans.
8178         (diagnostic_show_locus): When printing source lines and
8179         annotations, rather than looping over a single span
8180         of lines, instead loop over each line_span within
8181         the layout, with an inner loop over the lines within them.
8182         Call the context's start_span callback when changing line spans.
8183         * diagnostic.c (diagnostic_initialize): Initialize start_span.
8184         (diagnostic_build_prefix): Break out the building of the location
8185         part of the string into...
8186         (diagnostic_get_location_text): ...this new function, rewriting
8187         it from nested ternary expressions to a sequence of "if"
8188         statements.
8189         (default_diagnostic_start_span_fn): New function.
8190         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8191         (diagnostic_context::start_span): New field.
8192         (default_diagnostic_start_span_fn): New prototype.
8193
8194 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8195
8196         PR driver/69779
8197         * gcc.c (driver::finalize): Fix cleanup of "specs".
8198
8199 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8200
8201         PR driver/69265
8202         PR driver/69453
8203         * gcc.c (driver::driver): Initialize m_option_suggestions.
8204         (driver::~driver): Clean up m_option_suggestions.
8205         (suggest_option): Convert to...
8206         (driver::suggest_option): ...this, and split out into
8207         driver::build_option_suggestions and find_closest_string.
8208         (driver::build_option_suggestions): New function, from
8209         first half of suggest_option.  Special-case
8210         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8211         the sanitizer_opts array.  For options of enum types, add the
8212         various enum values to the candidate strings.
8213         (driver::handle_unrecognized_options): Remove "const".
8214         * gcc.h (driver::handle_unrecognized_options): Likewise.
8215         (driver::build_option_suggestions): New decl.
8216         (driver::suggest_option): New decl.
8217         (driver::m_option_suggestions): New field.
8218         * opts-common.c (add_misspelling_candidates): New function.
8219         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8220         and make non-static.
8221         * opts.h (sanitizer_opts): New array decl.
8222         (add_misspelling_candidates): New function decl.
8223         * spellcheck.c (find_closest_string): New function.
8224         * spellcheck.h (find_closest_string): New function decl.
8225
8226 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8227
8228         PR rtl-optimization/69764
8229         PR rtl-optimization/69771
8230         * optabs.c (expand_binop_directly): For shift_optab_p, force
8231         convert_modes with VOIDmode if xop1 has VOIDmode.
8232
8233 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8234
8235         PR target/69729
8236         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8237         to correctly determine instrumentation thunks.
8238
8239 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8240
8241         PR ipa/69241
8242         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8243         type by reference, force lhs on the call.
8244
8245         PR ipa/68672
8246         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8247         Compute retval and retbnd early in all cases if split_part_return_p
8248         and return_bb is not EXIT.  Remove all clobber stmts and reset
8249         all debug stmts that refer to SSA_NAMEs defined in split part,
8250         except if it is retval, in that case replace the old retval with the
8251         lhs of the call to the split part.
8252
8253 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8254
8255         revert:
8256         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8257
8258         PR middle-end/66726
8259         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8260         whose result is used in PHI.
8261         (maybe_optimize_range_tests): Likewise.
8262         (final_range_test_p): Likweise.
8263
8264 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8265
8266         PR middle-end/66726
8267         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8268         whose result is used in PHI.
8269         (maybe_optimize_range_tests): Likewise.
8270         (final_range_test_p): Likweise.
8271
8272 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8273
8274         * cgraph.c: Spelling fixes - behaviour -> behavior and
8275         neighbour -> neighbor.
8276         * target.def: Likewise.
8277         * sel-sched.c: Likewise.
8278         * config/mips/mips.c: Likewise.
8279         * config/arc/arc.md: Likewise.
8280         * config/arm/cortex-a57.md: Likewise.
8281         * config/arm/arm.c: Likewise.
8282         * config/arm/neon.md: Likewise.
8283         * config/arm/arm-c.c: Likewise.
8284         * config/vms/vms-c.c: Likewise.
8285         * config/s390/s390.c: Likewise.
8286         * config/i386/znver1.md: Likewise.
8287         * config/i386/i386.c: Likewise.
8288         * config/ia64/hpux-unix2003.h: Likewise.
8289         * config/msp430/msp430.md: Likewise.
8290         * config/rx/rx.c: Likewise.
8291         * config/rx/rx.md: Likewise.
8292         * config/aarch64/aarch64-simd.md: Likewise.
8293         * config/aarch64/aarch64.c: Likewise.
8294         * config/nvptx/nvptx.c: Likewise.
8295         * config/bfin/bfin.c: Likewise.
8296         * config/cris/cris.opt: Likewise.
8297         * config/rs6000/rs6000.c: Likewise.
8298         * target.h: Likewise.
8299         * spellcheck.c: Likewise.
8300         * ira-build.c: Likewise.
8301         * tree-inline.c: Likewise.
8302         * builtins.c: Likewise.
8303         * lra-constraints.c: Likewise.
8304         * explow.c: Likewise.
8305         * hwint.h: Likewise.
8306         * targhooks.c: Likewise.
8307         * tree-vect-data-refs.c: Likewise.
8308         * expr.c: Likewise.
8309         * doc/tm.texi: Likewise.
8310         * doc/extend.texi: Likewise.
8311         * doc/install.texi: Likewise.
8312         * doc/md.texi: Likewise.
8313         * tree-ssa-tail-merge.c: Likewise.
8314         * sched-int.h: Likewise.
8315         * match.pd: Likewise.
8316         * sched-ebb.c: Likewise.
8317         * target.def (omit_struct_return_reg): Likewise.
8318         * gimple-ssa-isolate-paths.c: Likewise.
8319         (find_implicit_erroneous_behaviour): Renamed to...
8320         (find_implicit_erroneous_behavior): ... this.
8321         (find_explicit_erroneous_behaviour): Renamed to...
8322         (find_explicit_erroneous_behavior): ... this.
8323         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8324
8325 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8326
8327         PR rtl-optimization/64682
8328         PR rtl-optimization/69567
8329         PR rtl-optimization/69737
8330         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8331         in I2 as well, just lose it.
8332
8333 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8334
8335         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8336         New variable.
8337         (aarch64_last_printed_tune_string): Likewise.
8338         (aarch64_declare_function_name): Only output .arch assembler
8339         directive if it will be different from the previously output
8340         directive.  Same for .tune comment but only if -dA is set.
8341         (aarch64_start_file): New function.
8342         (TARGET_ASM_FILE_START): Define.
8343
8344 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8345
8346         PR plugins/69758
8347         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8348
8349 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8350
8351         PR target/65313
8352         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8353         -Wmaybe-uninitialized warning.
8354
8355 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8356
8357         PR target/69713
8358         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8359
8360 2016-02-11  Richard Biener  <rguenther@suse.de>
8361
8362         PR rtl-optimization/69291
8363         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8364         subexpressions affected by changing the result.
8365
8366 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8367
8368         PR target/69148
8369         * lra-constraints.c (curr_insn_transform): Find in/out operands
8370         for secondary memory moves.  Update dups.
8371
8372 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8373
8374         PR tree-optimization/69652
8375         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8376         to nested loop, did source re-formatting, skip debug statements,
8377         add check on statement with volatile operand, remove dead scalar
8378         statements.
8379
8380 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8381             Patrick Palka  <ppalka@gcc.gnu.org>
8382
8383         PR ipa/69241
8384         PR c++/69649
8385         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8386         calls if the return type is TREE_ADDRESSABLE.
8387         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8388         * ipa-split.c (split_function): Fix doubled "we" in comment.
8389         Use void return type for the split part even if
8390         !split_point->split_part_set_retval.
8391
8392 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8393
8394         PR tree-optimization/68021
8395         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8396         when computing the value of biv cand by itself.
8397
8398 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8399
8400         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8401         (cortexa57_tunings): Likewise.
8402         (cortexa72_tunings): Likewise.
8403         (arch_macro_fusion_pair_p): Add support for AES fusion.
8404         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8405         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8406         Allow virtual registers before reload so early scheduling works.
8407         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8408         correct latency and pipeline.
8409         (cortex_a57_crypto_complex): Likewise.
8410         (cortex_a57_crypto_xor): Likewise.
8411         (define_bypass): Add AES bypass.
8412
8413 2016-02-10  Richard Biener  <rguenther@suse.de>
8414
8415         PR tree-optimization/69726
8416         * passes.def: Add DCE pass before late uninit.
8417         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8418         really fixup if-conversions job.
8419
8420 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8421
8422         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8423         (arm_cortex_a57_tune): Likewise.
8424         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8425         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8426
8427 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8428
8429         * timevar.def (TV_PHASE_DBGINFO): Delete.
8430         (TV_PHASE_CHECK_DBGINFO): Likewise.
8431         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8432
8433 2016-02-10  Richard Biener  <rguenther@suse.de>
8434
8435         PR tree-optimization/69719
8436         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8437         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8438
8439 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8440
8441         PR tree-opt/69282
8442         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8443         get_vcond_mask_icode returns false.
8444
8445 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8446
8447         PR target/68404
8448         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8449         an ADDIS that adds a pointer to a large constant that sets the
8450         upper16 bits with a load operation.
8451
8452 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8453
8454         PR target/68532
8455         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8456         order.
8457         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8458         endian.
8459         (vzipq_s16): Likewise.
8460         (vzipq_s32): Likewise.
8461         (vzipq_f32): Likewise.
8462         (vzipq_u8): Likewise.
8463         (vzipq_u16): Likewise.
8464         (vzipq_u32): Likewise.
8465         (vzipq_p8): Likewise.
8466         (vzipq_p16): Likewise.
8467
8468 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8469
8470         PR target/68532
8471         * config/arm/arm.c (neon_endian_lane_map): New function.
8472         (neon_vector_pair_endian_lane_map): New function.
8473         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8474         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8475         endian.
8476         (vuzpq_s16): Likewise.
8477         (vuzpq_s32): Likewise.
8478         (vuzpq_f32): Likewise.
8479         (vuzpq_u8): Likewise.
8480         (vuzpq_u16): Likewise.
8481         (vuzpq_u32): Likewise.
8482         (vuzpq_p8): Likewise.
8483         (vuzpq_p16): Likewise.
8484
8485 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8486
8487         PR target/69634
8488         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8489         debug insns.
8490
8491 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8492
8493         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8494         truncate const_int operand 1 to QImode.
8495
8496 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8497
8498         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8499         corresponding to an abnormal edge.
8500
8501 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8502
8503         PR tree-optimization/69599
8504         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8505         function.
8506         (find_func_aliases_for_builtin_call, find_func_clobbers)
8507         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8508         partition.
8509
8510 2016-02-09  Richard Biener  <rguenther@suse.de>
8511
8512         PR tree-optimization/69715
8513         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8514         LHS on calls as non-rewritable.
8515
8516 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8517
8518         PR lto/69707
8519         * lto-wrapper.c (append_diag_options): New function.
8520         (compile_offload_image): Call append_diag_options.
8521
8522 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8523
8524         PR other/69722
8525         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8526         Minor copy-edit to fix verb tenses.
8527
8528 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8529
8530         PR tree-optimization/69209
8531         * ipa-split.c (split_function): If split part is not
8532         returning retval, retval has gimple type but is not
8533         gimple value, force it into a SSA_NAME first.
8534
8535 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8536
8537         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8538         outdated section.
8539
8540 2016-02-08  Jason Merrill  <jason@redhat.com>
8541
8542         PR c++/69631
8543         * convert.c (convert_to_integer_1): Check dofold on truncation
8544         distribution.
8545         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8546         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8547         Rename from *_nofold.
8548         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8549         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8550
8551 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8552
8553         PR target/60410
8554         * tree.c (build_common_tree_nodes): Remove short_double argument.
8555         All callers changed.
8556         * tree.h (build_common_tree_nodes): Adjust declaration.
8557         * doc/invoke.texi (-fshort-double): Remove documentation.
8558         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8559         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8560         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8561         (append_linker_options): Don't handle OPT_fshort_double.
8562
8563         PR rtl-optimization/68730
8564         * lra-remat.c (insn_to_cand_activation): New static variable.
8565         (lra_remat): Allocate and free it.
8566         (create_cand): New arg activation. Initialize a field in
8567         insn_to_cand_activation if it is nonnull.
8568         (create_cands): Pass the activation insn to create_cand when making
8569         a candidate involving an output reload.  Reorganize code a little.
8570         (do_remat): Keep track of active status of candidates in a separate
8571         bitmap.
8572
8573 2016-02-08  Richard Biener  <rguenther@suse.de>
8574
8575         PR tree-optimization/69719
8576         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8577         Properly use absolute of the difference of the two offsets to
8578         compare or adjust the segment length.
8579
8580 2016-02-08  Richard Biener  <rguenther@suse.de>
8581             Jeff Law  <law@redhat.com>
8582
8583         PR target/68273
8584         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8585         types for anonymous SSA names.
8586
8587 2016-02-08   Richard Biener  <rguenther@suse.de>
8588
8589         PR rtl-optimization/69274
8590         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8591
8592 2016-02-08  Jeff Law  <law@redhat.com>
8593
8594         PR tree-optimization/65917
8595         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8596         equivalences from if (x == y) style conditionals.
8597         (loop_depth_of_name): Remove.
8598         (record_equality): Remove loop depth check.
8599         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8600         (const_and_copies::record_const_or_copy_raw): New member function.
8601         * tree-ssa-scopedtables.c
8602         (const_and_copies::record_const_or_copy_raw): New, factored out of
8603         (const_and_copies::record_const_or_copy): Call new member function.
8604
8605 2016-02-05  Jeff Law  <law@redhat.com>
8606
8607         PR tree-optimization/68541
8608         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8609         (count_stmts_in_block): New function.
8610         (poor_ifcvt_candidate_code): Likewise.
8611         (is_feasible_trace): Add some heuristics to determine when path
8612         splitting is profitable.
8613         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8614         is a diamond with a single exit.
8615
8616 2016-02-05  Martin Sebor  <msebor@redhat.com>
8617
8618         PR c++/69662
8619         * doc/invoke.texi: Update -Wplacement-new to take an optional
8620         argument.
8621
8622 2016-02-06  Richard Henderson  <rth@redhat.com>
8623
8624         PR c/69643
8625         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8626         out of non-standard address spaces.
8627
8628 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8629
8630         PR rtl-optimization/69691
8631         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8632
8633 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8634
8635         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8636         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8637         (*ieee128_mfvsrd_64bit): Likewise.
8638         (*ieee128_mfvsrd_32bit): Likewise.
8639
8640 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8641
8642         PR target/69369
8643         Revert r232560:
8644         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8645
8646         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8647         instrumented_version.
8648
8649 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8650
8651         * doc/invoke.texi (Optimize Options): In table of --param options
8652         rename second occurrence of tracer-min-branch-ratio to
8653         tracer-min-branch-probability, rename
8654         tracer-min-branch-ratio-feedback to
8655         tracer-min-branch-probability-feedback and clarify description,
8656         rename sched-spec-state-edge-prob-cutoff to
8657         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8658         to selsched-insns-to-rename, rename lto-minpartition to
8659         lto-min-partition, delete reorder-blocks-duplicate and
8660         reorder-blocks-duplicate-feedback.
8661
8662 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8663
8664         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8665         superfluous loops.
8666
8667 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8668
8669         * doc/extend.texi: S/390: Correct some typos.
8670
8671 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8672
8673         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8674
8675 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8676
8677         PR target/69625
8678         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8679         (s390_register_info_gprtofpr): Use new macros above.
8680         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8681         its name.
8682         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8683         its name.  Adjust restore and save gpr ranges.
8684         (s390_register_info_set_ranges): New function.
8685         (s390_register_info): Use new macros above.  Call
8686         s390_register_info_set_ranges.
8687         (s390_optimize_register_info): Likewise.
8688         (s390_hard_regno_rename_ok): Use new macros.
8689         (s390_hard_regno_scratch_ok): Likewise.
8690         (s390_emit_epilogue): Likewise.
8691         (s390_can_use_return_insn): Likewise.
8692         (s390_optimize_prologue): Likewise.
8693         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8694
8695 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8696
8697         PR bootstrap/69677
8698         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8699         alignment fixes.
8700         (ix86_option_override_internal): Disable TARGET_STV even for
8701         -m{incoming,preferred}-stack-boundary=3.
8702
8703 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8704
8705         * config.gcc: Mark deprecated rtems targets as obsolete.
8706
8707 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8708
8709         PR rtl-optimization/64682
8710         PR rtl-optimization/69567
8711         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8712         before I2 only if the register is both used and set in I2.
8713
8714 2016-02-04  DJ Delorie  <dj@redhat.com>
8715
8716         * config/msp430/msp430.c (msp430_start_function): Add function type.
8717
8718 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8719
8720         PR fortran/69368
8721         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8722
8723 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8724
8725         PR rtl-optimization/69577
8726         Revert:
8727         2015-10-29  Richard Henderson  <rth@redhat.com>
8728
8729         PR target/68124
8730         PR rtl-opt/67609
8731         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8732         sse check to the exact conditions of PR 67609.
8733
8734 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8735
8736         PR target/69667
8737         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8738         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8739         not allowed into the traditional Altivec registers.
8740         (movtd_64bit_nodm): Likewise.
8741         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8742
8743 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8744
8745         * config/aarch64/cortex-a57-fma-steering.c
8746         (aarch64_register_fma_steering): Remove "static" from arguments
8747         to register_pass.
8748
8749 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8750
8751         PR target/69619
8752         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8753         twice when complex.
8754
8755 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8756
8757         * doc/invoke.texi: Delete -mno-fma4.
8758
8759 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8760
8761         PR rtl-optimization/69577
8762         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8763         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8764         definitions.
8765
8766 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8767
8768         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8769         * config/arm/arm.c (neon_reinterpret): Remove.
8770         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8771         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8772         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8773         vreinterpretti): Remove.
8774         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8775         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8776         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8777         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8778         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8779         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8780         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8781         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8782         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8783         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8784         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8785         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8786         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8787         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8788         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8789         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8790         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8791         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8792         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8793         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8794         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8795         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8796         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8797         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8798         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8799         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8800         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8801         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8802         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8803         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8804         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8805         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8806         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8807         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8808         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8809         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8810         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8811         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8812         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8813         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8814         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8815         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8816         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8817         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8818         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8819         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8820         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8821         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8822         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8823         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8824         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8825         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8826         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8827         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8828         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8829         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8830         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8831         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8832         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8833         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8834         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8835         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8836         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8837         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8838         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8839         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8840         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8841         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8842         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8843         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8844         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8845         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8846         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8847         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8848         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8849         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8850         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8851         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8852         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8853         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8854         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8855         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8856         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8857         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8858         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8859         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8860         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8861         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8862         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8863         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8864         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8865         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8866         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8867         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8868         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8869         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8870         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8871         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8872         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8873         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8874         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8875         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8876         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8877
8878 2016-02-04  Martin Liska  <mliska@suse.cz>
8879
8880         PR sanitizer/69276
8881         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8882         that are gimple_store_p.
8883         (maybe_instrument_call): Likewise.
8884
8885 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8886
8887         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8888         register scaling out of memory reference and comment why.
8889
8890 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8891
8892         PR target/65932
8893         PR target/67714
8894         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8895         folding the source of a SET.
8896
8897 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8898
8899         PR target/65932
8900         PR target/67714
8901         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8902         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8903
8904 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8905
8906         PR target/65932
8907         PR target/67714
8908         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8909         HImode.
8910
8911 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8912
8913         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8914         * config/arm/arm.c (arm_set_current_function): Likewise.
8915
8916 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8917             Ilya Enkovich  <enkovich.gnu@gmail.com>
8918             H.J. Lu  <hongjiu.lu@intel.com>
8919
8920         PR target/69454
8921         * config/i386/i386.c (convert_scalars_to_vector): Remove
8922         stack alignment fixes.
8923         (ix86_option_override_internal): Disable TARGET_STV if stack
8924         might not be aligned enough.
8925         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8926
8927 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8928
8929         * gcc/config/i386/x86-tune.def: Disable default prefetching
8930         for -march=znver1.
8931
8932 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8933             Vladimir Makarov  <vmakarov@redhat.com>
8934
8935         PR target/69461
8936         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8937         in validating fused toc addresses.
8938
8939 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8940
8941         PR c/69627
8942         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8943         range->m_caret fields if range->m_show_caret_p is false.
8944
8945         PR target/69644
8946         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8947         Force oldval into register if it does not satisfy reg_or_short_operand
8948         predicate.  Fix up formatting.
8949
8950 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8951             Alexandre Oliva  <aoliva@redhat.com>
8952
8953         PR target/69461
8954         * lra-constraints.c (simplify_operand_subreg): Check additionally
8955         address validity after potential reloading.
8956         (process_address_1): Check insns validity.  In case of failure do
8957         nothing.
8958
8959 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8960
8961         PR target/69118
8962         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8963         Fix target.
8964
8965 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8966
8967         * wide-int.cc (canonize_uhwi): New function.
8968         (wi::divmod_internal): Use it.
8969
8970 2016-02-02  James Norris  <jnorris@codesourcery.com
8971
8972         * gimplify.c (omp_notice_variable): Add usage check.
8973
8974 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8975
8976         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8977         like LE, GE, LT, GT when emitting relational operator.
8978
8979 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8980
8981         * ira-costs.c (find_costs_and_classes): Add extra argument.
8982         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8983         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8984         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8985         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8986         Add best_class parameter, and return it if not ALL_REGS.
8987         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8988         Add parameter.
8989         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8990         Update target hook.
8991
8992 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8993
8994         * config/aarch64/aarch64.c
8995         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8996         (aarch64_ira_change_pseudo_allocno_class): New function.
8997
8998 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8999
9000         PR target/67032
9001         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
9002
9003 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
9004
9005         * config/avr/avr.c (avr_option_override): Set
9006         PARAM_ALLOW_STORE_DATA_RACES to 1.
9007
9008 2016-02-02  Richard Biener  <rguenther@suse.de>
9009
9010         PR tree-optimization/69595
9011         * match.pd: Add range test simplifications to true/false.
9012
9013 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
9014
9015         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
9016         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
9017         instead.
9018
9019 2016-02-02  Richard Biener  <rguenther@suse.de>
9020
9021         PR tree-optimization/69606
9022         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
9023         info on the result before moving a stmt.
9024
9025 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
9026
9027         PR middle-end/68542
9028         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
9029         branch with vector comparison.
9030         * config/i386/sse.md (VI48_AVX): New mode iterator.
9031         (define_expand "cbranch<mode>4): Add support for conditional branch
9032         with vector comparison.
9033         * tree-vect-loop.c (optimize_mask_stores): New function.
9034         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9035         has_mask_store field of vect_info.
9036         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9037         vectorized loops having masked stores after vec_info destroy.
9038         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9039         correspondent macros.
9040         (optimize_mask_stores): Add prototype.
9041
9042 2016-02-02  Alan Modra  <amodra@gmail.com>
9043
9044         PR target/69548
9045         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9046         allow subregs.
9047
9048 2016-02-02  Alan Modra  <amodra@gmail.com>
9049
9050         PR target/68662
9051         * config/rs6000/rs6000.c (need_toc_init): New var, set it
9052         whenever toc_label_name used.
9053         (rs6000_file_start): Don't set up toc section here,
9054         (rs6000_output_function_epilogue): do so here instead,
9055         (rs6000_xcoff_file_start): and here.
9056         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
9057         (load_toc_aix_di): Likewise.
9058
9059 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9060
9061         PR rtl-optimization/69592
9062         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
9063         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
9064         (num_sign_bit_copies_binary_arith_p): New inline function.
9065         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
9066
9067 2016-02-01  Jeff Law  <law@redhat.com>
9068
9069         PR tree-optimization/69580
9070         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
9071         * tree-ssa-threadbackward.c
9072         (fsm_find_control_statement_thread_paths): Do not try to walk
9073         through large PHI nodes.
9074
9075 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9076
9077         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
9078         when count is incremented above limit, don't analyze further
9079         insns afterwards.
9080
9081         * omp-low.c (oacc_parse_default_dims): Avoid
9082         -Wsign-compare warning, make sure value fits into int
9083         rather than just unsigned int.
9084
9085 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
9086
9087         PR tree-optimization/67921
9088         * fold-const.c (split_tree): New parameters.  Convert pointer
9089         type variable part to proper type before negating.
9090         (fold_binary_loc): Pass new arguments to split_tree.
9091
9092 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
9093
9094         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
9095         (nvptx_goacc_validate_dims): Extend to handle global defaults.
9096         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
9097         * doc/tm.texti: Rebuilt.
9098         * doc/invoke.texi (fopenacc-dim): Document.
9099         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
9100         (append_compiler_options): Likewise.
9101         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
9102         (oacc_parse_default_dims): New.
9103         (oacc_validate_dims): Add USED arg.  Select non-unity default when
9104         possible.
9105         (oacc_loop_fixed_partitions): Return mask of used partitions.
9106         (oacc_loop_auto_partitions): Emit dump info.
9107         (oacc_loop_partition): Return mask of used partitions.
9108         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
9109         loop partitioning and validation calls.
9110
9111 2016-02-01  Richard Biener  <rguenther@suse.de>
9112
9113         PR middle-end/69556
9114         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
9115
9116 2016-02-01  Richard Biener  <rguenther@suse.de>
9117
9118         PR tree-optimization/69574
9119         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
9120         of asserting return chrec_dont_know.
9121
9122 2016-02-01  Martin Liska  <mliska@suse.cz>
9123
9124         * mem-stats-traits.h: Add copyright header.
9125         * mem-stats.h: Likewise.
9126
9127 2016-02-01  Richard Biener  <rguenther@suse.de>
9128
9129         PR tree-optimization/69579
9130         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
9131         Do not propagate through abnormal PHI results.
9132
9133 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
9134
9135         * postreload.c (reload_cse_simplify): Remove dead code.
9136
9137 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9138
9139         PR rtl-optimization/69570
9140         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
9141         if there is more than one set, not if there is a single set.
9142
9143 2016-02-01  Richard Henderson  <rth@redhat.com>
9144
9145         PR rtl-opt/69535
9146         * combine.c (make_compound_operation): When looking through a
9147         subreg, make sure to re-extend to the width of the outer mode.
9148
9149 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
9150
9151         PR tree-optimization/69546
9152         * wide-int.cc (wi::divmod_internal): For unsigned division
9153         where both operands fit into uhwi, if o1 is 1 and o0 has
9154         msb set, if divident_prec is larger than bits per hwi,
9155         clear another quotient word and return 2 instead of 1.
9156         Similarly for remainder with msb in HWI set, if dividend_prec
9157         is larger than bits per hwi.
9158
9159 2016-01-29  Martin Jambor  <mjambor@suse.cz>
9160
9161         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
9162         Use short lowercase names.
9163         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
9164         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
9165         acq_rel one.  Protect warning agains segfaults if
9166         get_memory_order_name returns NULL.
9167         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
9168         with release semantics.  Do not warn if get_memory_order already did.
9169         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
9170         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
9171         if get_memory_order already did.
9172
9173 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
9174
9175         * doc/install.texi: Document that isl-0.16 is supported.
9176
9177 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9178
9179         PR target/69299
9180         * config/i386/constraints.md (Bm): Describe as special memory
9181         constraint.
9182         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
9183         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9184         * genpreds.c (struct constraint_data): Add is_special_memory.
9185         (have_special_memory_constraints, special_memory_start): New
9186         static vars.
9187         (special_memory_end): Ditto.
9188         (add_constraint): Add new arg is_special_memory.  Add code to
9189         process its true value.  Update have_special_memory_constraints.
9190         (process_define_constraint): Pass the new arg.
9191         (process_define_register_constraint): Ditto.
9192         (choose_enum_order): Process special memory.
9193         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9194         function insn_extra_special_memory_constraint.
9195         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9196         * gensupport.c (process_rtx): Process
9197         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9198         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9199         * ira-lives.c (single_reg_class): Use
9200         insn_extra_special_memory_constraint.
9201         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9202         * lra-constraints.c (process_alt_operands): Ditto.
9203         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9204         * recog.c (asm_operand_ok, preprocess_constraints): Process
9205         CT_SPECIAL_MEMORY.
9206         * reload.c (find_reloads): Ditto.
9207         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9208         * stmt.c (parse_input_constraint): Use
9209         insn_extra_special_memory_constraint.
9210
9211 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9212
9213         PR target/69530
9214         * lra-splill.c (lra_final_code_change): Revert r229087 by
9215         removing all sub-registers.
9216
9217 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9218
9219         PR target/65604
9220         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9221
9222 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9223
9224         PR target/69551
9225         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9226         SSE1, copy target into the temporary reg first before recursing
9227         on it.
9228
9229 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9230
9231         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9232         with vm.
9233
9234 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9235
9236         * ginclude/stdarg.h: Test __cplusplus instead of
9237         __GXX_EXPERIMENTAL_CXX0X__.
9238
9239 2016-01-29  Richard Biener  <rguenther@suse.de>
9240
9241         PR tree-optimization/69547
9242         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9243         Do not mark clobbers necessary.
9244         (mark_all_reaching_defs_necessary_1): Likewise.
9245
9246 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9247
9248         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9249         declaration name with %qs and print it in both error messages.
9250         Also fix indentation.
9251
9252 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9253
9254         PR other/69006
9255         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9256         trailing blank line from error message.
9257
9258 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9259
9260         PR c++/69462
9261         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9262         for C++-11.
9263
9264 2016-01-29  Richard Biener  <rguenther@suse.de>
9265
9266         PR middle-end/69537
9267         * match.pd: Allow all integral types when simplifying a
9268         widening or sign-changing conversion.
9269
9270 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9271
9272         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9273         back to setting codegen_error to fail codegen.
9274
9275 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9276
9277         PR target/69459
9278         * config/i386/constraints.md (C): Only accept constant zero operand.
9279         (BC): New constraint.
9280         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9281         instead of C constraint.
9282         * doc/md.texi (Machine Constraints): Update description
9283         of C constraint.
9284
9285 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9286
9287         PR target/68400
9288         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9289
9290 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9291
9292         PR middle-end/69542
9293         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9294         non-debug insns.
9295
9296 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9297
9298         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9299         branches if using guessed profile.
9300
9301 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9302
9303         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9304
9305 2016-01-28  Richard Henderson  <rth@redhat.com>
9306
9307         PR target/69305
9308         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9309         * config/aarch64/aarch64-protos.h: Update.
9310         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9311         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9312         (aarch64_get_condition_code_1): Handle CC_Cmode.
9313         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9314         (*add<mode>3_compareC_cconly_imm): New.
9315         (*add<mode>3_compareC_cconly): New.
9316         (*add<mode>3_compareC_imm): New.
9317         (add<mode>3_compareC): New.
9318         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9319         to be first.  Use aarch64_carry_operation.
9320         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9321         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9322         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9323         (subti3): Use subdi3_compare1.
9324         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9325         (sub<mode>3_compare1): New.
9326         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9327         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9328         (*subsi3_carryin_uxtw): Likewise.
9329         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9330         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9331         * config/aarch64/iterators.md (DWI): New.
9332         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9333         (aarch64_borrow_operation): New.
9334
9335 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9336
9337         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9338         message when isl does not return a valid schedule.
9339
9340 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9341
9342         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9343         Remove comments from class declarations: they are already in the code
9344         close by the defs.
9345
9346 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9347
9348         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9349         codegen_error_p.
9350         (ternary_op_to_tree): Same.
9351         (unary_op_to_tree): Same.
9352         (nary_op_to_tree): Same.
9353         (gcc_expression_from_isl_expr_op): Same.
9354         (gcc_expression_from_isl_expression): Same.
9355         (graphite_create_new_loop): Same.
9356         (graphite_create_new_loop_guard): Same.
9357         (build_iv_mapping): Same.
9358         (graphite_create_new_guard): Same.
9359         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9360         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9361
9362 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9363
9364         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9365         instead of setting codegen_error to fail codegen.
9366
9367 2016-01-28  Jason Merrill  <jason@redhat.com>
9368
9369         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9370
9371 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9372
9373         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9374         Remove CONST_INT_P check in CCMP cost calculation.
9375
9376 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9377
9378         * config/aarch64/aarch64.c (generic_vector_cost):
9379         Set vec_permute_cost.
9380         (cortexa57_vector_cost): Likewise.
9381         (exynosm1_vector_cost): Likewise.
9382         (xgene1_vector_cost): Likewise.
9383         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9384         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9385         Add vec_permute_cost entry.
9386
9387 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9388
9389         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9390         immediate as %1.
9391         (add<mode>3_compare0): Likewise.
9392         (addsi3_compare0_uxtw): Likewise.
9393         (add<mode>3nr_compare0): Likewise.
9394         (compare_neg<mode>): Likewise.
9395         (<optab><mode>3): Likewise.
9396
9397 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9398
9399         * tree-vect-stmts.c (vectorizable_comparison): Add
9400         NULL check for vectype.
9401
9402 2016-01-28  Richard Biener  <rguenther@suse.de>
9403
9404         PR tree-optimization/69466
9405         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9406         Account for PHIs we couldn't duplicate.
9407
9408 2016-01-28  Martin Liska  <mliska@suse.cz>
9409
9410         PR pch/68758
9411         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9412         instead of ENABLE_VALGRIND_CHECKING.
9413
9414 2016-01-27  Richard Henderson  <rth@redhat.com>
9415
9416         PR rtl-opt/69447
9417         * lra-remat.c (subreg_regs): New.
9418         (dump_candidates_and_remat_bb_data): Dump it.
9419         (operand_to_remat): Reject if operand in subreg_regs.
9420         (set_bb_regs): Collect subreg_regs.
9421         (lra_remat): Init and free subreg_regs.  Compute
9422         calculate_local_reg_remat_bb_data before create_cands.
9423
9424 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9425
9426         PR target/68986
9427         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9428         change stack_alignment_needed for __tls_get_addr call.
9429
9430 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9431
9432         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9433
9434 2016-01-27  Jeff Law  <law@redhat.com>
9435
9436         PR tree-optimization/68398
9437         PR tree-optimization/69196
9438         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9439         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9440         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9441         Only count PHIs in the last block in the path.  The others will
9442         const/copy propagate away.  Add heuristic to allow more irreducible
9443         subloops to be created when it is likely profitable to do so.
9444
9445         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9446         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9447         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9448
9449 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9450
9451         PR lto/69254
9452         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9453         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9454         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9455         * tree-streamer-in.c: Include asan.h.
9456         (streamer_get_builtin_tree): For builtins in sanitizer
9457         range call initialize_sanitizer_builtins and retry.
9458
9459 2016-01-27  Ian Lance Taylor  <iant@google.com>
9460
9461         * common.opt (fkeep-gc-roots-live): New undocumented option.
9462         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9463         -fkeep-gc-roots-live, skip pointers.
9464         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9465         NULL.
9466
9467 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9468
9469         PR target/69512
9470         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9471         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9472
9473 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9474
9475         PR target/68380
9476         * configure.ac: NetBSD provides SSP in its C library.
9477         * configure: Updated.
9478
9479 2016-01-27  Richard Biener  <rguenther@suse.de>
9480
9481         PR tree-optimization/69166
9482         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9483         reduction code for commutativity / associativity.
9484
9485 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9486
9487         PR tree-optimization/69355
9488         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9489         total_scalarization fails.
9490
9491 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9492
9493         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9494         power9.
9495
9496 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9497
9498         PR target/69245
9499         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9500         Move arm_reset_previous_fndecl and set_target_option_current_node in
9501         the conditional part.  Call save_restore_target_globals.
9502         * config/arm/arm.c (arm_set_current_function):
9503         Refactor to better support #pragma target and attribute mix.
9504         Call save_restore_target_globals.
9505         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9506
9507 2016-01-27  Martin Liska  <mliska@suse.cz>
9508
9509         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9510         reference for an HSA kernel and its host function.
9511
9512 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9513
9514         PR tree-optimization/69399
9515         * wide-int.h (wi::lrshift): For larger precisions, only
9516         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9517
9518 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9519
9520         * config/arc/predicates.md (proper_comparison_operator): Reject
9521         constant-constant comparison.
9522
9523 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9524
9525         PR tree-optimization/69110
9526         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9527         DR_NUM_DIMENSIONS == 0.
9528
9529 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9530             Sebastian Pop  <s.pop@samsung.com>
9531
9532         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9533         isl_ast_op_cond and isl_ast_op_select.
9534         (gcc_expression_from_isl_expr_op): Same.
9535
9536 2016-01-26  Jason Merrill  <jason@redhat.com>
9537
9538         PR c++/68782
9539         * tree.c (recompute_constructor_flags): Split out from
9540         build_constructor.
9541         (verify_constructor_flags): New.
9542         * tree.h: Declare them.
9543
9544 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9545
9546         PR rtl-optimization/69217
9547         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9548         are no TYPE_FIELDS set for the record type.
9549
9550 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9551
9552         PR target/68662
9553         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9554         toc_label_name unconditionally.
9555         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9556         SYMBOL_REF string.  Use toc_label_name instead of constructing
9557         LCTOC1.
9558         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9559         constructing LCTOC1.
9560
9561 2016-01-26  Martin Sebor  <msebor@redhat.com>
9562
9563         PR other/69477
9564         * doc/extend.texi (Common Type Attributes): Move text that talks about
9565         attribute packed from attribute aligned to the section discussing
9566         the former attribute for clarity.
9567
9568 2016-01-26  Richard Henderson  <rth@redhat.com>
9569
9570         PR middle-end/60908
9571         * trans-mem.c (tm_region_init): Mark entry block as visited.
9572
9573 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9574
9575         PR other/69006
9576         * diagnostic-show-locus.c (layout::print_source_line): Replace
9577         call to pp_newline with call to layout::print_newline.
9578         (layout::print_annotation_line): Likewise.
9579         (layout::move_to_column): Likewise.
9580         (layout::print_any_fixits): After printing any fixits, print a
9581         trailing newline, if necessary.
9582         (layout::print_newline): New method, resetting any colorization
9583         before a newline.
9584         (diagnostic_show_locus): Move the pp_newline to before the
9585         early bailout.  Remove dummy block enclosing the layout instance.
9586         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9587         of pp_newline_and_flush with pp_flush.
9588         (diagnostic_append_note): Delete use of pp_newline.
9589         (diagnostic_append_note_at_rich_loc): Delete.
9590         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9591         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9592         when newline characters are added to the buffer.
9593
9594 2016-01-26  Michael Matz  <matz@suse.de>
9595
9596         * configure.ac (ac_cv_std_swap_in_utility): New test.
9597         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9598         * configure: Regenerate.
9599         * config.in: Regenerate.
9600
9601 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9602
9603         * config/arc/arc.md (cstoresi4): Force operand into register.
9604         (arcset<code>): Fix predicate.
9605         (arcsetltu): Likewise.
9606         (arcsetgeu): Likewise.
9607         (arcsethi): Likewise.
9608         (arcsetls): Likewise.
9609
9610 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9611
9612         PR tree-optimization/69483
9613         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9614         if base has error_mark_node type.
9615
9616 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9617
9618         PR target/68620
9619         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9620         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9621         New helper macros.
9622         (vget_lane_f16): Handle big-endian.
9623         (vgetq_lane_f16): Likewise.
9624         (vset_lane_f16): Likewise.
9625         (vsetq_lane_f16): Likewise.
9626         * config/arm/iterators.md (VQXMOV): Add V8HF.
9627         (VDQ): Add V4HF and V8HF.
9628         (V_reg): Handle V4HF and V8HF.
9629         (Is_float_mode): Likewise.
9630         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9631         neon_vdup_nv8hf): New patterns.
9632         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9633         Use VD_LANE iterator.
9634         (neon_vld1_dup<mode>): Use VQ2 iterator.
9635
9636 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9637
9638         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9639         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9640         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9641         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9642         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9643         (oacc_validate_dims): Add LEVEL arg, don't return level.
9644         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9645         oacc_validate_dims.
9646         (execute_oacc_device_lower): Adjust, add more dump output.
9647         * tree-ssa-loop.c (gate_oacc_kernels): Use
9648         oacc_fn_attrib_kernels_p.
9649         * tree-parloops.c (create_parallel_loop): Adjust
9650         set_oacc_fn_attrib call.
9651
9652 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9653
9654         PR lto/69254
9655         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9656         (append_compiler_options): Handle -fcilkplus.
9657         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9658
9659 2016-01-26  Nick Clifton  <nickc@redhat.com>
9660
9661         PR target/66655
9662         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9663         been marked as DECL_ONE_ONLY but we do not the means to make it
9664         so, then do not allow it to bind locally.
9665
9666 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9667
9668         PR lto/69254
9669         * opts.h (parse_sanitizer_options): New prototype.
9670         * opts.c (sanitizer_opts): New array.
9671         (parse_sanitizer_options): New function.
9672         (common_handle_option): Use parse_sanitizer_options.
9673
9674 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9675
9676         PR target/68986
9677         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9678         alignment adjustment to ...
9679         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9680         __tls_get_addr.
9681         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9682         if __tls_get_addr is called.
9683
9684 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9685
9686         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9687
9688 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9689
9690         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9691
9692 2016-01-26  Richard Biener  <rguenther@suse.de>
9693
9694         PR middle-end/69467
9695         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9696
9697 2016-01-26  Richard Biener  <rguenther@suse.de>
9698
9699         PR tree-optimization/69452
9700         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9701         (move_computations_dom_walker::before_dom_children): Rename
9702         to ...
9703         (move_computations_worker): This.
9704         (move_computations): Perform an RPO rather than a DOM walk.
9705
9706 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9707
9708         PR target/69442
9709         * combine.c (combine_instructions): For REG_EQUAL note with
9710         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9711         to the underlying register.
9712         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9713         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9714
9715 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9716
9717         PR target/67896
9718         * config/aarch64/aarch64-builtins.c
9719         (aarch64_init_simd_builtin_types): Do not set structural
9720         equality to __Poly{8,16,64,128}_t types.
9721
9722 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9723
9724         PR tree-optimization/69400
9725         * wide-int.cc (wi_pack): Take the precision as argument and
9726         perform canonicalization here rather than in the callers.
9727         Use the main loop to handle all full-width HWIs.  Add a
9728         zero HWI if in_len isn't a full result.
9729         (wi::divmod_internal): Update accordingly.
9730         (wi::mul_internal): Likewise.  Simplify.
9731
9732 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9733             Sebastian Pop  <s.pop@samsung.com>
9734
9735         * graphite-poly.c (apply_poly_transforms): Simplify.
9736         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9737         (print_isl_map): Same.
9738         (print_isl_union_map): Same.
9739         (print_isl_schedule): New.
9740         (debug_isl_schedule): New.
9741         * graphite-dependences.c (scop_get_reads): Do not call
9742         isl_union_map_add_map that is undocumented isl functionality.
9743         (scop_get_must_writes): Same.
9744         (scop_get_may_writes): Same.
9745         (scop_get_original_schedule): Remove.
9746         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9747         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9748         (compute_deps): Remove.
9749         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9750         (debug_schedule_ast): New.
9751         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9752         set_separate_option.
9753         (graphite_regenerate_ast_isl): Add dump.
9754         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9755         from scop->transformed_schedule.
9756         (graphite_regenerate_ast_isl): Add more dump.
9757         * graphite-optimize-isl.c (optimize_isl): Set
9758         scop->transformed_schedule.  Check whether schedules are equal.
9759         (apply_poly_transforms): Move here.
9760         * graphite-poly.c (apply_poly_transforms): ... from here.
9761         (free_poly_bb): Static.
9762         (free_scop): Static.
9763         (pbb_number_of_iterations_at_time): Remove.
9764         (print_isl_ast): New.
9765         (debug_isl_ast): New.
9766         (debug_scop_pbb): New.
9767         * graphite-scop-detection.c (print_edge): Move.
9768         (print_sese): Move.
9769         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9770         (build_scop_scattering): Remove.
9771         (create_pw_aff_from_tree): Assert instead of bailing out.
9772         (add_condition_to_pbb): Remove unused code, do not fail.
9773         (add_conditions_to_domain): Same.
9774         (add_conditions_to_constraints): Remove.
9775         (build_scop_context): New.
9776         (add_iter_domain_dimension): New.
9777         (build_iteration_domains): Initialize pbb->iterators.
9778         Call add_conditions_to_domain.
9779         (nested_in): New.
9780         (loop_at): New.
9781         (index_outermost_in_loop): New.
9782         (index_pbb_in_loop): New.
9783         (outermost_pbb_in): New.
9784         (add_in_sequence): New.
9785         (add_outer_projection): New.
9786         (outer_projection_mupa): New.
9787         (add_loop_schedule): New.
9788         (build_schedule_pbb): New.
9789         (build_schedule_loop): New.
9790         (embed_in_surrounding_loops): New.
9791         (build_schedule_loop_nest): New.
9792         (build_original_schedule): New.
9793         (build_poly_scop): Call build_original_schedule.
9794         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9795         (free_poly_dr): Remove.
9796         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9797         (free_poly_bb): Remove.
9798         (debug_loop_vec): Remove.
9799         (print_isl_ast): Declare.
9800         (debug_isl_ast): Declare.
9801         (scop_do_interchange): Remove.
9802         (scop_do_strip_mine): Remove.
9803         (scop_do_block): Remove.
9804         (flatten_all_loops): Remove.
9805         (optimize_isl): Remove.
9806         (pbb_number_of_iterations_at_time): Remove.
9807         (debug_scop_pbb): Declare.
9808         (print_schedule_ast): Declare.
9809         (debug_schedule_ast): Declare.
9810         (struct scop): Remove schedule.  Add original_schedule,
9811         transformed_schedule.
9812         (free_gimple_poly_bb): Remove.
9813         (print_generated_program): Remove.
9814         (debug_generated_program): Remove.
9815         (unify_scattering_dimensions): Remove.
9816         * sese.c (print_edge): ... here.
9817         (print_sese): ... here.
9818         (debug_edge): ... here.
9819         (debug_sese): ... here.
9820         * sese.h (print_edge): Declare.
9821         (print_sese): Declare.
9822         (dump_edge): Declare.
9823         (dump_sese): Declare.
9824
9825 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9826             Sebastian Pop  <s.pop@samsung.com>
9827
9828         * Makefile.in: Set ISLVER in site.exp.
9829
9830 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9831
9832         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9833         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9834         through DECL_VALUE_EXPR for expansion.
9835
9836 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9837
9838         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9839         the frame info after reload completed.
9840
9841 2016-01-25  Jeff Law  <law@redhat.com>
9842
9843         PR tree-optimization/69196
9844         PR tree-optimization/68398
9845         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9846         tree-ssa-threadupdate.c.
9847         (determine_bb_domination_status): Prototype
9848         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9849         (determine_bb_domination_status): No longer static.
9850         (valid_jump_thread_path): Remove code to detect characteristics
9851         of the jump thread path not associated with correctness.
9852         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9853         Correct test for thread path length.  Count PHIs for real operands as
9854         statements that need to be copied.  Do not count ASSERT_EXPRs.
9855         Look at all the blocks in the thread path.  Compute and selectively
9856         filter thread paths based on threading through the latch, threading
9857         a multiway branch or crossing a multiway branch.
9858
9859 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9860
9861         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9862         decl with __attribute__ ((unused)) annotation.
9863
9864 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9865
9866         PR target/69421
9867         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9868         of operands is compatible with a statement vectype.
9869
9870 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9871
9872         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9873         improve wording for mixed storage order support.
9874
9875 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9876
9877         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9878         (vcvt_u64_f64): Likewise.
9879         (vcvta_s64_f64): Likewise.
9880         (vcvta_u64_f64): Likewise.
9881         (vcvtm_s64_f64): Likewise.
9882         (vcvtm_u64_f64): Likewise.
9883         (vcvtn_s64_f64): Likewise.
9884         (vcvtn_u64_f64): Likewise.
9885         (vcvtp_s64_f64): Likewise.
9886         (vcvtp_u64_f64): Likewise.
9887
9888 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9889
9890         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9891         (arc_init): Check validity mll64 option.
9892         (arc_save_restore): Use double load/store instruction.
9893         (arc_expand_movmem): Likewise.
9894         (arc_split_move): Don't split if we have double load/store
9895         instructions. Returns a boolean.
9896         (arc_process_double_reg_moves): Change function to return boolean
9897         instead of a sequence of instructions.
9898         (arc_dwarf_register_span): New function.
9899         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9900         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9901         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9902         (*movdf_insn): Likewise.
9903         * config/arc/arc.opt (mll64): New option.
9904         * config/arc/predicates.md (even_register_operand): New predicate.
9905         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9906
9907 2016-01-25  Richard Biener  <rguenther@suse.de>
9908
9909         PR lto/69393
9910         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9911         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9912         DECL_NAMELESS.
9913         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9914
9915 2016-01-25  Richard Biener  <rguenther@suse.de>
9916
9917         PR tree-optimization/69376
9918         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9919         flag.
9920         (VN_INFO_ANTI_RANGE_P): New inline.
9921         (VN_INFO_RANGE_TYPE): Likewise.
9922         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9923         SSA_NAME_ANTI_RANGE_P.
9924         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9925         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9926         Properly query VN_INFO_RANGE_TYPE.
9927
9928 2016-01-25  Nick Clifton  <nickc@redhat.com>
9929
9930         PR target/66655
9931         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9932
9933 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9934
9935         PR tree-optimization/69426
9936         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9937         removed clobber.
9938
9939 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9940
9941         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9942         "the the" with "the" in the comments.
9943         * ipa-devirt.c (build_type_inheritance_graph,
9944         update_type_inheritance_graph): Likewise.
9945         * tree.c (build_function_type_list_1): Likewise.
9946         * cfgloopmanip.c (scale_loop_profile): Likewise.
9947         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9948         * gimple-ssa-split-paths.c
9949         (find_block_to_duplicate_for_splitting_paths): Likewise.
9950         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9951         * expr.c (convert_move): Likewise.
9952         * var-tracking.c (vt_stack_adjustments): Likewise.
9953         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9954         * tree-vrp.c (test_for_singularity): Likewise.
9955
9956         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9957         directly instead of building a temporary tree.
9958
9959         PR bootstrap/69434
9960         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9961         remove <algorithm> include.
9962
9963 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9964
9965         PR target/69432
9966         * config/i386/i386.c: Include dojump.h.
9967         (expand_small_movmem_or_setmem,
9968         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9969         fixes.
9970         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9971         if dynamic_check != -1.
9972
9973 2016-01-21  Jeff Law  <law@redhat.com>
9974
9975         PR middle-end/69347
9976         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9977         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9978         into dominated_by_p.
9979         (cprop_into_successor_phis): Avoid unnecessary tests.
9980
9981 2016-01-22  Richard Henderson  <rth@redhat.com>
9982
9983         PR target/69416
9984         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9985         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9986
9987 2016-01-22  Michael Matz  <matz@suse.de>
9988
9989         * system.h (string, algorithm): Include only conditionally.
9990         (new): Include always under C++.
9991         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9992         * final.c (toplevel): Ditto.
9993         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9994         * genconditions.c (write_header): Make gencondmd.c define
9995         INCLUDE_STRING.
9996         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9997
9998         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9999         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
10000
10001 2016-01-22  Christian Bruel  <christian.bruel@st.com>
10002
10003         PR target/68674
10004         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
10005
10006 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10007
10008         PR target/69403
10009         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
10010         define_insn_and_split.  Ensure operands[1] and operands[0] do not
10011         get assigned the same register.
10012
10013 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
10014
10015         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
10016
10017 2016-01-22  Christian Bruel  <christian.bruel@st.com>
10018
10019         * config/arm/arm-c.c (arm_pragma_target_parse):
10020         Remove warn_builtin_macro_redefined overwrite.
10021
10022 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10023
10024         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
10025         flag_non_call_exceptions compatibility.
10026
10027 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
10028
10029         PR debug/66668
10030         * dwarf2out.c (add_child_die_after): New function.
10031         (dwarf_qual_info_t): New type.
10032         (dwarf_qual_info): New variable.
10033         (qualified_die_p): New function.
10034         (modified_type_die): For -fdebug-types-section, ensure
10035         canonical order of qualifiers.  Put qualified DIEs adjacent
10036         to the corresponding non-qualified type DIE and search there
10037         for existing qualified DIEs.
10038
10039 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10040
10041         * doc/extend.texi (scalar_storage_order type attribute): Document
10042         restriction on type punning and aliasing, and remove future tense.
10043
10044 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
10045
10046         PR target/69252
10047         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10048         first stage.
10049
10050 2016-01-21  Jeff Law  <law@redhat.com>
10051
10052         PR middle-end/69347
10053         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
10054         useless call to record_temporary_equivalences.
10055         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
10056         allocate 10 slots in the bb_path vector and let it grow as needed.
10057         (fsm_find_control_statement_thread_paths): Similarly for the next_path
10058         vector.
10059
10060 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10061
10062         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
10063         Detangle.
10064         * configure: Regenerate.
10065
10066 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
10067
10068         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
10069         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
10070
10071 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10072
10073         PR middle-end/66178
10074         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
10075         drop EXPAND_INITIALIZER.
10076         * rtl.h (contains_symbolic_reference_p): Declare.
10077         * rtlanal.c (contains_symbolic_reference_p): New function.
10078         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
10079         a subtraction into a NOT if symbolic constants are involved.
10080
10081 2016-01-21  Anton Blanchard  <anton@samba.org>
10082             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10083
10084         PR target/63354
10085         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
10086         #define.
10087         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
10088         function.
10089
10090 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10091
10092         * config/microblaze/microblaze.c
10093         (get_branch_target): New.
10094         (insert_wic_for_ilb_runout): New.
10095         (insert_wic): New.
10096         (microblaze_machine_dependent_reorg): New.
10097         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
10098         * config/microblaze/microblaze.md
10099         (UNSPEC_IPREFETCH): Define.
10100         (iprefetch): New pattern
10101         * config/microblaze/microblaze.opt
10102         (mxl-prefetch): New flag.
10103
10104 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10105
10106         * config/microblaze/microblaze.h
10107         (FIXED_REGISTERS): Update in macro.
10108         (CALL_USED_REGISTERS): Update in macro.
10109
10110 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
10111
10112         PR rtl-optimization/68920
10113         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
10114         moves.
10115
10116 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10117
10118         PR rtl-optimization/68990
10119         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
10120         pseudo instead of inheritance ones.
10121
10122 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10123             Nick Clifton  <nickc@redhat.com>
10124
10125         PR target/69129
10126         PR target/69012
10127         * config/mips/mips.c (mips_compute_frame_info): Initialise
10128         args_size and hard_frame_pointer_offset fields of the frame
10129         structure before calling mips_global_pointer.
10130
10131 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10132
10133         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
10134         label reference.
10135         * configure: Regenerate.
10136
10137 2016-01-21  Richard Biener  <rguenther@suse.de>
10138
10139         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
10140
10141 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10142
10143         * config/s390/s390.c (s390_asm_declare_function_size): Add code
10144         to actually emit the .size directive.
10145
10146 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
10147              Jakub Jelinek  <jakub@redhat.com>
10148
10149         PR target/69187
10150         PR target/65624
10151         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
10152         args array size by one to avoid buffer overflow.
10153
10154 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10155
10156         * config/s390/s390.md (pool_section_start): Use switch_to_section
10157         to select proper read-only data section instead of hardcoding
10158         .rodata.
10159         (pool_section_end): Use switch_to_section to match the above.
10160
10161 2016-01-21  Richard Biener  <rguenther@suse.de>
10162
10163         PR tree-optimization/69378
10164         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
10165         (set_ssa_val_to): Use it for dominance checks taking into
10166         account not executable edges.
10167
10168 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10169
10170         PR c++/69355
10171         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
10172         for bitsize instead of GET_MODE_PRECISION (mode).
10173
10174 2016-01-20  Martin Sebor  <msebor@redhat.com>
10175
10176         PR c/52291
10177         * extend.texi (__sync Builtins): Clarify the semantics of
10178         __sync_fetch_and_OP built-ins on pointers.
10179         (__atomic Builtins): Same.
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 (enum phi_node_kind): New.
10185         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
10186         (is_valid_rename): Same.
10187         (translate_isl_ast_to_gimple::get_rename): Same.
10188         (translate_isl_ast_to_gimple::rename_all_uses): Same.
10189         (translate_isl_ast_to_gimple::rename_uses): Same.
10190         (get_new_name): Check for close_phi nodes.
10191         (copy_loop_phi_args): Use phi_node_kind.
10192         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10193         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10194
10195 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10196             Sebastian Pop  <s.pop@samsung.com>
10197
10198         Revert commit r229783.
10199         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10200         Remove use of parameter_rename_map.
10201         (copy_def): Remove.
10202         (copy_internal_parameters): Remove.
10203         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10204         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10205         (free_sese_info): Do not free parameter_rename_map.
10206         (set_rename): Do not use parameter_rename_map.
10207         (rename_uses): Update call to set_rename.
10208         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10209         * sese.h (parameter_rename_map_t): Remove.
10210         (struct sese_info_t): Remove field parameter_rename_map.
10211
10212 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10213             Sebastian Pop  <s.pop@samsung.com>
10214
10215         * graphite-isl-ast-to-gimple.c: Fix comment.
10216         * graphite-scop-detection.c (defined_in_loop_p): New.
10217         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10218         names defined in loop.
10219
10220 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10221             Sebastian Pop  <s.pop@samsung.com>
10222
10223         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10224         Discard unstructured if-then-else regions.
10225
10226 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10227             Sebastian Pop  <s.pop@samsung.com>
10228
10229         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10230         (cleanup_loop_iter_dom): Remove.
10231         (build_loop_iteration_domains): Remove.
10232         (build_scop_context): Remove.
10233         (build_scop_iteration_domain): Remove.
10234         (add_loop_constraints): New.
10235         (build_iteration_domains): New.
10236         (build_poly_scop): Call build_iteration_domains.
10237
10238 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10239             Sebastian Pop  <s.pop@samsung.com>
10240
10241         * graphite-scop-detection.c
10242         (scop_detection::harmful_loop_in_region): Free dom and loops.
10243         (scop_detection::loop_body_is_valid_scop): Free bbs.
10244
10245 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10246             Sebastian Pop  <s.pop@samsung.com>
10247
10248         * graphite-scop-detection.c (record_loop_in_sese): New.
10249         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10250         (build_scops): Remove call to build_sese_loop_nests.
10251         * sese.c (sese_record_loop): Remove.
10252         (build_sese_loop_nests): Remove.
10253         (new_sese_info): Remove region->loops.
10254         (free_sese_info): Same.
10255         * sese.h (sese_contains_loop): Same.
10256         (build_sese_loop_nests): Remove.
10257         (sese_contains_loop): Remove.
10258
10259 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10260             Sebastian Pop  <s.pop@samsung.com>
10261
10262         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10263         loop_is_valid_in_scop.
10264         (scop_detection::harmful_stmt_in_region): Renamed
10265         harmful_loop_in_region.
10266         Call loop_is_valid_in_scop.
10267
10268 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10269             Sebastian Pop  <s.pop@samsung.com>
10270
10271         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10272         isl_ast_node_mark.
10273
10274 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10275             Sebastian Pop  <s.pop@samsung.com>
10276
10277         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10278         * graphite.h (struct poly_bb): Remove field is_reduction.
10279         (PBB_IS_REDUCTION): Remove.
10280
10281 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10282             Sebastian Pop  <s.pop@samsung.com>
10283
10284         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10285         (add_pdr_constraints): Same.
10286         (scop_get_reads): Same.
10287         (scop_get_must_writes): Same.
10288         (scop_get_may_writes): Same.
10289         (scop_get_original_schedule): Same.
10290         (extend_schedule): Same.
10291         (apply_schedule_on_deps): Same.
10292         (carries_deps): Same.
10293         (compute_deps): Same.
10294         (scop_get_dependences): Same.
10295         * graphite-isl-ast-to-gimple.c
10296         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10297         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10298         (get_schedule_for_band_list): Same.
10299         (get_schedule_map): Same.
10300         (apply_schedule_map_to_scop): Same.
10301         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10302         (build_loop_iteration_domains): Same.
10303         (add_condition_to_pbb): Same.
10304         (add_param_constraints): Same.
10305         (pdr_add_memory_accesses): Same.
10306         (pdr_add_data_dimensions): Same.
10307
10308 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10309
10310         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10311         requirements.
10312
10313 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10314
10315         * common.opt (feliminate-dwarf2-dups): Replace references to
10316         "DWARF 2" with just "DWARF".
10317         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10318         * doc/extend.texi: Likewise.
10319         * doc/cpp.texi: Likewise.
10320         * doc/invoke.texi: Likewise.
10321         (Option Summary): Add -gdwarf to list of Debugging Options.
10322         (Debugging Options): Document -gdwarf.
10323         * doc/contrib.texi: Spell "DWARF" like that.
10324
10325 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10326
10327         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10328         warning.  Fix up formatting.
10329
10330         PR middle-end/67653
10331         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10332         attempt to mark memory input operand addressable and
10333         call prepare_gimple_addressable in that case.  Don't adjust
10334         input_location for diagnostics, use error_at instead.
10335
10336 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10337
10338         * config/rs6000/ppc-auxv.h: New file.
10339         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10340         (cpu_is): Likewise.
10341         (cpu_supports): Likewise.
10342         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10343         (cpu_is_info): New variable.
10344         (cpu_supports_info): Likewise.
10345         (tcb_verification_symbol): Likewise.
10346         (cpu_builtin_p): Likewise.
10347         (cpu_expand_builtin): New function.
10348         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10349         (rs6000_init_builtins): Likewise.
10350         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10351         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10352         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10353         * configure: Regenerate.
10354         * config.in: Likewise.
10355         * doc/extend.texi (PowerPC Built-in Functions): Document
10356         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10357
10358 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10359
10360         PR target/68609
10361         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10362         domain check.
10363         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10364         for V4SFmode.
10365
10366 2016-01-20  Richard Henderson  <rth@redhat.com>
10367
10368         PR bootstrap/69343
10369         PR bootstrap/69339
10370         PR tree-opt/68964
10371         Revert:
10372         * tree.c (tm_define_builtin): New.
10373         (find_tm_vector_type): New.
10374         (build_tm_vector_builtins): New.
10375         (build_common_builtin_nodes): Call it.
10376
10377 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10378
10379         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10380         (arm_fp_ok): Likewise.
10381         (arm_fp): Likewise.
10382         (arm_crypto): Likewise.
10383
10384 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10385             Richard Biener  <rguenther@suse.de>
10386
10387         PR tree-optimization/69328
10388         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10389         vectors have same number of elements.
10390         (vectorizable_condition): Fix masked version recognition.
10391
10392 2016-01-20  Richard Biener  <rguenther@suse.de>
10393
10394         PR tree-optimization/69345
10395         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10396         (VN_INFO_PTR_INFO): Likewise.
10397         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10398         info when it is equal between non-dominating SSA names.
10399         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10400         Make sure to look at original SSA infos.
10401
10402 2016-01-20  Jeff Law  <law@redhat.com>
10403
10404         PR target/25114
10405         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10406         extracted from ...
10407         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10408         (pc_or_label_operand): New predicate.
10409         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10410         tests for small integers that are 2^n - 1.
10411
10412 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10413
10414         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10415
10416 2016-01-19  Jeff Law  <law@redhat.com>
10417
10418         PR middle-end/69347
10419         * tree-ssa-threadbackwards.c
10420         (fsm_find_control_statement_thread_paths): Do not try to lookup
10421         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10422
10423 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10424
10425         * doc/lto.texi: Remove text that says only Gold has linker plugin
10426         support.
10427
10428 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10429
10430         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10431         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10432         the DIE accordingly.
10433         (modified_type_die): Add REVERSE parameter and pass it recursively,
10434         as well as to base_type_die.  Adjust presence check accordingly.
10435         (base_type_for_mode): Adjust call to modified_type_die.
10436         (add_type_attribute): Add REVERSE parameter and pass it to
10437         modified_type_die.
10438         (generic_parameter_die): Adjust call to add_type_attribute.
10439         (add_scalar_info): Likewise.
10440         (add_subscript_info): Likewise.
10441         (gen_array_type_die): Likewise.
10442         (gen_descr_array_type_die): Likewise.
10443         (gen_entry_point_die): Likewise.
10444         (gen_enumeration_type_die): Likewise.
10445         (gen_formal_parameter_die): Likewise.
10446         (gen_subprogram_die): Likewise.
10447         (gen_variable_die ): Likewise.
10448         (gen_const_die): Likewise.
10449         (gen_field_die): Likewise.
10450         (gen_pointer_type_die): Likewise.
10451         (gen_reference_type_die): Likewise.
10452         (gen_ptr_to_mbr_type_die): Likewise.
10453         (gen_inheritance_die): Likewise.
10454         (gen_subroutine_type_die): Likewise.
10455         (gen_typedef_die): Likewise.
10456         (force_type_die): Adjust call to modified_type_die.
10457
10458 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10459
10460         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10461         flow throughout the file.  Fix broken link to Objective-C 2.0
10462         documentation.
10463         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10464         errors.
10465
10466 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10467
10468         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10469
10470 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10471
10472         PR ipa/66223
10473         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10474         (maybe_record_node): Record cxa_pure_virtual as the only possible
10475         target if there are not ohter candidates.
10476         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10477
10478 2016-01-19  Richard Biener  <rguenther@suse.de>
10479
10480         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10481         (get_memory_order): Likewise.
10482
10483 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10484
10485         * tree-vect-stmts.c (vectorizable_store): Check
10486         rhs vectype.
10487
10488 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10489
10490         PR jit/68446
10491         * gcc.c (driver::decode_argv): Add call to
10492         init_opts_obstack before init_options_struct.
10493         * opts.c (init_opts_obstack): Remove idempotency.
10494         (init_options_struct): Replace call to init_opts_obstack
10495         with a gcc_assert to verify that it has already been called.
10496         * toplev.c (toplev::main): Add call to init_opts_obstack before
10497         calls to init_options_struct.
10498         (toplev::finalize): Move cleanup of opts_obstack next to
10499         cleanup of save_decoded_options, clearing the latter, and
10500         save_decoded_options_count.
10501
10502 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10503
10504         PR target/69135
10505         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10506         attribute to unconditional.  Remove %? from output template.
10507
10508 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10509             Jiong Wang  <jiong.wang@arm.com>
10510
10511         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10512         generated from different expand order.
10513
10514 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10515
10516         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10517         Add support for CCMP costing.
10518
10519 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10520
10521         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10522         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10523         (fccmpe<mode>): Likewise.
10524         (fcmp): Rename to fcmp and globalize pattern.
10525         (fcmpe): Likewise.
10526         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10527         (aarch64_gen_ccmp_next): Add FP support.
10528
10529 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10530
10531         * target.def (gen_ccmp_first): Update documentation.
10532         (gen_ccmp_next): Likewise.
10533         * doc/tm.texi (gen_ccmp_first): Update documentation.
10534         (gen_ccmp_next): Likewise.
10535         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10536         expand_ccmp_expr_1.  Improve comments.
10537         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10538         (ccmp_ior<mode>): Remove pattern.
10539         (cmp<mode>): Remove expand.
10540         (cmp): Globalize pattern.
10541         (cstorecc4): Use cc_register.
10542         (mov<mode>cc): Remove ccmp_cc_register check.
10543         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10544         Simplify after removal of CC_DNE/* modes.
10545         (aarch64_ccmp_mode_to_code): Remove.
10546         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10547         In 'k' case use integer as condition.
10548         (aarch64_nzcv_codes): Remove inverted cases.
10549         (aarch64_code_to_ccmode): Remove.
10550         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10551         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10552         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10553         pattern.  Return the comparison with CC register.  Invert conditions
10554         when bitcode is OR.
10555         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10556         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10557
10558 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10559
10560         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10561         instrumented_version.
10562
10563 2016-01-19  Richard Biener  <rguenther@suse.de>
10564
10565         PR tree-optimization/69336
10566         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10567         handled components with get_ref_base_and_extent.
10568         (equal_mem_array_ref_p): Adjust.
10569
10570 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10571
10572         PR debug/65779
10573         * shrink-wrap.c: Include valtrack.h.
10574         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10575         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10576         in between insn and where it will be moved to.  Call
10577         dead_debug_insert_temp.
10578         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10579         first and dead_debug_local_finish at the end.
10580         For uses and defs bitmap, handle all regs in between REGNO and
10581         END_REGNO, not just the first one.
10582
10583 2016-01-19  Richard Biener  <rguenther@suse.de>
10584
10585         PR tree-optimization/69352
10586         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10587         (equal_mem_array_ref_p): Constrain size and max size properly.
10588         Compare the reverse flag.
10589
10590 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10591
10592         * ira.c (ira): Update regstat data if we deleted insns.
10593
10594 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10595
10596         PR rtl-optimization/68955
10597         PR rtl-optimization/64557
10598         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10599         here.  Fix up formatting.
10600         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10601
10602 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10603
10604         PR lto/69133
10605         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10606         assume that the node has body.
10607         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10608         check.
10609
10610 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10611
10612         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10613         thunks.
10614
10615 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10616
10617         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10618         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10619
10620 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10621             Martin Liska  <mliska@suse.cz>
10622             Michael Matz  <matz@suse.de>
10623
10624         * Makefile.in (OBJS): Add new source files.
10625         (GTFILES): Add hsa.c.
10626         * common.opt (disable_hsa): New variable.
10627         (-Whsa): New warning.
10628         * config.in (ENABLE_HSA): New.
10629         * configure.ac: Treat hsa differently from other accelerators.
10630         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10631         $enable_offloading.
10632         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10633         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10634         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10635         --with-hsa-kmt-lib.
10636         * doc/invoke.texi (-Whsa): Document.
10637         (hsa-gen-debug-stores): Likewise.
10638         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10639         to invoke offload compiler for hsa acclerator.
10640         * opts.c (common_handle_option): Determine whether HSA offloading
10641         should be performed.
10642         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10643         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10644         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10645         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10646         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10647         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10648         GF_OMP_FOR_KIND_GRID_LOOP.
10649         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10650         (pp_gimple_stmt_1): Likewise.
10651         * gimple-walk.c (walk_gimple_stmt): Likewise.
10652         * gimple.c (gimple_build_omp_grid_body): New function.
10653         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10654         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10655         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10656         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10657         GF_OMP_TEAMS_GRID_PHONY.
10658         (gimple_statement_omp_single_layout): Updated comments.
10659         (gimple_build_omp_grid_body): New function.
10660         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10661         (gimple_omp_for_grid_phony): New function.
10662         (gimple_omp_for_set_grid_phony): Likewise.
10663         (gimple_omp_parallel_grid_phony): Likewise.
10664         (gimple_omp_parallel_set_grid_phony): Likewise.
10665         (gimple_omp_teams_grid_phony): Likewise.
10666         (gimple_omp_teams_set_grid_phony): Likewise.
10667         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10668         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10669         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10670         (BUILT_IN_GOMP_TARGET): Updated type.
10671         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10672         (adjust_for_condition): New function.
10673         (get_omp_for_step_from_incr): Likewise.
10674         (extract_omp_for_data): Moved parts to adjust_for_condition and
10675         get_omp_for_step_from_incr.
10676         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10677         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10678         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10679         (scan_omp_parallel): Do not create child functions for phony
10680         constructs.
10681         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10682         (scan_omp_1_op): Checking assert we are not remapping to
10683         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10684         (parallel_needs_hsa_kernel_p): New function.
10685         (expand_parallel_call): Register apprpriate parallel child
10686         functions as HSA kernels.
10687         (grid_launch_attributes_trees): New type.
10688         (grid_attr_trees): New variable.
10689         (grid_create_kernel_launch_attr_types): New function.
10690         (grid_insert_store_range_dim): Likewise.
10691         (grid_get_kernel_launch_attributes): Likewise.
10692         (get_target_argument_identifier_1): Likewise.
10693         (get_target_argument_identifier): Likewise.
10694         (get_target_argument_value): Likewise.
10695         (push_target_argument_according_to_value): Likewise.
10696         (get_target_arguments): Likewise.
10697         (expand_omp_target): Call get_target_arguments instead of looking
10698         up for teams and thread limit.
10699         (grid_expand_omp_for_loop): New function.
10700         (grid_arg_decl_map): New type.
10701         (grid_remap_kernel_arg_accesses): New function.
10702         (grid_expand_target_kernel_body): New function.
10703         (expand_omp): Call it.
10704         (lower_omp_for): Do not emit phony constructs.
10705         (lower_omp_taskreg): Do not emit phony constructs but create for them
10706         a temporary variable receiver_decl.
10707         (lower_omp_taskreg): Do not emit phony constructs.
10708         (lower_omp_teams): Likewise.
10709         (lower_omp_grid_body): New function.
10710         (lower_omp_1): Call it.
10711         (grid_reg_assignment_to_local_var_p): New function.
10712         (grid_seq_only_contains_local_assignments): Likewise.
10713         (grid_find_single_omp_among_assignments_1): Likewise.
10714         (grid_find_single_omp_among_assignments): Likewise.
10715         (grid_find_ungridifiable_statement): Likewise.
10716         (grid_target_follows_gridifiable_pattern): Likewise.
10717         (grid_remap_prebody_decls): Likewise.
10718         (grid_copy_leading_local_assignments): Likewise.
10719         (grid_process_kernel_body_copy): Likewise.
10720         (grid_attempt_target_gridification): Likewise.
10721         (grid_gridify_all_targets_stmt): Likewise.
10722         (grid_gridify_all_targets): Likewise.
10723         (execute_lower_omp): Call grid_gridify_all_targets.
10724         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10725         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10726         (tree_omp_clause): Added union field dimension.
10727         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10728         * tree.c (omp_clause_num_ops): Added number of arguments of
10729         OMP_CLAUSE__GRIDDIM_.
10730         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10731         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10732         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10733         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10734         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10735         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10736         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10737         * tree-pass.h (make_pass_gen_hsail): Declare.
10738         (make_pass_ipa_hsa): Likewise.
10739         * ipa-hsa.c: New file.
10740         * lto-section-in.c (lto_section_name): Add hsa section name.
10741         * lto-streamer.h (lto_section_type): Add hsa section.
10742         * timevar.def (TV_IPA_HSA): New.
10743         * hsa-brig-format.h: New file.
10744         * hsa-brig.c: New file.
10745         * hsa-dump.c: Likewise.
10746         * hsa-gen.c: Likewise.
10747         * hsa.c: Likewise.
10748         * hsa.h: Likewise.
10749         * toplev.c (compile_file): Call hsa_output_brig.
10750         * hsa-regalloc.c: New file.
10751
10752 2016-01-18  Jeff Law  <law@redhat.com>
10753
10754         PR tree-optimization/69320
10755         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10756         ranged object, do nothing if the RHS constant is not [0..1].
10757         (optimize_stmt): Comparing a boolean ranged object against a
10758         constant outside [0..1] results in a compile-time constant.
10759
10760         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10761         test.
10762
10763 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10764
10765         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10766         (Option Summary): Update to reflect new section and moved options.
10767         (C++ Dialect Options): Move -fstats to new section.
10768         (Debugging Options): Move all dump, statistics, and other GCC
10769         developer options to new section.  Rewrite section introduction
10770         and re-order remaining options to put the more basic ones first.
10771         (Optimization Options): Move -fira-verbose and -flto-report* to
10772         new section.
10773         (Developer Options): New section incorporating moved options.
10774         * doc/cppopts.texi (-dM): Update cross-reference.
10775
10776 2016-01-18  Richard Henderson  <rth@redhat.com>
10777
10778         PR target/69176
10779         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10780         operands to pseudo only if CSE is expected.  Split long immediate
10781         operands only after reload, and for the stack pointer.
10782         (*add<GPI>3_pluslong): Remove.
10783         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10784         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10785         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10786         (*add<GPI>3 peepholes): New.
10787         (*add<GPI>3 splitters): New.
10788         * config/aarch64/constraints.md (Upl): New.
10789         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10790
10791 2016-01-18  Richard Biener  <rguenther@suse.de>
10792
10793         PR tree-optimization/69297
10794         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10795         stmt at most once.
10796         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10797
10798 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10799
10800         PR middle-end/68542
10801         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10802         of mixind vector and scalar types.
10803         (fold_relational_const): Add handling of vector
10804         comparison with boolean result.
10805         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10806         comparison of vector operands with boolean result for EQ/NE only.
10807         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10808         (verify_gimple_cond): Likewise.
10809         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10810         valid type of VAL.
10811
10812 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10813
10814         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10815         !TARGET_OCTEON.
10816
10817 2016-01-18  Richard Biener  <rguenther@suse.de>
10818
10819         PR middle-end/69308
10820         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10821
10822 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10823
10824         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10825
10826 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10827
10828         * omp-low.c (set_oacc_fn_attrib): Make extern.
10829         * omp-low.h (set_oacc_fn_attrib): Declare.
10830         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10831         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10832         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10833         Add and handle function parameter oacc_kernels_p.
10834         (find_reduc_addr, get_omp_data_i_param): New function.
10835         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10836         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10837         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10838         Calculate dominance info.  Skip loops that are not in a kernels region
10839         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10840         (pass_parallelize_loops::execute): Call parallelize_loops with
10841         oacc_kernels_p argument.
10842         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10843         New member function.
10844         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10845         * passes.def: Add argument to pass_parallelize_loops instantation.
10846
10847 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10848
10849         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10850         pass_parallelize_loops to be run outside the loop pipeline.
10851
10852 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10853
10854         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10855         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10856
10857 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10858
10859         PR target/63679
10860         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10861         using get_ref_base_and_extent.
10862         (equal_mem_array_ref_p): New.
10863         (hashable_expr_equal_p): Add call to previous.
10864
10865 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10866
10867         PR target/63679
10868         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10869         (sra_initialize): Allocate disqualified_constants.
10870         (sra_deinitialize): Free disqualified_constants.
10871         (disqualify_candidate): Update disqualified_constants when appropriate.
10872         (create_access): Scan for constant-pool entries as we go along.
10873         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10874         (maybe_add_sra_candidate): Allow constant-pool entries.
10875         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10876         (initialize_constant_pool_replacements): New.
10877         (sra_modify_assign): Avoid mangling assignments created by previous,
10878         and don't generate writes into constant pool.
10879         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10880
10881 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10882
10883         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10884         andnot instruction.
10885         (scalar_chain::convert_op): Likewise.
10886         * config/i386/i386.md (*andndi3_doubleword): New.
10887
10888 2016-01-18  Richard Biener  <rguenther@suse.de>
10889
10890         PR tree-optimization/69170
10891         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10892         building a vector from scalar results of a pattern stmt.
10893
10894 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10895
10896         * haifa-sched.c (autopref_multipass_init): Work around
10897         -Wmaybe-uninitialized warning.
10898
10899 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10900
10901         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10902         against the constant 0.
10903
10904 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10905
10906         PR tree-optimization/68799
10907         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10908         look up phi candidates in the statement-candidate map.
10909         (phi_add_costs): Likewise.
10910         (record_phi_increments): Likewise.
10911         (phi_incr_cost): Likewise.
10912         (ncd_with_phi): Likewise.
10913         (all_phi_incrs_profitable): Likewise.
10914
10915 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10916
10917         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10918         -Wmaybe-uninitialized warning.
10919
10920 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10921
10922         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10923         (Option Summary): Update to reflect new section and moved options.
10924         (C++ Dialect Options): Move -fvtable-verify and related options.
10925         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10926         and profiling-related options.
10927         (Optimization Options): Move profile generation options and
10928         -fstack-protector and related options.
10929         (Instrumentation Options): New section incorporating moved options.
10930         (Code Generation Options): Move -finstrument-functions and
10931         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10932
10933 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10934
10935         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10936
10937 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10938
10939         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10940
10941 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10942
10943         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10944         that checks whether the table is already empty.  Rename the
10945         original implementation to...
10946         (hash_table::empty_slot): ...this new private function.
10947
10948 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10949
10950         PR diagnostic/68899
10951         * diagnostic-show-locus.c (layout::print_source_line): Move x
10952         offset of line until after call to
10953         get_line_width_without_trailing_whitespace.
10954
10955 2016-01-15  Jeff Law  <law@redhat.com>
10956
10957         PR tree-optimization/69270
10958         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10959         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10960         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10961         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10962         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10963         ssa_name_has_boolean_range and constant_boolean_node.
10964
10965 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10966
10967         PR rtl-optimization/69030
10968         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10969         returning bool.
10970         (spill_pseudos): Delete debug insn for dead pseudo.
10971         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10972
10973 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10974
10975         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10976         New.
10977         (TYPES_UNOPUS): Likewise.
10978         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10979         builtin type, from UNOP to UNOPUS.
10980         (lbtruncuv4sf): Likewise.
10981         (lbtruncuv2df): Likewise.
10982         (lrounduv2sf): Likewise.
10983         (lrounduv4sf): Likewise.
10984         (lrounduv2df): Likewise.
10985         (lroundusf): Likewise.
10986         (lroundusf): Likewise.
10987         (lceiluv2sf): Likewise.
10988         (lceiluv4sf): Likewise.
10989         (lceiluv2df): Likewise.
10990         (lceilusf): Likewise.
10991         (lceiludf): Likewise.
10992         (lflooruv2sf): Likewise.
10993         (lflooruv4sf): Likewise.
10994         (lflooruv2df): Likewise.
10995         (lfloorusf): Likewise.
10996         (lfloorudf): Likewise.
10997         (lfrintnuv2sf): Likewise.
10998         (lfrintnuv4sf): Likewise.
10999         (lfrintnuv2df): Likewise.
11000         (lfrintnusf): Likewise.
11001         (lfrintnudf): Likewise.
11002         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
11003         conversion.
11004         (vcvtq_u32_f32): Likewise.
11005         (vcvtq_u64_f64): Likewise.
11006         (vcvta_u32_f32): Likewise.
11007         (vcvtaq_u32_f32): Likewise.
11008         (vcvtaq_u64_f64): Likewise.
11009         (vcvtm_u32_f32): Likewise.
11010         (vcvtmq_u32_f32): Likewise.
11011         (vcvtmq_u64_f64): Likewise.
11012         (vcvtn_u32_f32): Likwise.
11013         (vcvtnq_u32_f32): Likewise.
11014         (vcvtnq_u64_f64): Likewise.
11015         (vcvtp_u32_f32): Likewise.
11016         (vcvtpq_u32_f32): Likewise.
11017         (vcvtpq_u64_f64): Likewise.
11018         (vcvtmd_u64_f64): Likewise.
11019         (vcvtms_u32_f32): Likewise.
11020         (vcvtad_u64_f64): Likewise.
11021         (vcvtas_u32_f32): Likewise.
11022         (vcvtnd_u64_f64): Likewise.
11023         (vcvtns_u32_f32): Likewise.
11024         (vcvtpd_u64_f64): Likewise.
11025         (vcvtps_u32_f32): Likewise.
11026
11027 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11028
11029         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
11030         CSEL of zero_extended registers.
11031
11032 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11033
11034         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11035         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11036
11037 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11038
11039         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11040         false when argument string is not found in the attributes table
11041         at all.
11042
11043 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
11044
11045         PR target/68609
11046         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11047         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11048         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
11049         precision estimate.
11050
11051 2016-01-15  Richard Biener  <rguenther@suse.de>
11052
11053         PR tree-optimization/66856
11054         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
11055         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
11056         (vect_create_new_slp_node): Increment stmt reference count.
11057         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
11058         an SLP tree before swapping operands.
11059         (vect_build_slp_tree): Likewise.
11060         (destroy_bb_vec_info): Free stmt info after SLP instances.
11061         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
11062         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
11063         (STMT_VINFO_NUM_SLP_USES): New macro.
11064
11065 2016-01-15  Richard Biener  <rguenther@suse.de>
11066
11067         PR debug/69137
11068         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
11069         (add_linkage_name): ... here.
11070         (gen_typedef_die): Use add_linkage_name_raw instead of
11071         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
11072         if necessary.
11073
11074 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
11075
11076         * gimplify.c (oacc_default_clause): Decode reference and pointer
11077         types for both kernels and parallel regions.
11078
11079 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
11080
11081         PR middle-end/69246
11082         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
11083
11084 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11085
11086         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
11087         (convert_scalars_to_vector): Likewise.
11088
11089 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
11090
11091         * doc/extend.texi (Type Traits): Fix grammar.
11092
11093 2016-01-15  Martin Jambor  <mjambor@suse.cz>
11094
11095         * tree-inline.c (remap_decl): Use existing dclarations if
11096         remapping a type and prevent_decl_creation_for_types.
11097         (replace_locals_stmt): Do an initial remapping of non-VLA typed
11098         decls first.  Do real remapping with
11099         prevent_decl_creation_for_types set.
11100         * tree-inline.h (copy_body_data): New field
11101         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
11102         padding.
11103
11104 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11105
11106         * config/s390/s390.opt (mmvcle): More verbose help text.
11107
11108 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11109
11110         * config/s390/s390.opt: Add period to -mzvector option text.
11111
11112 2016-01-15  Richard Biener  <rguenther@suse.de>
11113
11114         PR tree-optimization/68961
11115         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
11116         of invariants in stores again.
11117
11118 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11119
11120         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
11121
11122 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11123
11124         * config/i386/i386.c (ix86_expand_branch): Don't split
11125         DI mode xor instruction to SI mode.
11126
11127 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11128
11129         PR ipa/68148
11130         * ipa-icf.c (sem_function::merge): Virtual functions may become
11131         reachable even if they address is not taken and there are no
11132         idrect calls.
11133
11134 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11135
11136         * lto-streamer-out.c (subtract_estimated_size): New function.
11137         (get_symbol_initial_value): Use it.
11138
11139 2016-01-15  Christian Bruel  <christian.bruel@st.com>
11140
11141         PR target/65837
11142         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
11143         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
11144         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
11145         use add_builtin_function_ext_scope instead of add_builtin_function.
11146         (neon_set_p, neon_crypto_set_p): Remove.
11147         (arm_init_builtins): Always call arm_init_neon_builtins and
11148         arm_init_crypto_builtins.
11149         (arm_expand_builtin): Check that builtins are allowed for the arch.
11150         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
11151         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
11152         arm_init_neon_builtins call.
11153
11154 2016-01-15  Richard Biener  <rguenther@suse.de>
11155
11156         PR tree-optimization/69117
11157         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
11158         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
11159         of the leader conservatively.
11160         (free_scc_vn): Restore original SSA name infos.
11161
11162 2016-01-14  Jeff Law  <law@redhat.com>
11163
11164         PR tree-optimization/69270
11165         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
11166         single bit of precision, verify it's also unsigned.
11167         (record_edge_info): Use constant_boolean_node rather than fold_convert
11168         to convert boolean_true/boolean_false to the right type.
11169
11170 2016-01-14  Richard Henderson  <rth@redhat.com>
11171
11172         PR rtl-opt/69014
11173         * loop-doloop.c (record_reg_sets): New.
11174         (doloop_optimize): Reject the transform if the sequence
11175         clobbers registers live at the end of the loop block.
11176         (doloop_optimize_loops): Enable df_live if needed.
11177
11178 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11179
11180         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
11181         * gcc/config/rs6000/rs6000.c: Likewise.
11182         * gcc/config/rs6000/rs6000.h: Likewise.
11183         * gcc/config/rs6000/rs6000.md: Likewise.
11184         * gcc/doc/extend.texi: Likewsie.
11185
11186 2016-01-14  Jeff Law  <law@redhat.com>
11187
11188         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
11189         typo.
11190
11191 2016-01-14  Richard Henderson  <rth@redhat.com>
11192
11193         PR c/69272
11194         PR tree-opt/68964
11195         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11196         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11197         instead of builtin_decl_declared_p to test for declaration.
11198
11199 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11200
11201         * doc/loop.texi (Loop Analysis and Representation): Document
11202         loop_depth function.
11203
11204 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11205
11206         PR tree-optimization/68773
11207         * omp-low.c (expand_omp_target): Don't set force_output.
11208         * varpool.c (varpool_node::get_create): Same.
11209         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11210         offload_funcs with force_output.
11211
11212 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11213
11214         PR debug/69244
11215         * lra-eliminations.c (move_plus_up): Don't change anything if either
11216         the outer or inner subreg mode is not MODE_INT.
11217         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11218         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11219
11220 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11221
11222         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11223         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11224         reduc_uplus_@var{m}): Remove.
11225         * expr.c (expand_expr_real_2): Remove expansion path for
11226         reduc_[us](min|max|plus) optabs.
11227         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11228         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11229         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11230         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11231         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11232         reduc_[us](min|max|plus) optabs.
11233
11234 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11235
11236         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11237         (reduc_plus_scal_v2sf): New.
11238         (reduc_smax_v2sf): Rename to...
11239         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11240         (reduc_smin_v2sf): Rename to...
11241         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11242
11243 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11244
11245         * alias.c (compare_base_symbol_refs): New function.
11246         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11247         it.
11248
11249 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11250
11251         PR middle-end/68146
11252         PR tree-optimization/69155
11253         * tree-complex.c: Include cfganal.h.
11254         (phis_to_revisit): New variable.
11255         (extract_component): Add phiarg_p argument.  Assert that returned
11256         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11257         (update_phi_components): Partly rewrite to use loop over real/imag
11258         components instead of code duplication.  If extract_component returns
11259         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11260         create_tmp_reg into the PHI node instead, and mention the phi triplet
11261         in phis_to_revisit.
11262         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11263         in phis_to_revisit at the end.
11264
11265 2016-01-14  Richard Biener  <rguenther@suse.de>
11266
11267         PR tree-optimization/68060
11268         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11269         outer loop reduction is only used in the inner loop before
11270         detecting a double reduction.
11271
11272 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11273
11274         PR target/68269
11275         * combine.c (expand_field_assignment): Punt if compute_mode is
11276         unsupported scalar mode.
11277
11278 2016-01-14  Richard Biener  <rguenther@suse.de>
11279
11280         PR tree-optimization/66856
11281         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11282         SLP node only if it built successfully.
11283         (vect_analyze_slp_instance): Adjust.
11284
11285 2016-01-14  Jeff Law  <law@redhat.com>
11286
11287         PR tree-optimization/69270
11288         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11289         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11290         to the type of op0.
11291
11292 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11293
11294         PR ipa/66487
11295         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11296         use block_ultimate_origin
11297         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11298
11299 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11300
11301         * doc/invoke.texi (Submodel Options): Rename section to
11302         "Machine-Dependent Options" to better reflect its content.
11303         Rewrite introductory text to remove archaic CPU names.
11304         Update references.
11305
11306 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11307
11308         * doc/invoke.texi (Code Gen Options): Move section up in file,
11309         before target-specific options.  Update menu and option summary
11310         to reflect the new section ordering.
11311
11312 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11313
11314         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11315         (C++ Dialect Options): Add cross-reference to -std option.
11316         * doc/standards.texi (C++ Language): Document C++14 support.
11317
11318 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11319
11320         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11321         for pack/unpack functions for __ibm128.
11322         (PACK_IF): Likewise.
11323         (UNPACK_IF): Likewise.
11324
11325         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11326         support for __ibm128 pack/unpack functions.
11327         (rs6000_invalid_builtin): Likewise.
11328         (rs6000_init_builtins): Likewise.
11329         (rs6000_opt_masks): Likewise.
11330
11331         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11332         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11333         functions
11334         (RS6000_BTM_COMMON): Likewise.
11335
11336         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11337         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11338         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11339         128-bit floating point.  Add support for the double values to be
11340         in Altivec registers for TF/IF packing and unpacking, but restrict
11341         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11342         register support for packing.  Allow pack inputs to be memory
11343         locations.  Don't build generator functions for unpack<mode>_dm
11344         and unpack<mode>_nodm.
11345         (unpack<mode>_dm): Likewise.
11346         (unpack<mode>_nodm): Likewise.
11347         (pack<mode>): Likewise.
11348
11349         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11350         built-in functions to pack/unpack explicit __ibm128 values.
11351         (__builtin_unpack_ibm128): Likewise.
11352
11353         * doc/extend.texi (PowerPC Built-in Functions): Document
11354         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11355
11356 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11357
11358         PR c/66208
11359         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11360         Add new arg loc and pass it down as context.
11361         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11362         to the location to use for the warning.
11363         (check_function_arguments): New arg loc.  All callers changed.  Pass
11364         it to check_function_nonnull.
11365         * c-common.h (check_function_arguments): Adjust declaration.
11366
11367 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11368
11369         PR tree-optimization/69156
11370         * gimple.c (validate_type): Removed.
11371         (gimple_builtin_call_types_compatible_p): Use
11372         useless_type_conversion_p instead of validate_type.
11373         * value-prof.c (gimple_stringop_fixed_value): Fold
11374         icall_size to correct type.
11375
11376 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11377
11378         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11379         effects.
11380
11381 2016-01-13  Richard Henderson  <rth@redhat.com>
11382
11383         PR tree-opt/68964
11384         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11385         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11386         (ix86_builtin_tm_store): Remove.
11387         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11388         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11389         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11390         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11391         * doc/tm.texi: Rebuild.
11392
11393         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11394         (BUILT_IN_TM_MEMCPY_RTWN): New.
11395         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11396         fallback from vector to integer helpers.
11397         (build_tm_load): Handle vector types directly, instead of
11398         via target hook.
11399         (build_tm_store): Likewise.
11400         (expand_assign_tm): Prepare for register types not handled by
11401         the above.  Copy them to memory and use memcpy.
11402         * tree.c (tm_define_builtin): New.
11403         (find_tm_vector_type): New.
11404         (build_tm_vector_builtins): New.
11405         (build_common_builtin_nodes): Call it.
11406
11407 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11408
11409         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11410         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11411
11412 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11413
11414         PR tree-optimization/69169
11415         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11416         handled_struct_type param.
11417         (create_variable_info_for, intra_create_variable_infos): Call
11418         create_variable_info_for_1 with extra arg.
11419
11420 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11421
11422         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11423         and "armv8.1-a+crc" entries.
11424
11425 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11426
11427         PR target/69228
11428         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11429         Change first operand predicate from register_or_constm1_operand
11430         to register_operand.
11431         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11432         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11433         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11434         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11435         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11436         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11437         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11438         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11439         comparison with constm1_rtx from vec_prefetch_gen part.
11440
11441 2016-01-13  Richard Biener  <rguenther@suse.de>
11442
11443         PR tree-optimization/69013
11444         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11445         Exchange assert for a test.
11446
11447 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11448
11449         PR target/69247
11450         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11451
11452 2016-01-13  Richard Biener  <rguenther@suse.de>
11453
11454         PR tree-optimization/69242
11455         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11456         assert with a check.
11457
11458 2016-01-13  Richard Biener  <rguenther@suse.de>
11459
11460         PR tree-optimization/69186
11461         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11462         Properly guard vect_update_misalignment_for_peel call.
11463
11464 2016-01-12  Jeff Law  <law@redhat.com>
11465
11466         PR tree-optimization/pr67755
11467         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11468         "need_profile_correction".
11469         (thread_block_1): Initialize new field to false by default.  If we
11470         have multiple thread paths through a common joiner to different
11471         final targets, then set new field to true.
11472         (compute_path_counts): Only do count adjustment when it's really
11473         needed.
11474
11475 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11476
11477         * doc/invoke.texi (Spec Files): Move section down in file, past
11478         all command-line option descriptions.
11479
11480 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11481
11482         PR middle-end/54809
11483         * doc/gty.texi: Remove documentation of mark_hook.
11484         * gengtype.c (struct write_types_data): Remove code to support
11485         mark_hook attribute.
11486         (walk_type): Likewise.
11487         (write_func_for_structure): Likewise.
11488
11489 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11490
11491         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11492         Directory Options, and -specs= to Overall Options.
11493         (Overall Options): Adjust similarly.  Reorder to group related
11494         options together.  Make -specs= cross-reference the spec file details.
11495         (Directory Options): Adjust similarly.
11496
11497 2016-01-12  Jeff Law  <law@redhat.com>
11498
11499         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11500
11501 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11502
11503         * gcc.c (spec_undefvar_allowed): New global.
11504         (process_command): Set to true when running for --version or --help,
11505         alone or together.
11506         (getenv_spec_function): When the variable is not defined, use the
11507         variable name as the variable value if we're allowed not to issue
11508         a fatal error.
11509
11510 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11511
11512         PR tree-optimization/68911
11513         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11514         information computed for expression "init + nit * step".
11515
11516 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11517
11518         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11519         about name of GCC executable.  Remove deleted node from menu.
11520         (Directory Options) <-B>: Remove cross-reference to deleted node.
11521         (Target Options): Delete section.
11522
11523 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11524
11525         PR target/69180
11526         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11527         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11528
11529 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11530
11531         PR target/69198
11532         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11533         aligned_mem is properly set for AVX512-VL floating point masked
11534         stores.
11535
11536         PR target/69175
11537         * ifcvt.c (cond_exec_process_if_block): When removing the last
11538         insn from then_bb, remove also any possible barriers that follow it.
11539
11540 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11541
11542         PR target/68456
11543         PR target/69226
11544         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11545         (PTRDIFF_TYPE): Likewise.
11546         (WCHAR_TYPE): Likewise.
11547         (WCHAR_TYPE_SIZE): Likewise.
11548         (STDINT_LONG32): Likewise.
11549
11550 2016-01-12  Richard Biener  <rguenther@suse.de>
11551
11552         PR tree-optimization/69053
11553         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11554         convert initial value for cond reductions.
11555
11556 2016-01-12  Richard Biener  <rguenther@suse.de>
11557
11558         PR tree-optimization/69007
11559         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11560         widen_sum after dot_prod and sad.
11561
11562 2016-01-12  Richard Biener  <rguenther@suse.de>
11563
11564         PR tree-optimization/69168
11565         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11566         pattern stmt SLP type.
11567         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11568         end up unused so cope with that case.
11569
11570 2016-01-12  Richard Biener  <rguenther@suse.de>
11571
11572         PR tree-optimization/69157
11573         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11574         stmts def type only during analyze phase.
11575         (vectorizable_call): Likewise.
11576         (vectorizable_simd_clone_call): Likewise.
11577         (vectorizable_conversion): Likewise.
11578         (vectorizable_assignment): Likewise.
11579         (vectorizable_shift): Likewise.
11580         (vectorizable_operation): Likewise.
11581         (vectorizable_store): Likewise.
11582         (vectorizable_load): Likewise.
11583
11584 2016-01-12  Richard Biener  <rguenther@suse.de>
11585
11586         PR tree-optimization/69174
11587         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11588         space.
11589         (vectorizable_load): Properly compute the number of loads needed
11590         for permuted strided SLP loads and do not spuriously assign
11591         to SLP_TREE_VEC_STMTS.
11592
11593 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11594
11595         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11596         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11597         (MD_EXEC_PREFIX): Remove.
11598         (MD_STARTFILE_PREFIX) Removee.
11599         (FILE_NAME_ABSOLUTE_P): Remove.
11600         (CPP_SPEC): Do not read macros from sys/version.h.
11601         (LINK_COMMAND_SPEC): Remove.
11602         (LOCAL_INCLUDE_DIR): Remove.
11603         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11604         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11605         (POST_LINK_SPEC): Define to invoke stubify after linker
11606         (LIBSTDCXX): Remove define
11607         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11608         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11609         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11610         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11611         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11612         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11613         (i386_djgpp_asm_named_section): Add propotype of new procedure
11614
11615         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11616         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11617         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11618         in config/i386/djgpp.h).
11619         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11620         STANDARD_STARTFILE_PREFIX_1.
11621         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11622         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11623         installation errors.
11624         (MAX_OFILE_ALIGNMENT): Define to 128.
11625         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11626
11627         * config/i386/djgpp.c: New file. Add implementation of
11628         i386_djgpp_asm_named_section.
11629
11630         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11631
11632         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11633         Add rule for building djgpp.o.
11634
11635 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11636
11637         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11638         (rtx_is_swappable_p): Reductions are swappable.
11639         (insn_is_swappable_p): V2DF reductions are swappable.
11640
11641 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11642
11643         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11644         reloads for other unsupported memory operands.
11645
11646 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11647             Jim Wilson  <jim.wilson@linaro.org>
11648
11649         PR target/69194
11650         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11651         copy_to_mode_reg instead of force_reg.
11652
11653 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11654
11655         PR target/69225
11656         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11657         TARGET_80387 is true.
11658
11659 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11660
11661         PR target/69071
11662         * lra-eliminations.c (move_plus_up): Only move plus up
11663         if subreg of the constant can be simplified into constant
11664         and use the simplified subreg of the constant instead of
11665         the original constant.
11666
11667         * fold-const.c (fold_convertible_p): Don't return true
11668         for conversion of VECTOR_TYPE to same sized integral type.
11669         (fold_convert_loc): Fix up formatting.  Fold conversion of
11670         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11671         instead of NOP_EXPR.
11672
11673         PR tree-optimization/69214
11674         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11675         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11676         Formatting fix.
11677
11678         PR tree-optimization/69207
11679         * tree-vect-slp.c (vect_get_constant_vectors): For
11680         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11681         fold_convertible_p to vector_type's element type, and always
11682         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11683
11684 2016-01-11  Richard Biener  <rguenther@suse.de>
11685
11686         PR tree-optimization/69173
11687         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11688         fixup the cycle if all stmts are in a pattern.
11689
11690 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11691
11692         PR middle-end/68999
11693         * alias.c (base_alias_check): Move check for addresses with
11694         alignment ANDs before the call for compare_base_decls.
11695         (memrefs_conflict_p): Return -1 for different decls
11696         that went through alignment adjustments.
11697
11698 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11699
11700         PR rtl-optimization/68796
11701         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11702         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11703         and QImode comparisons against zero with CC_NZmode.
11704         * config/aarch64/iterators.md (short_mask): New mode_attr.
11705
11706 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11707
11708         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11709         (<avx512>_store<mode>_mask): Likewise.
11710
11711 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11712             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11713
11714         PR rtl-optimization/68841
11715         * ifcvt.c (struct noce_if_info): Add orig_x field.
11716         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11717         Don't record conflicts on to_rename if it's present.
11718         Allow memory destinations in sets.
11719         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11720         blocks, passing orig_x to the checks.
11721         (noce_process_if_block): Set if_info->orig_x appropriately.
11722
11723 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11724
11725         PR tree-optimization/69069
11726         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11727
11728 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11729
11730         PR rtl-optimization/68920
11731         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11732         of conditional moves for  RTL if-conversion to 1 for
11733         TARGET_ONE_IF_CONV_INSN.
11734         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11735         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11736         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11737         parameter to restirct number of conditional moves for
11738         RTL if-conversion.
11739         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11740         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11741         conditionl moves.
11742
11743 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11744
11745         PR bootstrap/69123
11746         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11747         onepart vars.  Fix typo in comment.  Fix reversed condition in
11748         unshare test.
11749         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11750
11751         PR bootstrap/69123
11752         * var-tracking.c (dump_onepart_variable_differences): New.
11753         (dataflow_set_different): If a detailed dump is requested,
11754         delay early returns and dump differences between onepart
11755         variables present before and after, and added variables.
11756
11757 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11758
11759         PR target/69010
11760         * expr.c (expand_expr_real_1): For boolean vector constants
11761         with a scalar mode use const_scalar_mask_from_tree.
11762         (const_scalar_mask_from_tree): New.
11763         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11764         assigned to a mask type to handle constants.
11765
11766 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11767
11768         PR ipa/69044
11769         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11770         useless parameters if we cannot change function signature.
11771
11772 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11773
11774         PR ipa/66616
11775         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11776         flag.
11777
11778 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11779
11780         PR tree-optimization/69109
11781         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11782         latch with phi.
11783
11784 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11785
11786         PR tree-optimization/69108
11787         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11788         res is not used in a phi.
11789
11790 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11791
11792         PR 67425
11793         * common.opt (frandom-seed): Fix parameter name.
11794         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11795
11796 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11797
11798         PR tree-optimization/69058
11799         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11800         not supported.
11801
11802 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11803
11804         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11805         (mcode-density): Likewise.
11806
11807 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11808
11809         PR tree-optimization/69062
11810         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11811         (parallelize_loops): Don't paralelize loop that has phi with address
11812         arg.
11813
11814 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11815
11816         PR tree-optimization/69039
11817         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11818         phi for reduction.
11819
11820 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11821
11822         PR middle-end/68743
11823         * match.pd: Require target has function_c99_misc before doing
11824         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11825
11826 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11827
11828         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11829         use GMPINC.
11830         * configure: Regenerate.
11831
11832 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11833
11834         PR middle-end/50865
11835         PR tree-optimization/69097
11836         * fold-const.h (expr_not_equal_to): New prototype.
11837         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11838         (expr_not_equal_to): New function.
11839         * match.pd (X % -Y is the same as X % Y): Don't optimize
11840         unless X is known not to be equal to minimum or Y is known
11841         not to be equal to -1.
11842         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11843         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11844         (simplify_stmt_using_ranges): Adjust caller.
11845         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11846         substitute_and_fold.
11847
11848 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11849
11850         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11851         w/o DECL_NAME.
11852
11853 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11854
11855         PR tree-optimization/69167
11856         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11857         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11858         ops[0] comparison.
11859         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11860
11861 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11862             Richard Biener  <rguenther@suse.de>
11863
11864         PR tree-optimization/68707
11865         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11866         instances that can be handled via vect_load_lanes.
11867
11868 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11869
11870         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11871         if we can't determine address equivalence.
11872         * alias.c (compare_base_decl): Update for changed return value of
11873         symtab_node::equal_address_to.
11874
11875 2016-01-08  Jason Merrill  <jason@redhat.com>
11876
11877         PR c++/68983
11878         PR c++/67557
11879         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11880         * expr.c (store_field): Not here.
11881         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11882         call with TREE_ADDRESSABLE type.
11883         * tree-cfg.c (verify_gimple_call): Adjust.
11884
11885 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11886
11887         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11888         libc_internal.
11889
11890 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11891
11892         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11893         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11894         (reduc_smin_v2sf): Rename to...
11895         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11896         (reduc_splus_v2sf): Rename to...
11897         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11898
11899 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11900
11901         PR tree-optimization/69162
11902         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11903         valist argument in another argument.
11904         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11905         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11906         to determine the va_list type, build a MEM_REF instead of
11907         build_fold_indirect_ref.
11908
11909         PR tree-optimization/69172
11910         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11911         gimple_build.
11912
11913 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11914
11915         PR tree-optimization/67781
11916         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11917         and cmpnop in two steps: first the ones not accessed in original
11918         gimple expression in a endian independent way and then the ones not
11919         accessed in the final result in an endian-specific way.
11920
11921 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11922
11923         PR tree-optimization/69083
11924         * tree-vect-slp.c (vect_get_constant_vectors): For
11925         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11926         element type.  If op is fold_convertible_p to vector_type's element
11927         type, use NOP_EXPR instead of VCE.
11928
11929 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11930
11931         PR rtl-optimization/67778
11932         PR rtl-optimization/68634
11933         PR rtl-optimization/68909
11934         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11935         block from the stack until done with it.  Remove a superfluous
11936         bitmap set.  Remove a superfluous bitmap test.
11937
11938 2016-01-07  Martin Sebor  <msebor@redhat.com>
11939
11940         PR c/68966
11941         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11942         constraint on the type of arguments.
11943
11944 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11945
11946         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11947         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11948         unaligned_access on the gcc_options set.
11949         * config/arm/arm.c (arm_option_override_internal): Use
11950         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11951
11952 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11953
11954         PR target/69140
11955         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11956         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11957
11958 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11959
11960         Revert
11961         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11962
11963         PR target/69140
11964         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11965         depending on frame_pointer_needed before remaining integer and SSE
11966         registers are saved.
11967
11968 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11969
11970         PR 1078
11971         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11972
11973 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11974
11975         PR target/69171
11976         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11977         Use the "xBm" constraint.
11978         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11979         Likewise.
11980         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11981         (sse_cvtsi2ssq<round_name>): Likewise.
11982         (sse_cvtss2si<round_name>): Likewise.
11983         (sse_cvtss2siq<round_name>): Likewise.
11984         (sse2_cvtsi2sdq<round_name>): Likewise.
11985         (sse2_cvtsd2si<round_name>): Likewise.
11986         (sse2_cvtsd2siq<round_name>): Likewise.
11987         * config/i386/subst.md (round_nimm_scalar_predicate): New
11988         predicate.
11989
11990 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11991
11992         PR middle-end/67639
11993         * varasm.c (make_decl_rtl): Mark invalid register vars as
11994         DECL_EXTERNAL.
11995
11996         PR rtl-optimization/66206
11997         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11998         All callers changed.
11999
12000 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
12001
12002         PR tree-optimization/69141
12003         * tree-ssa-pre.c: Include langhooks.h.
12004         (eliminate_dom_walker::before_dom_children): Use
12005         lang_hooks.decl_printable_name instead of
12006         cgraph_node::get ()->name ().
12007
12008         PR middle-end/68960
12009         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
12010         it and DECL_ALIGN too.
12011
12012 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
12013
12014         * config/mips/mips-ftypes.def: Sort to lexicographical order.
12015
12016 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
12017
12018         PR target/69140
12019         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12020         depending on frame_pointer_needed before remaining integer and SSE
12021         registers are saved.
12022
12023 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12024
12025         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
12026         mode iterator with VSX_M2.
12027         (*p9_vecstore_<mode>): Likewise.
12028         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
12029         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
12030         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12031         (define_split for VSX_LE128 stores): Likewise.
12032         (define_peephole2 for TImode LE swaps): Likewise.
12033         (define_split for VSX_LE128 post-reload stores): Likewise.
12034
12035 2016-01-06  Marek Polacek  <polacek@redhat.com>
12036
12037         PR sanitizer/69099
12038         * convert.c (convert_to_integer_1): Adjust call to
12039         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
12040         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
12041         EXPR instead of ARG.
12042         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12043
12044 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12045
12046         PR 1078
12047         * doc/extend.texi (RL78 Variable Attributes): New section.
12048
12049 2016-01-05  Marek Polacek  <polacek@redhat.com>
12050
12051         PR c/69104
12052         * builtins.c (get_memmodel): Use expansion point location rather than
12053         the input location.  Call warning_at rather than warning.
12054         (expand_builtin_atomic_compare_exchange): Likewise.
12055         (expand_builtin_atomic_load): Likewise.
12056         (expand_builtin_atomic_store): Likewise.
12057         (expand_builtin_atomic_clear): Likewise.
12058
12059 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12060
12061         PR target/68991
12062         * config/i386/i386.c (ix86_expand_vector_logical_operator):
12063         Replace nonimmediate_operand with vector_operand.
12064         * config/i386/predicates.md (vector_operand): New predicate.
12065         (general_vector_operand): Replace nonimmediate_operand with
12066         vector_operand.
12067         * config/i386/sse.md: Replace nonimmediate_operand with
12068         vector_operand and m constraint with Bm constraint on SSE
12069         patterns with 16-byte memory operand.
12070         * config/i386/subst.md (round_nimm_predicate): Replace
12071         nonimmediate_operand with vector_operand.
12072         (round_saeonly_nimm_predicate): Likewise.
12073         (round_saeonly_nimm_scalar_predicate): New.
12074
12075 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12076
12077         PR target/68991
12078         * config/i386/constraints.md (Bm): New constraint.
12079         * config/i386/predicates.md (vector_memory_operand): New
12080         predicate.
12081         * config/i386/sse.md: Replace xm with xBm in plusminus and
12082         any_logic patterns.
12083
12084 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12085
12086         PR 1078
12087         * doc/extend.texi (V850 Function Attributes): New section.
12088         (V850 Variable Attributes): New section.
12089
12090 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12091
12092         PR 1078
12093         * doc/extend.texi (MicroBlaze Function Attributes): Document
12094         interrupt_handler and fast_interrupt attributes.
12095
12096 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
12097
12098         PR other/60465
12099         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
12100         for local symbolic operands.
12101         * config/ia64/predicates.md (local_symbolic_operand64): New
12102         predicate.
12103
12104 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12105
12106         PR rtl-optimization/68651
12107         * combine.c (combine_simplify_rtx): Canonicalize x + x into
12108         x << 1.
12109
12110 2016-01-05  Nathan Sidwell  <nathan@acm.org>
12111
12112         * alias.c (compare_base_decls): Use symtab_node::get.
12113
12114 2016-01-05  Nick Clifton  <nickc@redhat.com>
12115
12116         PR target/68770
12117         * ira-costs.c (copy_cost): Initialise the t_icode field of the
12118         secondary_reload_info structure.
12119
12120         PR target/66655
12121         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
12122         decls if weak support is available.
12123
12124 2016-01-04  Martin Sebor  <msebor@redhat.com>
12125
12126         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
12127
12128 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12129
12130         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12131         OPTION_MASK_P9_DFORM.
12132
12133         * config/rs6000/constraints.md (wo constraint): New constraint for
12134         ISA 3.0 (power9).
12135
12136         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
12137         for wo constraint.
12138         (rs6000_init_hard_regno_mode_ok): Likewise.
12139
12140         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
12141         wo constraint.
12142
12143         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
12144         expanders not to have constraints.  Add support for ISA 3.0 xxperm
12145         instruction.  Add support for fusing xxlor with xxperm.
12146         (altivec_vperm_<mode>_internal): Likewise.
12147         (altivec_vperm_v8hiv16qi): Likewise.
12148         (altivec_vperm_<mode>v16q): Likewise.
12149         (altivec_vperm_<mode>_uns): Likewise.
12150         (vperm_v8hiv4si): Likewise.
12151         (vperm_v16qiv8hi): Likewise.
12152
12153         * doc/md.texi (RS/6000 constraints): Document wo constraint.
12154
12155 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
12156
12157         Update copyright years.
12158
12159         * gcc.c (process_command): Update copyright notice dates.
12160         * gcov-dump.c (print_version): Ditto.
12161         * gcov.c (print_version): Ditto.
12162         * gcov-tool.c (print_version): Ditto.
12163         * gengtype.c (create_file): Ditto.
12164         * doc/cpp.texi: Bump @copying's copyright year.
12165         * doc/cppinternals.texi: Ditto.
12166         * doc/gcc.texi: Ditto.
12167         * doc/gccint.texi: Ditto.
12168         * doc/gcov.texi: Ditto.
12169         * doc/install.texi: Ditto.
12170         * doc/invoke.texi: Ditto.
12171
12172 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12173
12174         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
12175         modes larger than TImode as TImode if NEON is not enabled.
12176
12177 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12178
12179         PR target/69100
12180         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
12181         mode for %f0-%f31 only if TARGET_FPU.
12182
12183 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12184
12185         PR target/69072
12186         * config/sparc/sparc.c (scan_record_type): Take into account subfields
12187         to compute the PACKED_P predicate.
12188         (function_arg_record_value): Minor tweaks.
12189
12190 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12191
12192         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12193         option for arm*-*-* targets.
12194
12195 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12196
12197         * doc/extend.texi (Common Function Attributes): Move docs for
12198         MSP430-specific attributes to....
12199         (MSP430 Function Attributes): ...here.  Delete the redundant
12200         entries and copy-edit the remaining text.
12201         (MSP430 Variable Attributes): Use uniform format for index
12202         entries and add a cross-reference to the corresponding function
12203         attribute docs.
12204
12205 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12206
12207         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12208         -finite-math typo.
12209         (x86 Options): Likewise.
12210
12211 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12212
12213         PR 1078
12214
12215         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12216         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12217         to corresponding attribute.
12218
12219 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12220
12221         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12222         to correct alphabetization of table.  Copy-edit and correct
12223         markup.
12224         <stack_protect>: Likewise.
12225         <target_clones>: Likewise.
12226         <simd>: Likewise.
12227         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12228         Correct punctuation.
12229         (Code Gen Options) <-fno-plt>: Copy-edit.
12230
12231 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12232
12233         PR target/68917
12234         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12235         SI values.  Explicitly convert SI to DI and vice-versa.
12236
12237 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12238
12239         PR tree-optimization/69070
12240         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12241         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12242
12243         PR sanitizer/69055
12244         * ubsan.c (ubsan_instrument_float_cast): Call
12245         initialize_sanitizer_builtins.
12246
12247         PR target/69015
12248         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12249 \f
12250 Copyright (C) 2016 Free Software Foundation, Inc.
12251
12252 Copying and distribution of this file, with or without modification,
12253 are permitted in any medium without royalty provided the copyright
12254 notice and this notice are preserved.