[PR 70646] Store size to inlining predicate conditions
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-05-18  Martin Jambor  <mjambor@suse.cz>
2
3         PR ipa/70646
4         * ipa-inline.h (condition): New field size.
5         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
6         for comaprison and store it into the new condition.
7         (evaluate_conditions_for_known_args): Use condition size to check
8         access sizes for all but CHANGED conditions.
9         (unmodified_parm_1): New parameter size_p, store access size into it.
10         (unmodified_parm): Likewise.
11         (unmodified_parm_or_parm_agg_item): Likewise.
12         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
13         (set_cond_stmt_execution_predicate): Extract access sizes and store
14         them to conditions.
15         (set_switch_stmt_execution_predicate): Likewise.
16         (will_be_nonconstant_expr_predicate): Likewise.
17         (will_be_nonconstant_predicate): Likewise.
18         (inline_read_section): Stream condition size.
19         (inline_write_summary): Likewise.
20
21 2016-05-18  Richard Biener  <rguenther@suse.de>
22
23         * tree-ssa-loop-im.c (determine_max_movement): Properly add
24         condition cost to PHI cost instead of total_cost.
25
26 2016-05-18  Martin Liska  <mliska@suse.cz>
27
28         PR fortran/70856
29         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
30         merged variables.
31
32 2016-05-18  Richard Biener  <rguenther@suse.de>
33
34         * lto-streamer.h (LTO_major_version): Bump to 6.
35
36 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
37
38         * function.c (make_split_prologue_seq, make_prologue_seq,
39         make_epilogue_seq): New functions, factored out from...
40         (thread_prologue_and_epilogue_insns): Here.
41
42 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
43
44         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
45         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
46         of before.  Add a comment.
47
48 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
49
50         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
51         expression pointer, not pointer to the pointer.
52
53 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
54
55         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
56         (avx2_pbroadcast<mode>): Add another alternative with v instead
57         of x constraints in it, using <pbroadcast_evex_isa> isa.
58         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
59
60         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
61         constraint x instead of v in second alternative, add avx512bw
62         alternative.
63
64         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
65         constraint x instead of v in second alternative, add avx512bw
66         alternative.
67
68         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
69         constraint x instead of v in second alternative, add avx512bw
70         alternative.
71
72         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
73         avx512bw alternative.
74
75 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
76
77         * gcc/config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
78         array to 128 chars.
79         (define_insn "*andnottf3"): Ditto.
80         (define_insn "*<code><mode>3"/any_logic): Ditto.
81         (define_insn "*<code>tf3"/any_logic): Ditto.
82         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
83         operand to block AVX-512VL insn variant emit when it is not enabled.
84
85 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
86
87         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
88         constraint fot SF mode.
89
90 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
91             Kirill Yukhin  <kirill.yukhin@intel.com>
92
93         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
94         modifiers.
95         (define_insn "rsqrt14<mode>"): Ditto.
96         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
97         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
98         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
99         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
100         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
101         Ditto.
102         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
103         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
104         * config/i386/i386.c (ix86_print_operand): Expand check for size
105         override codes for Intel syntax.
106
107 2016-05-18  Richard Biener  <rguenther@suse.de>
108
109         PR tree-optimization/71168
110         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
111         initialization earlier.
112
113 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
114
115         * config/aarch64/aarch64-simd.md
116         (aarch64_reduc_plus_internal<mode>): Rename to...
117         (reduc_plus_scal): ...This, and remove previous implementation.
118
119 2016-05-18  Richard Biener  <rguenther@suse.de>
120
121         * passes.def: Put late dse and cd_dce in canonical order.
122
123 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
124
125         * ipa-inline-transform.c (preserve_function_body_p): Look for
126         first non-thunk clone.
127         (save_function_body): Save into first non-thunk.
128         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
129         up call stmt id.
130         (lto_output_node): Inline thunks don't need body in every
131         partition.
132         * lto-streamer-in.c: Do not fixup thunk clones.
133         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
134         thunks.
135         * tree-inline.c (copy_bb): Be prepared for target node to be new after
136         folding suceeds.
137
138 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
139
140         PR middle-end/63586
141         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
142         (reassociate_bb): Call transform_add_to_multiply.
143
144 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
145
146         * config/aarch64/aarch64.c (all_extensions): Removed unused static variable.
147
148 2016-05-17  Nathan Sidwell  <nathan@acm.org>
149
150         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
151         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
152
153 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
154
155         PR tree-optimization/54579
156         PR middle-end/55299
157         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
158
159 2016-05-17  Marek Polacek  <polacek@redhat.com>
160
161         PR ipa/71146
162         * tree-inline.c (expand_call_inline): Call
163         maybe_remove_unused_call_args.
164
165 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
166
167         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
168         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
169         * doc/md.texi (fmin@var{m}3): Likewise.
170
171 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
172
173         * match.pd (X & C): New transformation.
174
175 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
176
177         * match.pd (~X & Y): New transformation.
178
179 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
180
181         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
182         information for new SSA_NAME.
183         (simplify_conversion_using_ranges): Get range through get_range_info
184         instead of get_value_range.
185
186 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
187
188         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
189         Remove inline assembly.
190         (vmvn_s16): Likewise.
191         (vmvn_s32): Likewise.
192         (vmvn_u8): Likewise.
193         (vmvn_u16): Likewise.
194         (vmvn_u32): Likewise.
195         (vmvnq_s8): Likewise.
196         (vmvnq_s16): Likewise.
197         (vmvnq_s32): Likewise.
198         (vmvnq_u8): Likewise.
199         (vmvnq_u16): Likewise.
200         (vmvnq_u32): Likewise.
201         (vmvn_p8): Likewise.
202         (vmvnq_p16): Likewise.
203
204 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
205
206         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
207         Use builtin.
208         (vmul_n_s16): Likewise.
209         (vmul_n_s32): Likewise.
210         (vmul_n_u16): Likewise.
211         (vmul_n_u32): Likewise.
212         (vmulq_n_f32): Likewise.
213         (vmulq_n_f64): Likewise.
214         (vmulq_n_s16): Likewise.
215         (vmulq_n_s32): Likewise.
216         (vmulq_n_u16): Likewise.
217         (vmulq_n_u32): Likewise.
218
219 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
220
221         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to
222         all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
223
224 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
225
226         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
227         to *aarch64_fma4_elt_from_dup<mode>.
228         (*aarch64_fnma4_elt_to_128df): Rename to
229         *aarch64_fnma4_elt_from_dup<mode>.
230         * config/aarch64/arm_neon.h (vfma_n_f64): New.
231         (vfms_n_f32): Likewise.
232         (vfms_n_f64): Likewise.
233         (vfmsq_n_f32): Likewise.
234         (vfmsq_n_f64): Likewise.
235
236 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
237
238         * wide-int.h: Change fixed_wide_int_storage from class to struct.
239         
240 2016-05-17  Richard Biener  <rguenther@suse.de>
241
242         PR tree-optimization/71132
243         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
244         Only add control dependences for blocks in the loop.
245         (build_rdg): Adjust.
246         (generate_code_for_partition): Return whether loop should
247         be destroyed and delay that.
248         (distribute_loop): Likewise.
249         (pass_loop_distribution::execute): Record loops to be destroyed
250         and perform delayed destroying of loops.
251
252 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
253
254         PR target/70809
255         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
256
257 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
258
259         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
260
261 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
262
263         PR target/71114
264         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
265         insertion point for instructions generated by validize_mem.
266
267 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
268
269         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
270         in brackets.
271
272 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
273
274         * config/aarch64/aarch64.c
275         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
276         rather than a macro.
277
278 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
279
280         * doc/invoke.texi (AArch64 Options): Various updates.
281
282 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
283
284         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
285         into instrumentation thunks.
286         * cif-code.def (CIF_CHKP): New.
287
288 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
289
290         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
291
292 2016-05-16  Martin Jambor  <mjambor@suse.cz>
293
294         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
295         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
296
297 2016-05-16  Marek Polacek  <polacek@redhat.com>
298
299         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
300         commentary.
301
302 2016-05-16  Martin Jambor  <mjambor@suse.cz>
303
304         PR hsa/70857
305         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
306         the outlined kernel function.
307
308 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
309
310         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
311         (ISA_HAS_DLSA): Ditto.
312
313 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
314
315         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
316
317 2016-05-16  Nathan Sidwell  <nathan@acm.org>
318
319         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
320         (nvptx_name_replacement): Restore.  Add comment.
321         (write_fn_proto, write_fn_proto_from_insn,
322         nvptx_output_call_insn): Restore
323         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
324
325 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
326
327         * config/aarch64/aarch64.md
328         (add<mode>3_compareC_cconly_imm): Remove use of %w.
329         (add<mode>3_compareC_imm): Likewise.
330         (<optab>si3_uxtw): Split into register and immediate variants.
331         (andsi3_compare0_uxtw): Likewise.
332         (and<mode>3_compare0): Likewise.
333         (and<mode>3nr_compare0): Likewise.
334         (stack_protect_test_<mode>): Don't use %x for memory operands.
335
336 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
337
338         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
339
340 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
341
342          * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
343         Split integer shifts into shift_reg and bfm.
344         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
345         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
346         (ror<mode>3_insn): Likewise.
347         (<optab>si3_insn_uxtw): Likewise.
348         (<optab><mode>3_insn): Change to rotate_imm.
349         (extr<mode>5_insn_alt): Likewise.
350         (extrsi5_insn_uxtw): Likewise.
351         (extrsi5_insn_uxtw_alt): Likewise.
352
353 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
354
355         * doc/tm.texi: Regenerate.
356         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
357         (TARGET_INVALID_RETURN_TYPE): Remove.
358         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
359         TARGET_INVALID_RETURN_TYPE.
360         * target.def (invalid_parameter_type): Remove.
361         (invalid_return_type): Remove.
362
363 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
364
365         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
366         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
367         calls from thunk.
368         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
369         gimple body.
370         (preserve_function_body_p): No need to preserve function body
371         * cif-codes.def (CIF_THUNK): Remove.
372         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
373
374 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
375
376         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
377
378 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
379
380         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
381         for thunks.
382
383 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
384
385         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
386         (inline_small_functions): Do not look for function symbol when
387         resetting caches.
388
389 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
390
391         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
392         of inline thunks
393
394 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
395             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
396             Jiong Wang  <jiong.wang@arm.com>
397
398         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
399         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
400         Define __ARM_FP16_ARGS when appropriate.
401         * config/arm/arm.c (arm_invalid_parameter_type): Remove
402         declaration.
403         (arm_invalid_return_type): Likewise.
404         (TARGET_INVALID_PARAMETER_TYPE): Remove.
405         (TARGET_INVALID_RETURN_TYPE): Remove.
406         (aapcs_vfp_sub_candidate): Allow HFmode.
407         (aapcs_vfp_allocate): Add comment.  Support HFmode.
408         (aapcs_vfp_allocate_return_reg): Likewise.
409         (struct aapcs_cp_arg_layout): Slightly reword comments for
410         is_return_candidate and allocate_return_reg.
411         (output_mov_vfp): Update assert.
412         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
413         condition.
414         (arm_invalid_parameter_type): Remove.
415         (amr_invalid_return_type): Remove.
416         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
417         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
418         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
419
420 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
421
422         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
423         * config/aarch64/arch64-protos.h
424         (aarch64_legitimize_reload_address): Remove.
425         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
426         Remove.
427
428 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
429
430         * configure.ac: Add ACX_NONCANONICAL_HOST.
431         * configure: Regenerate.
432         * Makefile.in: Set host_noncanonical.
433
434 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
435
436         PR target/71097
437         * config/i386/i386.md (*movtf_internal): Before register allocation,
438         do not allow FP constants for CM_MEDIUM memory model, allow only
439         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
440         (*movxf_internal): Ditto.
441         (*movdf_internal): Ditto.
442         (*movsf_internal): Ditto.
443
444 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
445
446         PR rtl-optimization/67483
447         * combine.c (make_compound_operation): Don't call extract_left_shift
448         with negative shift amounts.
449
450 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
451
452         PR bootstrap/71071
453         * fold-const.c (fold_checksum_tree): Allow modification
454         of TYPE_ALIAS_SET during folding.
455
456         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
457         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
458         (ix86_split_to_parts): Likewise.  Fix up formatting.
459
460 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
461
462         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
463         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
464         printf format.
465
466 2016-05-13  Nathan Sidwell  <nathan@acm.org>
467
468         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
469         (nvptx_name_replacement): Delete.
470         (write_fn_proto, write_fn_proto_from_insn,
471         nvptx_output_call_insn): Remove nvptx_name_replacement call.
472         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
473         * langhooks.c (add_builtin_funcction_common): Call
474         targetm.mangle_decl_assembler_name.
475
476         * config/nvptx/nvptx.c (write_fn_proto): Handle
477         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
478
479 2016-05-13  Martin Liska  <mliska@suse.cz>
480
481         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
482         and PRIu64 in printf format.
483
484 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
485
486         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
487         comment.
488
489 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
490
491         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
492         Change --param max-completely-peeled-times to
493         --param max-completely-peel-times in dump file printing.
494
495 2016-05-13  Richard Biener  <rguenther@suse.de>
496
497         PR tree-optimization/42587
498         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
499         (find_bswap_or_nop_1): Likewise.
500         (bswap_replace): Likewise.
501
502 2016-05-13  Martin Liska  <mliska@suse.cz>
503
504         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
505         Initialize a variable with default value.
506
507 2016-05-13  Martin Liska  <mliska@suse.cz>
508
509         * doc/invoke.texi: Enhance explanation of error recovery
510         of sanitizers.
511
512 2016-05-13  Martin Liska  <mliska@suse.cz>
513
514         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
515         (struct cost_pair): Change inv_expr_id (int) to inv_expr
516         (iv_inv_expr_ent *).
517         (struct iv_inv_expr_ent): Comment struct fields.
518         (sort_iv_inv_expr_ent): New function.
519         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
520         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
521         a hash_map between iv_inv_expr_ent and number of usages.
522         (niter_for_exit): Fix coding style.
523         (tree_ssa_iv_optimize_init): Use renamed variable.
524         (determine_base_object): Fix coding style.
525         (alloc_iv): Likewise.
526         (find_interesting_uses_outside): Likewise.
527         (add_candidate_1): Likewise.
528         (add_standard_iv_candidates): Likewise.
529         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
530         (prepare_decl_rtl): Fix coding style.
531         (get_address_cost): Likewise.
532         (get_shiftadd_cost): Likewise.
533         (force_expr_to_var_cost): Likewise.
534         (compare_aff_trees): Likewise.
535         (get_expr_id): Restructure the function.
536         (get_loop_invariant_expr_id): Renamed to
537         get_loop_invariant_expr.
538         (get_computation_cost_at): Replace usage of inv_expr_id with
539         inv_expr.
540         (get_computation_cost): Likewise.
541         (determine_group_iv_cost_generic): Likewise.
542         (determine_group_iv_cost_address): Likewise.
543         (iv_period): Fix coding style.
544         (iv_elimination_compare_lt): Likewise.
545         (may_eliminate_iv): Likewise.
546         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
547         inv_expr.
548         (determine_group_iv_costs): Dump invariant expressions.
549         (iv_ca_recount_cost): Use the newly added hash_map.
550         (iv_ca_set_remove_invariants): Fix coding style.
551         (iv_ca_set_add_invariants): Fix coding style.
552         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
553         invariants.
554         (iv_ca_set_cp): Likewise.
555         (iv_ca_new): Initialize the newly added hash_map and remove
556         initialization of fields.
557         (iv_ca_free): Delete the hash_map.
558         (iv_ca_dump): Dump invariant expressions.
559         (iv_ca_extend): Fix coding style.
560         (try_add_cand_for): Likewise.
561         (create_new_ivs): Dump information about # of avg iterations and
562         # of used invariant expressions.
563         (rewrite_use_compare): Fix coding style.
564         (free_loop_data): Set default value for max_inv_expr_id.
565
566 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
567
568         * cse.c (rest_of_handle_cse): Use cleanup_cfg
569         returned value cse_cfg_altered computation.
570         (rest_of_handle_cse2): Likewise.
571         (rest_of_handle_cse_after_global_opts): Likewise.
572
573 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
574
575         PR target/53440
576         * config/arm/arm.c (arm32_output_mi_thunk): New.
577         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
578         to split Thumb1 vs TARGET_32BIT functionality.
579         (arm_thumb1_mi_thunk): New.
580
581 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
582
583         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
584         to true.
585
586 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
587
588         PR target/71080
589         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
590
591 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
592
593         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
594         (expand_builtin_trap): Emit a regular call.
595         (set_builtin_user_assembler_name): Remove obsolete cases.
596         * dse.c (scan_insn): Adjust.
597         * except.c: Include calls.h.
598         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
599         emit a regular call to setjmp.
600         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
601         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
602         (emit_block_move_via_libcall): Delete.
603         (block_move_fn): Delete.
604         (init_block_move_fn): Likewise.
605         (emit_block_move_libcall_fn): Likewise.
606         (emit_block_op_via_libcall): New function.
607         (set_storage_via_libcall): Tidy up and use memset builtin.
608         (block_clear_fn): Delete.
609         (init_block_clear_fn): Likewise.
610         (clear_storage_libcall_fn): Likewise.
611         (expand_assignment): Call emit_block_move_via_libcall.
612         Do not include gt-expr.h.
613         * expr.h (emit_block_op_via_libcall): Declare.
614         (emit_block_copy_via_libcall): New inline function.
615         (emit_block_move_via_libcall): Likewise.
616         (emit_block_comp_via_libcall): Likewise.
617         (block_clear_fn): Delete.
618         (init_block_move_fn): Likewise.
619         (init_block_clear_fn): Likewise.
620         (emit_block_move_via_libcall): Likewise.
621         (set_storage_via_libcall): Add default parameter value.
622         * libfuncs.h (enum libfunc_index): Remove obsolete values.
623         (abort_libfunc): Delete.
624         (memcpy_libfunc): Likewise.
625         (memmove_libfunc): Likewise.
626         (memcmp_libfunc): Likewise.
627         (memset_libfunc): Likewise.
628         (setbits_libfunc): Likewise.
629         (setjmp_libfunc): Likewise.
630         (longjmp_libfunc): Likewise.
631         (profile_function_entry_libfunc): Likewise.
632         (profile_function_exit_libfunc): Likewise.
633         (gcov_flush_libfunc): Likewise.
634         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
635         and DECL_VISIBILITY on the declaration.
636         (init_optabs): Do not initialize obsolete libfuncs.
637         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
638         * tree-core.h (ECF_RET1): Define.
639         (ECF_TM_PURE): Adjust.
640         (ECF_TM_BUILTIN): Likewise.
641         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
642         (build_common_builtin_nodes): Initialize abort builtin.
643         Add ECF_RET1 on memcpy, memmove and memset builtins.
644         Pass final flags for alloca and alloca_with_align builtins.
645         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
646         obsolete builtins.
647         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
648         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
649         set_storage_via_libcall and call emit_block_copy_via_libcall.
650
651 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
652
653         * config/i386/i386.md (*call_got_x32): Change operand 0 to
654         DImode before it is passed to ix86_output_call_operand.
655         (*call_value_got_x32): Ditto for operand 1.
656
657 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
658
659         PR rtl-optimization/70904
660         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
661         reload for wide mode.
662
663 2016-05-12  Marek Polacek  <polacek@redhat.com>
664
665         PR c/70756
666         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
667         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
668         * langhooks.h (incomplete_type_error): Likewise.
669         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
670         parameter, pass it down to incomplete_type_error.
671         * tree.h (size_in_bytes): New inline overload.
672         (size_in_bytes_loc): Renamed from size_in_bytes.
673
674 2016-05-12  Richard Biener  <rguenther@suse.de>
675
676         PR tree-optimization/71059
677         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
678         nary before looking up or entering the expression into the VN
679         hashes.
680         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
681         Make sure to re-use NARYs without result as inserted by
682         phi-translation.
683
684 2016-05-12  Richard Biener  <rguenther@suse.de>
685
686         PR tree-optimization/71062
687         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
688         field.
689         * tree-ssa-structalias.c (set_uids_in_ptset): Set
690         vars_contains_restrict if the var is a restrict tag.
691         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
692         do not disambiguate pointers against it.
693         (dump_points_to_solution): Re-structure and adjust for new
694         vars_contains_restrict flag.
695         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
696
697 2016-05-12  Martin Liska  <mliska@suse.cz>
698
699         * doc/invoke.texi: Explain connection between
700         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
701
702 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
703
704         PR tree-optimization/71006
705         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
706         consider COND_EXPR as a mask producer.
707
708 2016-05-12  Marek Polacek  <polacek@redhat.com>
709
710         PR driver/71063
711         * opts.c (common_handle_option): Detect missing argument for --help^.
712
713 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
714
715         PR target/70830
716         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
717         when popping the PC and within an interrupt handler routine.
718         Add missing tab to output of "ldmfd".
719         (output_return_instruction): Output LDMFD with SP update rather
720         than POP when returning from interrupt handler.
721
722 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
723
724         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
725         TARGET_64BIT && TARGET_AVX512DQ.
726         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
727         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
728         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
729         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
730         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
731         (*vec_extractv4si_zext): Add avx512dq alternative.
732         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
733         use v instead of x constraint in other alternatives where possible.
734
735         * config/i386/sse.md (sse2_loadld): Use v instead of x
736         constraint in alternatives 0,1,4.
737
738         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
739         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
740         v constraints instead of x and <pinsr_evex_isa> isa attribute.
741
742         PR target/71019
743         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
744         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
745         is not emitted unless TARGET_AVX512BW.
746         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
747         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
748         for the result operand.
749
750         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
751         constraint instead of x in avx alternatives.  Use maybe_evex instead
752         of vex prefix.
753
754         * config/i386/constraints.md (Yv): New constraint.
755         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
756         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
757         * config/i386/i386.md (avx512fvecmode): New mode attr.
758         (*pushtf): Use v constraint instead of x.
759         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
760         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
761         (*absneg<mode>2): Use Yv constraint instead of x constraint.
762         (*absnegtf2_sse): Likewise.
763         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
764         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
765         avx512f alternatives.
766         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
767
768 2016-05-12  Richard Biener  <rguenther@suse.de>
769
770         PR tree-optimization/71060
771         * tree-data-ref.c (initialize_data_dependence_relation): Do not
772         require exact match of DR_BASE_OBJECT but only matching address and
773         type.
774
775 2016-05-12  Richard Biener  <rguenther@suse.de>
776
777         PR tree-optimization/70986
778         * cfganal.c: Include cfgloop.h.
779         (dfs_find_deadend): Prefer to take edges exiting loops.
780
781 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
782
783         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
784         compile and run time.
785
786 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
787
788         PR c/43651
789         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
790
791 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
792
793         * config/i386/i386.c (legitimize_pic_address): Use
794         copy_to_suggested_reg instead of gen_movsi.
795
796 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
797
798         * config/rs6000/predicates.md (quad_memory_operand): Move most of
799         the code into quad_address_p and call it to share code with
800         vsx_quad_dform_memory_operand.
801         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
802         d-form support.
803         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
804         bit instead of being a separate word.  Split -mpower9-dform into
805         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
806         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
807         for the register class supporting 128-bit quad word memory offsets.
808         (mode_supports_vsx_dform_quad): Helper function to return if the
809         register class uses quad word memory offsets.
810         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
811         (rs6000_debug_reg_global): Always print if we are using LRA or not.
812         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
813         instructions are enabled, set up the appropriate addr_masks for
814         128-bit types.
815         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
816         -mpower9-dform-scalar, instead of -mpower9-dform.
817         (rs6000_option_override_internal): Split -mpower9-dform into two
818         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
819         -mpower9-dform switch sets or clears both.  If we are not using
820         the LRA register allocator, do not enable -mpower9-dform-vector by
821         default.  If we are using LRA, enable -mpower9-dform-vector and
822         -mvsx-timode if it is appropriate.  Issue a warning if either
823         -mpower9-dform-vector or -mvsx-timode are explicitly used without
824         enabling LRA.
825         (quad_address_offset_p): New helper function to return if the
826         offset is legal for quad word memory instructions.
827         (quad_address_p): New function to determin if GPR or vector
828         register quad word memory addresses are legal.
829         (mem_operand_gpr): Validate quad word address offsets.
830         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
831         d-form (register + offset) instructions.
832         (offsettable_ok_by_alignment): Likewise.
833         (rs6000_legitimate_offset_address_p): Likewise.
834         (legitimate_lo_sum_address_p): Likewise.
835         (rs6000_legitimize_address): Likewise.
836         (rs6000_legitimize_reload_address): Add more debug statements for
837         -mdebug=addr.
838         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
839         d-form instructions.
840         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
841         d-form instructions.  Distinguish different cases in debug
842         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
843         d-form instructions.
844         (rs6000_preferred_reload_class): Likewise.
845         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
846         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
847         of the ISA 2.06 indexed memory instructions.
848         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
849         use them to save/restore the saved vector registers instead of
850         using Altivec instructions.
851         (rs6000_emit_epilogue): Likewise.
852         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
853         (rs6000_opt_masks): Split -mpower9-dform into
854         -mpower9-dform-scalar and -mpower9-dform-vector.
855         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
856         was not selected.
857         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
858         ISA 3.0 vector indexed memory instructions, and fold the code into
859         the normal mov<mode> patterns.
860         (p9_vecstore_<mode>): Likewise.
861         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
862         instructions.
863         (vsx_movti_64bit): Likewise.
864         (vsx_movti_32bit): Likewise.
865         * config/rs6000/constraints.md (wO constraint): New constraint for
866         ISA 3.0 vector d-form support.
867         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
868         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
869         include -mpower9-dform-vector until we switch over to LRA.
870         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
871         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
872         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
873         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
874         for -mpower9-dform and -mlra.
875         * doc/md.texi (wO constraint): Document wO constraint.
876
877 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
878
879         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
880         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
881         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
882         Move handling of non-insn arguments inline into the sole user:
883         (output_trans_func): ...here.
884         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
885         in emitted function prototype.
886         (output_internal_insn_latency_func): Ditto.  Simplify.
887         (output_internal_maximal_insn_latency_func): Ditto.  Delete
888         always-unused argument.
889         (output_insn_latency_func): Ditto.
890         (output_maximal_insn_latency_func): Ditto.
891
892 2016-05-11  Richard Biener  <rguenther@suse.de>
893
894         PR tree-optimization/71055
895         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
896         sth with precision not equal to access size verify we don't chop
897         off bits.
898
899 2016-05-11  Richard Biener  <rguenther@suse.de>
900
901         PR debug/71057
902         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
903         (dwarf2out_finish): Move retry_incomplete_types call ...
904         (dwarf2out_early_finish): ... here.
905
906 2016-05-11  Richard Biener  <rguenther@suse.de>
907
908         PR middle-end/71002
909         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
910         if the langhook insists on it.
911         * fold-const.c (make_bit_field_ref): Add arg for the original
912         reference and preserve its alias-set.
913         (decode_field_reference): Take exp by reference and adjust it
914         to the original memory reference.
915         (optimize_bit_field_compare): Adjust callers.
916         (fold_truth_andor_1): Likewise.
917         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
918
919 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
920
921         PR middle-end/70807
922         * cfgrtl.h (delete_insn_and_edges): Now return bool.
923         * cfgrtl.c (delete_insn_and_edges): Likewise.
924         * config/i386/i386.c (convert_scalars_to_vector): Remove
925         redundant code.
926         * cse.c (cse_insn): Compute cse_cfg_altered.
927         (delete_trivially_dead_insns): Likewise.
928         (cse_cc_succs): Likewise.
929         (rest_of_handle_cse): Free dominance info if required.
930         (rest_of_handle_cse2): Likewise.
931         (rest_of_handle_cse_after_global_opts): Likewise.
932
933 2016-05-11  Alan Modra  <amodra@gmail.com>
934
935         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
936         abi_v4_pass_in_fpr): New functions.
937         (rs6000_function_arg_boundary): Exclude complex IBM long double
938         from 64-bit alignment when ABI_V4.
939         (rs6000_function_arg, rs6000_function_arg_advance_1,
940         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
941
942 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
943
944         PR rtl-optimization/71028
945         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
946         jump with just a return in the fallthrough block if the branch
947         block contains just a return as well.
948
949 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
950
951         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
952         * match.pd ((X & Y) ^ Y): ... this.
953         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
954         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
955
956 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
957
958         * read-md.c (require_char_ws): New function.
959         (read_string): Simplify using require_char_ws.
960         (handle_constants): Likewise.
961         (handle_enum): Likewise.
962         (handle_file): Likewise.
963         * read-md.h (require_char_ws): New declaration.
964         * read-rtl.c (read_conditions): Simplify using require_char_ws.
965         (read_mapping): Likewise.
966         (read_rtx_code): Likewise.
967         (read_nested_rtx): Likewise.
968
969 2016-05-10  James Norris  <jnorris@codesourcery.com>
970
971         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
972         if offloading is enabled and -fopenacc or -fopenmp is specified.
973         (CRTOFFLOADEND): Likewise.
974         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
975         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
976
977 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
978
979         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
980         gotoff_operand code paths.  Use copy_to_suggested_regs and
981         expand_simple_binop where appropriate.  Cleanup.
982
983 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
984
985         PR target/70799
986         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
987         integer constants.
988         (dimode_scalar_chain::vector_const_cost): New.
989         (dimode_scalar_chain::compute_convert_gain): Handle constants.
990         (dimode_scalar_chain::convert_op): Likewise.
991         (dimode_scalar_chain::convert_insn): Likewise.
992
993 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
994
995         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
996         unary operation, not a binary one.
997
998 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
999
1000         PR middle-end/70877
1001         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
1002         calls with type casted fndecl.
1003
1004 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
1005
1006         PR tree-optimization/70786
1007         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
1008         * gcc/calls.c (initialize_argument_information): Bind bounds
1009         with corresponding args passed by reference.
1010
1011 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
1012
1013         PR target/70927
1014         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
1015         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
1016         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
1017         accordingly.
1018
1019 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1020
1021         PR target/70963
1022         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
1023         code for a zero scale factor.
1024         (vsx_xvcvdpuxds_scale): Likewise.
1025
1026 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
1027
1028         * diagnostic-show-locus.c (layout::layout): Call show_ruler
1029         if show_ruler_p was set on the context.
1030         (layout::show_ruler): New method.
1031         * diagnostic.h (struct diagnostic_context): Add field
1032         "show_ruler_p".
1033
1034 2016-05-10  Richard Biener  <rguenther@suse.de>
1035
1036         PR tree-optimization/71039
1037         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
1038         (chk_uses): New function.
1039         (propagate_with_phi): Verify we can safely replicate the lhs of an
1040         aggregate assignment on all incoming edges.
1041
1042 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
1043
1044         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
1045         Forward declare.
1046         (rx_atomic_sequence): New class.
1047         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
1048         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
1049         non-inline.
1050         (rx_atomic_sequence::rx_atomic_sequence,
1051         rx_atomic_sequence::~rx_atomic_sequence): New functions.
1052         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
1053         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
1054         CTRLREG_INTB): New constants.
1055         (FETCHOP): New code iterator.
1056         (fethcop_name, fetchop_name2): New iterator code attributes.
1057         (QIHI): New mode iterator.
1058         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
1059         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
1060         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
1061
1062 2016-05-10  Martin Liska  <mliska@suse.cz>
1063
1064         * tree-inline.c (remap_dependence_clique): Do not remap
1065         debugging statements.
1066
1067 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1068
1069         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
1070         ("*fixuns_truncdfdi2_z13")
1071         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
1072         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
1073         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
1074
1075 2016-05-10  Richard Biener  <rguenther@suse.de>
1076
1077         PR tree-optimization/70497
1078         PR tree-optimization/28367
1079         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
1080         split out from ...
1081         (visit_reference_op_load): ... here.
1082         (vn_reference_lookup_3): Use it to handle subreg-like accesses
1083         with simplified BIT_FIELD_REFs.
1084         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
1085         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
1086         correctly.
1087
1088 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
1089
1090         * dwarf2out.c (add_abstract_origin_attribute): Adjust
1091         documentation comment.  For BLOCK nodes, add a
1092         DW_AT_abstract_origin attribute that points to the DIE generated
1093         for the origin BLOCK.
1094         (gen_lexical_block_die): Call add_abstract_origin_attribute for
1095         blocks from inlined functions.
1096
1097 2016-05-10  Alan Modra  <amodra@gmail.com>
1098
1099         PR target/70947
1100         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
1101         regrename modifying insns saving lr before __morestack call.
1102         * config/rs6000/rs6000.md (split_stack_return): Similarly for
1103         insns restoring lr after __morestack call.
1104
1105 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
1106
1107         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
1108         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
1109         expanders.
1110         * config/i386/sse.md (vec_interleave_high<mode>,
1111         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
1112         <avx512>_vpermt2var<mode>3_maskz): Likewise.
1113
1114 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
1115
1116         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
1117         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
1118         parallel reassociation for power8 and forward.
1119
1120 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
1121
1122         * config/i386/i386.md (absneg splitters with general regs): Use
1123         general_reg_operand predicate.
1124         (btsq peephole2): Use x86_64_immediate_operand to check if new
1125         value is suitable for immediate operand.  Generate emitted insn
1126         using RTL expressions.
1127         (btcq peephole2): Ditto.
1128         (btrq peephole2): Ditto.  Generate correct immediate operand
1129         for AND masking.
1130
1131 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1132
1133         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
1134         bitpos.
1135
1136 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
1137
1138         * tree-affine.c (wide_int_constant_multiple_p): Add missing
1139         pointer dereference.
1140
1141 2016-05-09  Richard Biener  <rguenther@suse.de>
1142
1143         PR tree-optimization/70985
1144         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
1145         op0 isn't a gimple register.
1146
1147 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
1148
1149         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
1150         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
1151         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
1152         (i6400_fpu_mult): New cpu units.
1153         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
1154         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
1155         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
1156         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
1157         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
1158         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
1159         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
1160         (i6400_msa_long_float4, i6400_msa_long_float5)
1161         (i6400_msa_long_float8, i6400_msa_fdiv_df)
1162         (i6400_msa_fdiv_sf): New reservations.
1163         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
1164         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
1165         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
1166         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
1167         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
1168         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
1169         (msa_short_cmp, msa_short_float2, msa_short_logic3)
1170         (msa_short_store4, msa_long_load, msa_short_store)
1171         (msa_long_logic, msa_long_float2, msa_long_float4)
1172         (msa_long_float5, msa_long_float8, msa_long_mult)
1173         (msa_long_fdiv, msa_long_div): New reservations.
1174
1175 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
1176             Sameera Deshpande  <sameera.deshpande@imgtec.com>
1177             Matthew Fortune  <matthew.fortune@imgtec.com>
1178             Graham Stott  <graham.stott@imgtec.com>
1179             Chao-ying Fu  <chao-ying.fu@imgtec.com>
1180
1181         * config.gcc: Add MSA header file for mips*-*-* target.
1182         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
1183         (Ubv8i, Urv8):  New constraints.
1184         * config/mips/mips-ftypes.def: Add function types for MSA
1185         builtins.
1186         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
1187         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
1188         * config/mips/mips-msa.md: New file.
1189         * config/mips/mips-protos.h
1190         (mips_split_128bit_const_insns): New prototype.
1191         (mips_msa_idiv_insns): Likewise.
1192         (mips_split_128bit_move): Likewise.
1193         (mips_split_128bit_move_p): Likewise.
1194         (mips_split_msa_copy_d): Likewise.
1195         (mips_split_msa_insert_d): Likewise.
1196         (mips_split_msa_fill_d): Likewise.
1197         (mips_expand_msa_branch): Likewise.
1198         (mips_const_vector_same_val_p): Likewise.
1199         (mips_const_vector_same_bytes_p): Likewise.
1200         (mips_const_vector_same_int_p): Likewise.
1201         (mips_const_vector_shuffle_set_p): Likewise.
1202         (mips_const_vector_bitimm_set_p): Likewise.
1203         (mips_const_vector_bitimm_clr_p): Likewise.
1204         (mips_msa_vec_parallel_const_half): Likewise.
1205         (mips_msa_output_division): Likewise.
1206         (mips_ldst_scaled_shift): Likewise.
1207         (mips_expand_vec_cond_expr): Likewise.
1208         * config/mips/mips.c (enum mips_builtin_type): Add
1209         MIPS_BUILTIN_MSA_TEST_BRANCH.
1210         (mips_gen_const_int_vector_shuffle): New prototype.
1211         (mips_const_vector_bitimm_set_p): New function.
1212         (mips_const_vector_bitimm_clr_p): Likewise.
1213         (mips_const_vector_same_val_p): Likewise.
1214         (mips_const_vector_same_bytes_p): Likewise.
1215         (mips_const_vector_same_int_p): Likewise.
1216         (mips_const_vector_shuffle_set_p): Likewise.
1217         (mips_symbol_insns): Forbid loading symbols via immediate for
1218         MSA.
1219         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
1220         stores.
1221         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
1222         MSA.
1223         (mips_lx_address_p): Add support load indexed address for MSA.
1224         (mips_address_insns): Add calculation of instructions needed for
1225         stores and loads for MSA.
1226         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
1227         CONST_VECTOR for MSA and let it fall through.
1228         (mips_ldst_scaled_shift): New function.
1229         (mips_subword_at_byte): Likewise.
1230         (mips_msa_idiv_insns): Likewise.
1231         (mips_legitimize_move): Validate MSA moves.
1232         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
1233         calculation of costs for MSA division.
1234         (mips_split_move_p): Check if MSA moves need splitting.
1235         (mips_split_move): Split MSA moves if necessary.
1236         (mips_split_128bit_move_p): New function.
1237         (mips_split_128bit_move): Likewise.
1238         (mips_split_msa_copy_d): Likewise.
1239         (mips_split_msa_insert_d): Likewise.
1240         (mips_split_msa_fill_d): Likewise.
1241         (mips_output_move): Handle MSA moves.
1242         (mips_expand_msa_branch): New function.
1243         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
1244         Reinstate 'y' modifier.
1245         (mips_file_start): Add MSA .gnu_attribute.
1246         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
1247         FPRs.
1248         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
1249         (mips_class_max_nregs): Add register size for MSA supported mode.
1250         (mips_cannot_change_mode_class): Allow conversion between MSA
1251         vector modes and TImode.
1252         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
1253         instruction.
1254         (mips_secondary_reload_class): Force MSA loads/stores via memory.
1255         (mips_preferred_simd_mode): Add preffered modes for MSA.
1256         (mips_vector_mode_supported_p): Add MSA supported modes.
1257         (mips_autovectorize_vector_sizes): New function.
1258         (mips_msa_output_division): Likewise.
1259         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
1260         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
1261         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
1262         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
1263         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
1264         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
1265         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
1266         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
1267         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
1268         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
1269         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
1270         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
1271         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
1272         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
1273         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
1274         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
1275         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
1276         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
1277         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
1278         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
1279         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
1280         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
1281         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
1282         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
1283         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
1284         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
1285         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
1286         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
1287         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
1288         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
1289         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
1290         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
1291         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
1292         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
1293         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
1294         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
1295         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
1296         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
1297         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
1298         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
1299         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
1300         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
1301         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
1302         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
1303         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1304         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1305         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1306         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1307         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
1308         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
1309         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
1310         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
1311         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
1312         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
1313         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
1314         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
1315         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
1316         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
1317         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
1318         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
1319         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
1320         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
1321         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
1322         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
1323         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
1324         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
1325         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
1326         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
1327         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
1328         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
1329         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
1330         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
1331         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
1332         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
1333         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
1334         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
1335         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
1336         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
1337         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
1338         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
1339         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
1340         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
1341         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
1342         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
1343         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
1344         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
1345         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
1346         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
1347         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
1348         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
1349         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
1350         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
1351         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
1352         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
1353         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
1354         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
1355         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
1356         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
1357         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
1358         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
1359         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
1360         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
1361         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
1362         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
1363         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
1364         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
1365         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
1366         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
1367         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
1368         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
1369         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
1370         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
1371         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
1372         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
1373         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
1374         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
1375         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
1376         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
1377         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
1378         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
1379         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
1380         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
1381         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
1382         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
1383         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
1384         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
1385         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
1386         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
1387         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
1388         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
1389         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
1390         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
1391         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
1392         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
1393         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
1394         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
1395         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
1396         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
1397         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
1398         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
1399         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
1400         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
1401         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
1402         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
1403         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
1404         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
1405         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
1406         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
1407         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
1408         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
1409         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
1410         move_v builtins.
1411         (mips_get_builtin_decl_index): New array.
1412         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
1413         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
1414         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
1415         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
1416         (mips_init_builtins): Initialize mips_get_builtin_decl_index
1417         array.
1418         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1419         hook.
1420         (mips_expand_builtin_insn): Prepare operands for
1421         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
1422         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
1423         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
1424         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
1425         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
1426         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
1427         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
1428         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
1429         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
1430         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
1431         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
1432         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
1433         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
1434         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
1435         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
1436         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
1437         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
1438         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
1439         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
1440         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
1441         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
1442         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
1443         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
1444         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
1445         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
1446         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
1447         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
1448         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
1449         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
1450         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
1451         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
1452         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
1453         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
1454         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
1455         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
1456         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
1457         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
1458         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
1459         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
1460         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
1461         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
1462         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
1463         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
1464         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
1465         These are set implicitly and an error is reported if overridden.
1466         (mips_expand_builtin_msa_test_branch): New function.
1467         (mips_expand_msa_shuffle): Likewise.
1468         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
1469         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
1470         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
1471         (mips_expand_vec_unpack): Add support for MSA.
1472         (mips_expand_vector_init): Likewise.
1473         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
1474         instead of const0_rtx.
1475         (mips_msa_vec_parallel_const_half): New function.
1476         (mips_gen_const_int_vector): Likewise.
1477         (mips_gen_const_int_vector_shuffle): Likewise.
1478         (mips_expand_msa_cmp): Likewise.
1479         (mips_expand_vec_cond_expr): Likewise.
1480         * config/mips/mips.h
1481         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
1482         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
1483         specified.
1484         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
1485         (ISA_HAS_MSA): New macro.
1486         (UNITS_PER_MSA_REG): Likewise.
1487         (BITS_PER_MSA_REG): Likewise.
1488         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
1489         (MSA_REG_FIRST): New macro.
1490         (MSA_REG_LAST): Likewise.
1491         (MSA_REG_NUM): Likewise.
1492         (MSA_REG_P): Likewise.
1493         (MSA_REG_RTX_P): Likewise.
1494         (MSA_SUPPORTED_MODE_P): Likewise.
1495         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
1496         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
1497         * config/mips/mips.md: Include mips-msa.md.
1498         (alu_type): Add simd_add.
1499         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
1500         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
1501         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
1502         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
1503         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
1504         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
1505         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
1506         simd_move, simd_load, simd_store.  Choose "multi" for moves
1507         for "qword_mode".
1508         (qword_mode): New attribute.
1509         (insn_count): Add instruction count for quad moves.
1510         Increase the count for MIPS SIMD division.
1511         (UNITMODE): Add UNITMODEs for vector types.
1512         (addsub): New code iterator.
1513         * config/mips/mips.opt (mmsa): New option.
1514         * config/mips/msa.h: New file.
1515         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
1516         specified.
1517         * config/mips/mti-linux.h: Likewise.
1518         * config/mips/predicates.md
1519         (const_msa_branch_operand): New constraint.
1520         (const_uimm3_operand): Likewise.
1521         (const_uimm4_operand): Likewise.
1522         (const_uimm5_operand): Likewise.
1523         (const_uimm8_operand): Likewise.
1524         (const_imm5_operand): Likewise.
1525         (aq10b_operand): Likewise.
1526         (aq10h_operand): Likewise.
1527         (aq10w_operand): Likewise.
1528         (aq10d_operand): Likewise.
1529         (const_m1_operand): Likewise.
1530         (reg_or_m1_operand): Likewise.
1531         (const_exp_2_operand): Likewise.
1532         (const_exp_4_operand): Likewise.
1533         (const_exp_8_operand): Likewise.
1534         (const_exp_16_operand): Likewise.
1535         (const_vector_same_val_operand): Likewise.
1536         (const_vector_same_simm5_operand): Likewise.
1537         (const_vector_same_uimm5_operand): Likewise.
1538         (const_vector_same_uimm6_operand): Likewise.
1539         (const_vector_same_uimm8_operand): Likewise.
1540         (par_const_vector_shf_set_operand): Likewise.
1541         (reg_or_vector_same_val_operand): Likewise.
1542         (reg_or_vector_same_simm5_operand): Likewise.
1543         (reg_or_vector_same_uimm6_operand): Likewise.
1544         * doc/extend.texi (MIPS SIMD Architecture Functions): New
1545         section.
1546         * doc/invoke.texi (-mmsa): Document new option.
1547
1548 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1549
1550         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
1551         * configure: Regenerate.
1552         * config.in: Regenerate.
1553         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
1554         on -fvtable-verify.
1555         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
1556         (ENDFILE_VTV_SPEC): Define.
1557
1558 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
1559
1560         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
1561         registers in all interrupt handlers if necessary.
1562         (rl78_option_override): Add warning.
1563         (MUST_SAVE_MDUC_REGISTERS): New macro.
1564         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
1565         * config/rl78/rl78.c (check_mduc_usage): New function.
1566         (mduc_regs): New structure to hold MDUC register data.
1567         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
1568         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
1569         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
1570         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
1571         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
1572         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
1573
1574 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
1575
1576         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
1577         (tree-ssa-loop-niter.h): Ditto.
1578         (idx_within_array_bound, ref_within_array_bound): New functions.
1579         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
1580         Factor out check on writable base object to ...
1581         (base_object_writable): ... here.
1582
1583 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1584
1585         * config/arm/arm.md (probe_stack): Add modes to set source
1586         and destination.
1587
1588 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
1589
1590         * regrename.c (base_reg_class_for_rename): New static function.
1591         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
1592
1593 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
1594
1595         * cgraph.c (thunk_adjust): Export.
1596         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
1597         * cgraphunit.c (thunk_adjust): Export.
1598         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
1599         thunks.
1600         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
1601         inlinable.
1602         * tree-inline.c (expand_call_inline): Expand thunks inline.
1603
1604 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
1605
1606         PR target/70998
1607         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
1608         (*sse2_vd_cvtss2sd): Ditto.
1609         * config/i386/i386.md
1610         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
1611         Generate *sse2_vd_cvtsd2ss pattern.
1612         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
1613         Generate *sse2_vd_cvtss2sd pattern.
1614
1615 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1616
1617         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
1618         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
1619         users.
1620
1621 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
1622
1623         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
1624         * config/sh/sh.c: Define and declare variables on first use throughout
1625         the file.
1626         (current_function_interrupt): Change to bool type.
1627         (frame_insn): Rename to emit_frame_insn and update users.
1628         (push_regs): Use bool for 'interrupt_handler' argument.
1629         (save_schedule_s): Remove.
1630         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
1631         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
1632         targetm.asm_out.unaligned_op.di.
1633         (gen_far_branch): Remove redundant forward declaration.
1634         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
1635         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
1636         (sh_set_return_address, sh_function_ok_for_sibcall,
1637         scavenge_reg): Update comments.
1638         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
1639         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
1640         (sh_attr_renesas_p): Remove unnecessary parentheses.
1641         (branch_dest): Simplify.
1642         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
1643         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
1644         (CUMULATIVE_ARGS): Change macro to typedef.
1645         (current_function_interrupt): Change to bool type.
1646         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
1647         Surround with __cplusplus ifdef.
1648         (sh_compare_op0, sh_compare_op1): Remove.
1649         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
1650
1651 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
1652
1653         * config/arm/arm.md: (arch): Add neon.
1654         (arch_enabled): Return yes for arch neon when TARGET_NEON.
1655         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
1656         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
1657         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
1658         attributes for alt renumbering.  Mark alt 3 as non-predicable.
1659         (thumb2_movdf_vfp): Likewise.
1660
1661 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
1662
1663         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
1664         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
1665         (*andqi_1): Add preferred_for_speed attribute to disparage
1666         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
1667         (*<code>qi_1): Ditto.
1668         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
1669         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
1670         (*ashlqi3_1): Ditto.
1671         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
1672         Add preferred_for_size attribute to disparage alternative 0 and
1673         preferred_for_speed attribute to disparage alternative 1 for
1674         TARGET_PARTIAL_REG_STALL targets.
1675
1676 2016-05-07  Tom de Vries  <tom@codesourcery.com>
1677
1678         PR tree-optimization/70956
1679         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
1680         def.
1681
1682 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
1683
1684         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
1685         * config/sh/sh.c (sh_cbranch_distance): Implement it.
1686         * config/sh/sh.md (branch_zero): Remove define_attr.
1687         (define_delay): Disable delay slot if branch distance is one insn.
1688
1689 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1690
1691         * config/i386/i386.md (LEAMODE): New mode attribute.
1692         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
1693         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
1694         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
1695         operand 2 predicate.
1696         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
1697         (*lea<mode>_general_3): Ditto.
1698         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
1699
1700 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1701
1702         * genmddump.c (main): Convert argv from char ** to const char **.
1703
1704 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1705
1706         * coretypes.h (OVERRIDE): New macro.
1707         (FINAL): New macro.
1708
1709 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
1710
1711         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
1712         allow coalescing if the types are compatible.
1713
1714 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1715
1716         * pass_manager.h (pass_manager::register_pass_name): New method.
1717         (pass_manager::get_pass_by_name): New method.
1718         (pass_manager::create_pass_tab): New method.
1719         (pass_manager::m_name_to_pass_map): New field.
1720         * passes.c (name_to_pass_map): Delete global in favor of field
1721         "m_name_to_pass_map" of pass_manager.
1722         (register_pass_name): Rename from a function to...
1723         (pass_manager::register_pass_name): ...this method, updating
1724         for renaming of global "name_to_pass_map" to field
1725         "m_name_to_pass_map".
1726         (create_pass_tab): Rename from a function to...
1727         (pass_manager::create_pass_tab): ...this method, updating
1728         for renaming of global "name_to_pass_map" to field.
1729         (get_pass_by_name): Rename from a function to...
1730         (pass_manager::get_pass_by_name): ...this method.
1731         (enable_disable_pass): Convert use of get_pass_by_name to
1732         a method call, locating the pass_manager singleton.
1733
1734 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
1735
1736         * genattr-common.c (main): Convert argv from char ** to const char **.
1737         * genattr.c (main): Likewise.
1738         * genattrtab.c (main): Likewise.
1739         * genautomata.c (initiate_automaton_gen): Likewise.
1740         (main): Likewise.
1741         * gencodes.c (main): Likewise.
1742         * genconditions.c (main): Likewise.
1743         * genconfig.c (main): Likewise.
1744         * genconstants.c (main): Likewise.
1745         * genemit.c (main): Likewise.
1746         * genenums.c (main): Likewise.
1747         * genextract.c (main): Likewise.
1748         * genflags.c (main): Likewise.
1749         * genmddeps.c (main): Likewise.
1750         * genopinit.c (main): Likewise.
1751         * genoutput.c (main): Likewise.
1752         * genpeep.c (main): Likewise.
1753         * genpreds.c (main): Likewise.
1754         * genrecog.c (main): Likewise.
1755         * gensupport.c (init_rtx_reader_args_cb): Likewise.
1756         (init_rtx_reader_args): Likewise.
1757         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1758         (init_rtx_reader_args): Likewise.
1759         * gentarget-def.c (main): Likewise.
1760         * read-md.c (read_md_files): Likewise.
1761         * read-md.h (read_md_files): Likewise.
1762
1763 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1764
1765         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
1766         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
1767         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
1768         Remove unused predicate.
1769         (register_and_not_fp_reg_operand): Ditto.
1770
1771 2016-05-06  Martin Liska  <mliska@suse.cz>
1772
1773         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
1774         instead of vec as the vector is local to the function.
1775
1776 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
1777
1778         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
1779         avx512bw alternative.
1780
1781         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
1782         before the ashr<mode>3 pattern.
1783
1784         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
1785         v instead of x in vex or maybe_vex alternatives, use
1786         maybe_evex instead of vex in prefix.
1787
1788         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
1789         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
1790         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
1791         in vex or maybe_vex alternatives, use maybe_evex instead of vex
1792         in prefix.
1793
1794         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
1795         v instead of x in vex or maybe_vex alternatives, use
1796         maybe_evex instead of vex in prefix.
1797
1798         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
1799         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
1800         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
1801         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
1802         alternatives, use maybe_evex instead of vex in prefix.
1803
1804         * config/i386/sse.md (vec_interleave_lowv4sf,
1805         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
1806         v instead of x in vex or maybe_vex alternatives, use
1807         maybe_evex instead of vex in prefix.
1808
1809         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
1810         v instead of x in vex or maybe_vex alternatives, use
1811         maybe_evex instead of vex in prefix.
1812
1813         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
1814         v constraint instead of x.
1815
1816 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1817
1818         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
1819         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
1820         equality first.
1821
1822 2016-05-06  Richard Biener  <rguenther@suse.de>
1823
1824         PR tree-optimization/70948
1825         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1826         Properly clobber all fields of va_list for __builtin_va_start.
1827
1828 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
1829
1830         PR debug/70935
1831         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
1832         loop latch destination.
1833
1834 2016-05-06  Martin Liska  <mliska@suse.cz>
1835
1836         * tree-ssa-uninit.c: Apply manual changes
1837         to the GNU coding style.
1838         (prune_uninit_phi_opnds): Rename from
1839         prune_uninit_phi_opnds_in_unrealizable_paths.
1840
1841 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1842
1843         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
1844         mspace): Remove deprecated options.
1845         * doc/invoke.texi (SH options): Remove -mspace.
1846
1847 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1848
1849         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
1850
1851 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1852
1853         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
1854         corresponding combine split pattern.
1855
1856 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1857
1858         PR target/58219
1859         * config/sh/predicates.md (long_displacement_mem_operand): New.
1860         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
1861         Add movi20, movi20s alternatives.  Adjust length attribute for
1862         alternatives.
1863         (movsi_ie): Allow for any FPU.  Adjust length attribute for
1864         alternatives.
1865         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
1866         attribute for alternatives.
1867         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
1868         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
1869         length attribute for alternatives.
1870
1871 2016-05-06  Richard Biener  <rguenther@suse.de>
1872
1873         PR tree-optimization/70960
1874         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
1875
1876 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1877
1878         PR target/52933
1879         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
1880         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
1881
1882 2016-05-06  Marek Polacek  <polacek@redhat.com>
1883
1884         PR sanitizer/70875
1885         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
1886
1887 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
1888
1889         PR target/54089
1890         * config/sh/sh.md (*rotcr): Add another variant.
1891
1892 2016-05-06  Richard Biener  <rguenther@suse.de>
1893
1894         PR middle-end/70931
1895         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
1896
1897 2016-05-06  Richard Biener  <rguenther@suse.de>
1898
1899         PR middle-end/70941
1900         * fold-const.c (split_tree): Always convert to the original type
1901         before negating.
1902
1903 2016-05-06  Richard Biener  <rguenther@suse.de>
1904
1905         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
1906         (fwprop_addr): Likewise.
1907
1908 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
1909
1910         PR target/70873
1911         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
1912         New prototype.
1913         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
1914         * config/i386/i386.md (push mem splitter): Use find_constant_src in
1915         the splitter condition.
1916         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
1917         the splitter condition.
1918         (FP float_extend load splitter): Ditto.
1919
1920 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
1921
1922         * config/i386/i386.md (peehole2 patterns): Change true_regnum
1923         to REGNO in all peephole2 patterns.
1924         (post-reload splitters): Change true_regnum to REGNO in
1925         post-reload splitters.
1926         (zero_extend splitters): Use general_reg_operand and
1927         nonimmediate_gr_operand predicates.
1928
1929 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
1930
1931         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
1932         v constraint instead of x.
1933
1934 2016-05-05  Alan Modra  <amodra@gmail.com>
1935
1936         PR target/68662
1937         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1938         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
1939         TARGET_NO_FP_IN_TOC for -mrelocatable.
1940         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
1941         TARGET_RELOCATABLE test.
1942         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1943         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1944         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1945         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1946         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1947         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1948         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1949         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1950         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
1951         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
1952         Likewise.
1953         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
1954         (rs6000_stack_info): Likewise.
1955         (rs6000_elf_asm_out_constructor): Likewise.
1956         (rs6000_elf_asm_out_destructor): Likewise.
1957         (rs6000_elf_declare_function_name): Likewise.
1958         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
1959         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
1960         Don't define.
1961
1962 2016-05-05  Alan Modra  <amodra@gmail.com>
1963
1964         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
1965
1966 2016-05-05  Alan Modra  <amodra@gmail.com>
1967
1968         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
1969         out-of-line gpr restore for one or two regs if that would add
1970         a save of lr.
1971
1972 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
1973
1974         PR target/70873
1975         * config/i386/i386.md
1976         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
1977         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
1978         as operand 0 predicate.
1979         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
1980         Ditto.
1981         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
1982         Ditto.  Emit the pattern using RTX.
1983
1984         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
1985         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
1986         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
1987         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
1988         Ditto.
1989         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
1990         sse_reg_operand as operand 0 predicate.
1991
1992         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
1993         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
1994         instead of gen_rtx_REG.
1995         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
1996         Ditto.
1997
1998 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
1999
2000         * function.c (emit_use_return_register_into_block): Delete.
2001         (gen_return_pattern): Delete.
2002         (emit_return_into_block): Delete.
2003         (active_insn_between): Delete.
2004         (convert_jumps_to_returns): Delete.
2005         (emit_return_for_exit): Delete.
2006         (thread_prologue_and_epilogue_insns): Delete all code dealing with
2007         simple_return for shrink-wrapped blocks.
2008         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
2009         end of blocks that need one.
2010         (get_unconverted_simple_return): Delete.
2011         (convert_to_simple_return): Delete.
2012         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
2013         (convert_to_simple_return): Ditto.
2014
2015 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
2016
2017         * cfgcleanup.c (bb_is_just_return): New function.
2018         (try_optimize_cfg): Simplify jumps to return, branches to return,
2019         and branches around return.
2020
2021 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
2022
2023         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
2024         branch to a return.
2025
2026 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2027
2028         PR c++/70906
2029         PR c++/70933
2030         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
2031         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
2032         assert flags & OEP_HASH_CHECK, instead of asserting it
2033         never happens.  Handle TARGET_EXPR.
2034         * fold-const.c (operand_equal_p): For hash verification,
2035         or in OEP_HASH_CHECK into flags.
2036
2037 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
2038
2039         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
2040         comment.
2041         (compute_samebase_partition_bases): Fix typo.
2042
2043 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
2044
2045         * config/i386/sse.md (vec_interleave_highv8sf,
2046         vec_interleave_lowv8sf, vec_interleave_highv4df,
2047         vec_interleave_lowv4df): Remove constraints from expanders.
2048
2049         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
2050
2051 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2052
2053         * tree-inline.c (expand_call_inline): Fix path dealing with
2054         making lhs of call statement undefined.
2055
2056 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
2057
2058         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
2059         Check availability on NODE, too.
2060         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
2061         (cgraph_node::call_for_symbol_and_aliases): Likewise.
2062         (varpool_node::call_for_symbol_and_aliase): Likewise.
2063         * ipa-pure-const.c (add_new_function): Analyze all bodies.
2064         (propagate_pure_const): Propagate across interposable functions, too.
2065         (skip_function_for_local_pure_const): Do not skip interposable bodies
2066         with aliases.
2067         (pass_local_pure_const::execute): Update.
2068
2069 2016-05-04  Marek Polacek  <polacek@redhat.com>
2070
2071         * doc/invoke.texi: Document -Wdangling-else.
2072
2073 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2074
2075         * config.gcc: Error out when conflicting multilib is detected.  Do not
2076         loop over multilibs since no combination is legal.
2077
2078 2016-05-04  Alan Modra  <amodra@gmail.com>
2079
2080         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
2081         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
2082         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
2083         Align .toc.
2084
2085 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
2086
2087         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
2088         Clean up p5600 comments.
2089
2090 2016-05-04  Richard Biener  <rguenther@suse.de>
2091
2092         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
2093         constructor simplifications.
2094         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
2095
2096 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
2097
2098         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
2099         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
2100         result.set_rtx is null instead of aborting.
2101         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
2102         Always enable.
2103         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
2104         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
2105         *mov<mode>_store_postinc): New patterns.
2106
2107 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
2108
2109         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
2110         as commutative.  Check both conversions are NOP.
2111         ((A & B) OP (C & B)): Remove.
2112
2113 2016-05-04  Alan Modra  <amodra@gmail.com>
2114
2115         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
2116
2117 2016-05-04  Alan Modra  <amodra@gmail.com>
2118
2119         PR target/70866
2120         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
2121         when cr2,3,4 are all fixed regs.
2122
2123 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
2124
2125         PR rtl-optimization/57193
2126         * opts.c (default_options_table): Revert OPT_frename_registers change.
2127         * doc/invoke.texi (-frename-registers, -O2): Likewise.
2128
2129 2016-05-03  Martin Sebor  <msebor@redhat.com>
2130
2131         PR c++/66561
2132         * builtins.c (fold_builtin_FILE): New function.
2133         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
2134         (fold_builtin_0): Call them.
2135         * gimplify.c (gimplify_call_expr): Remove the handling of
2136         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
2137
2138         PR c++/66561
2139         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
2140         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
2141         constants.
2142
2143         PR c++/66639
2144         * doc/extend.texi (Function Names as Strings): Update __func__,
2145         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
2146         constants.
2147
2148 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2149             Richard Biener  <rguenther@suse.de>
2150
2151         PR tree-optimization/70916
2152         * tree-if-conv.c: Include cfganal.h.
2153         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
2154         and remove_fake_exit_edges around the optimization pass.
2155
2156 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
2157
2158         * cgraph.c (symbol_table::create_edge): Set inline_failed.
2159         (cgraph_edge::make_direct): Likewise.
2160         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
2161         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
2162         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
2163         (CIF_THUNK): New code.
2164         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
2165         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
2166         (compute_inline_parameters): Set inline_failed for thunks.
2167         (inline_analyze_function): Cleanup.
2168         * ipa-inline.c (can_inline_edge_p): Do not deal with
2169         call_stmt_cannot_inline_p.
2170         (can_early_inline_edge_p): Likewise.
2171         (early_inliner): Initialize inline_failed.
2172         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
2173
2174 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
2175
2176         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
2177         from nonimm_ssenomem_operand.
2178         (nonimm_ssenomem_operand): New predicate.
2179         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
2180         as operand 0 predicate.
2181         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
2182         Disable unsupported alternatives using "enabled" attribute.
2183         Use register_ssemem_operand as operand 0 predicate.
2184         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
2185
2186 2016-05-03  Marek Polacek  <polacek@redhat.com>
2187
2188         PR c/70859
2189         * input.c (expansion_point_location): New function.
2190         * input.h (expansion_point_location): Declare.
2191
2192 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
2193
2194         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
2195         occurence with frame_offset_ ones.
2196
2197 2016-05-03  Alan Modra  <amodra@gmail.com>
2198
2199         PR rtl-optimization/70890
2200         * ira.c (combine_and_move_insns): When moving def_insn, remove
2201         equivs on use_insn.
2202
2203 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2204
2205         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
2206         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
2207         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
2208         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
2209
2210 2016-05-03  Alan Modra  <amodra@gmail.com>
2211
2212         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
2213         for SAVE_MULTIPLE/STORE_MULTIPLE.
2214
2215 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2216
2217         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
2218         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
2219
2220 2016-05-03  Richard Biener  <rguenther@suse.de>
2221
2222         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
2223         default true.
2224         (gimplify_arg): Likewise.
2225         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
2226         re-writing the result to a decl if required.
2227         (internal_get_tmp_var): Add allow_ssa parameter
2228         and override into_ssa with it.
2229         (get_formal_tmp_var): Adjust.
2230         (get_initialized_tmp_var): Add allow_ssa parameter.
2231         (gimplify_arg): Add allow_ssa parameter and avoid generating
2232         SSA names for the result false.
2233         (gimplify_call_expr): If the call may return twice do not
2234         gimplify parameters into SSA.
2235         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
2236         (gimplify_modify_expr): Adjust assert.  For noreturn calls
2237         with a SSA name LHS adjust its def.
2238         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
2239         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
2240         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
2241         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
2242         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
2243         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
2244         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
2245         (optimize_target_teams): Do not allow SSA names for clause operands.
2246         (gimplify_expr): Likewise for where we mark the result addressable.
2247         * passes.def (pass_init_datastructures): Remove.
2248         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
2249         (rewrite_stmt): Likewise.
2250         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
2251         (replace_locals_op): Replace SSA names.
2252         (copy_gimple_seq_and_replace_locals): Init src_cfun.
2253         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
2254         * cgraph.c (release_function_body): Free CFG annotations only
2255         when we have a CFG.  Simplify.
2256         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
2257         force_gimple_operand instead of get_initialized_tmp_var.
2258         * tree-pass.h (make_pass_init_datastructures): Remove.
2259         * tree-ssa.c (execute_init_datastructures): Remove.
2260         (pass_data_init_datastructures): Likewise.
2261         (class pass_init_datastructures): Likewise.
2262         (make_pass_init_datastructures): Likewise.
2263         * omp-low.c (create_omp_child_function): Init SSA data structures.
2264         (grid_expand_target_grid_body): Likewise.
2265         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
2266         name before adding it to names_to_release.
2267         (remove_bb): Always release SSA defs.
2268         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
2269         before dereferencing it.
2270         * cgraphunit.c (init_lowered_empty_function): Always
2271         int SSA data structures.
2272         * tree-ssanames.c (release_defs): Remove assert that we are in
2273         SSA form.
2274         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
2275
2276 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2277             Uros Bizjak  <ubizjak@gmail.com>
2278
2279         PR rtl-optimization/70467
2280         * config/i386/predicates.md (x86_64_hilo_int_operand,
2281         x86_64_hilo_general_operand): New predicates.
2282         * config/i386/constraints.md (Wd): New constraint.
2283         * config/i386/i386.md (mode attr di): Use Wd instead of e.
2284         (general_hilo_operand): New mode attr.
2285         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
2286         instead of <general_operand>.
2287         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
2288         x86_64_hilo_general_operand instead of <general_operand>.
2289
2290 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
2291
2292         PR tree-optimization/70916
2293         * tree-if-conv.c (constant_or_ssa_name): Removed.
2294         (fold_build_cond_expr): Use is_gimple_val instead of
2295         constant_or_ssa_name.
2296
2297         PR tree-optimization/70916
2298         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
2299         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
2300
2301         PR target/49244
2302         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
2303         (optimize_atomic_bit_test_and): New function.
2304         (pass_fold_builtins::execute): Use it.
2305         * optabs.def (atomic_bit_test_and_set_optab,
2306         atomic_bit_test_and_complement_optab,
2307         atomic_bit_test_and_reset_optab): New optabs.
2308         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
2309         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
2310         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
2311         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
2312         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
2313         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
2314         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
2315         * doc/md.texi (atomic_bit_test_and_set@var{mode},
2316         atomic_bit_test_and_complement@var{mode},
2317         atomic_bit_test_and_reset@var{mode}): Document.
2318         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
2319         atomic_bit_test_and_complement<mode>,
2320         atomic_bit_test_and_reset<mode>): New expanders.
2321         (atomic_bit_test_and_set<mode>_1,
2322         atomic_bit_test_and_complement<mode>_1,
2323         atomic_bit_test_and_reset<mode>_1): New insns.
2324
2325 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
2326
2327         PR rtl-optimization/70687
2328         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
2329         instead of unsigned HOST_WIDE_INT.
2330
2331 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
2332
2333         PR rtl-optimization/44281
2334         * hard-reg-set.h (struct target_hard_regs): New field
2335         x_fixed_nonglobal_reg_set.
2336         (fixed_nonglobal_reg_set): New macro.
2337         * reginfo.c (init_reg_sets_1): Initialize it.
2338         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
2339         of fixed_reg_set.
2340         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
2341
2342 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2343
2344         PR tree-optimization/56541
2345         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
2346         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
2347         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
2348         (any_complicated_phi): new static variable.
2349         (aggressive_if_conv): delete.
2350         (if_convertible_phi_p): support phis with more than two arguments.
2351         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
2352         critical pred edges.
2353         (ifcvt_split_critical_edges): support phis with more than two
2354         arguments by checking new parameter.  only split critical edges
2355         if needed.
2356         (tree_if_conversion): handle simd pragma marked loop using new
2357         local variable aggressive_if_conv.  check any_complicated_phi.
2358
2359 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2360
2361         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
2362         before using it.
2363
2364 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
2365
2366         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
2367         cbase.
2368
2369 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
2370
2371         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
2372         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
2373         define_insn_and_split.
2374         (mulsi3_i): New define_insn_and_split.
2375         (mulsi3_call): Convert to define_insn.
2376         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
2377         Remove constraints.
2378
2379 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2380
2381         * machmode.h (mode_complex): Add support to give the complex mode
2382         for a given mode.
2383         (GET_MODE_COMPLEX_MODE): Likewise.
2384         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
2385         stored by build_complex_type and gfc_build_complex_type instead of
2386         trying to figure out the appropriate mode based on the size. Raise
2387         an assertion error, if the type was not set.
2388         * genmodes.c (struct mode_data): Add field for the complex type of
2389         the given type.
2390         (blank_mode): Likewise.
2391         (make_complex_modes): Remember the complex mode created in the
2392         base type.
2393         (emit_mode_complex): Write out the mode_complex array to map a
2394         type mode to the complex version.
2395         (emit_insn_modes_c): Likewise.
2396         * tree.c (build_complex_type): Set the complex type to use before
2397         calling layout_type.
2398         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
2399         support for __float128 complex datatypes.
2400         (rs6000_hard_regno_mode_ok): Likewise.
2401         (rs6000_setup_reg_addr_masks): Likewise.
2402         (rs6000_complex_function_value): Likewise.
2403         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
2404         __float128 and __ibm128 complex.
2405         (FLOAT128_IBM_P): Likewise.
2406         (ALTIVEC_ARG_MAX_RETURN): Likewise.
2407         * doc/extend.texi (Additional Floating Types): Document that
2408         -mfloat128 must be used to enable __float128.  Document complex
2409         __float128 and __ibm128 support.
2410
2411 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2412
2413         PR target/49244
2414         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
2415         char/short arguments promoted to int because of promote_prototypes.
2416
2417 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2418
2419         * config/i386/predicates.md (register_ssemem_operand): New predicate.
2420         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
2421         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
2422         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
2423         alternatives using "enabled" attribute.  Use register_ssemem_operand
2424         as operand 1 predicate.
2425         (*cmpi<unord>xf_i387): Split XFmode pattern from
2426         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
2427         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
2428         *absneg<mode>2_i387.  Disable unsupported alternatives using
2429         "enabled" attribute.
2430         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
2431
2432 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2433
2434         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
2435         marker.
2436         (oacc_loop_process): Check mask for loop termination.
2437
2438 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2439
2440         * cif-code.def (CIF_THUNK): Add.
2441         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
2442         accidental change.
2443
2444 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
2445
2446         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
2447         (dump_inline_summary): Dump it.
2448         (fp_expression_p): New predicate.
2449         (estimate_function_body_sizes): Use it.
2450         (inline_merge_summary): Merge fp_expressions.
2451         (inline_read_section): Read fp_expressions.
2452         (inline_write_summary): Write fp_expressions.
2453         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
2454         codegen boundary if either caller or callee is !fp_expressions.
2455         * ipa-inline.h (inline_summary): Add fp_expressions.
2456         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
2457         to fp_expressions be sure the fp generation flags are updated.
2458
2459 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
2460
2461         PR rtl-optimization/70467
2462         * cse.c (cse_insn): Handle no-op MEM moves after folding.
2463
2464         PR rtl-optimization/70467
2465         * ipa-pure-const.c (check_call): Handle internal calls even in
2466         ipa mode like in local mode.
2467
2468 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2469
2470         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
2471
2472 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2473
2474         * match.pd (X u< X, X u> X): New transformations.
2475
2476 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
2477
2478         * flag-types.h (enum warn_strict_overflow_code): Move ...
2479         * coretypes.h: ... here.
2480         * fold-const.h (fold_overflow_warning): Declare.
2481         * fold-const.c (fold_overflow_warning): Make non-static.
2482         (fold_comparison): Move the transformation of X +- C1 CMP C2
2483         into X CMP C2 -+ C1 ...
2484         * match.pd: ... here.
2485         * gimple-fold.c (fold_stmt_1): Protect with
2486         fold_defer_overflow_warnings.
2487
2488 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2489
2490         * omp-low.c (struct oacc_loop): Add 'inner' field.
2491         (new_oacc_loop_raw): Initialize it to zero.
2492         (oacc_loop_fixed_partitions): Initialize it.
2493         (oacc_loop_auto_partitions): Partition outermost loop to outermost
2494         available partitioning.
2495
2496 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2497
2498         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
2499         register_operand.
2500         (umulsidi3): Likewise.
2501         (indirect_jump): Fix jump instruction assembly patterns.
2502
2503 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
2504
2505         PR target/70860
2506         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
2507         (nvptx_function_value): Assert non-NULL cfun.
2508
2509 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2510
2511         PR rtl-optimization/70886
2512         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
2513
2514         * cselib.h (rtx_equal_for_cselib_1): Declare.
2515         (rtx_equal_for_cselib_p: New inline function.
2516         * cselib.c (rtx_equal_for_cselib_p): Delete.
2517         (rtx_equal_for_cselib_1): Make public.
2518
2519 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
2520
2521         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
2522         (register_mixssei387nonimm_operand): Remove predicate.
2523         * config/i386/i386.md (*fop_<mode>_comm): Merge from
2524         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
2525         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
2526         for TARGET_MIX_SSE_I387 alternatives.
2527         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
2528         Disable unsupported alternatives using "enabled" attribute.  Use
2529         nonimm_ssenomem_operand as operand 1 predicate.  Also check
2530         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
2531
2532 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2533
2534         * tree.c (cst_and_fits_in_hwi): Simplify.
2535
2536 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2537
2538         * tree.h (wi::to_wide): New function.
2539         * expr.c (expand_expr_real_1): Use wi::to_wide.
2540         * fold-const.c (int_const_binop_1): Likewise.
2541         (extract_muldiv_1): Likewise.
2542
2543 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2544
2545         * wide-int.h: Update offset_int and widest_int documentation.
2546         (WI_SIGNED_SHIFT_RESULT): New macro.
2547         (wi::binary_shift): Define signed_shift_result_type for
2548         shifts on offset_int- and widest_int-like types.
2549         (generic_wide_int): Support <<= and >>= if << and >> are supported.
2550         * tree.h (int_bit_position): Use shift operators instead of wi::
2551          shifts.
2552         * alias.c (adjust_offset_for_component_ref): Likewise.
2553         * expr.c (get_inner_reference): Likewise.
2554         * fold-const.c (fold_comparison): Likewise.
2555         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
2556         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
2557         * tree-dfa.c (get_ref_base_and_extent): Likewise.
2558         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
2559         (stmt_kills_ref_p): Likewise.
2560         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
2561         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
2562         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2563         (ao_ref_init_from_vn_reference): Likewise.
2564
2565 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
2566
2567         * wide-int.h: Update offset_int and widest_int documentation.
2568         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
2569         (wi::binary_traits): Allow ordered comparisons between offset_int and
2570         offset_int, between widest_int and widest_int, and between either
2571         of these types and basic C types.
2572         (operator <, <=, >, >=): Define for the same combinations.
2573         * tree.h (tree_int_cst_lt): Use comparison operators instead
2574         of wi:: comparisons.
2575         (tree_int_cst_le): Likewise.
2576         * gimple-fold.c (fold_array_ctor_reference): Likewise.
2577         (fold_nonarray_ctor_reference): Likewise.
2578         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
2579         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
2580         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
2581         * tree-sra.c (completely_scalarize): Likewise.
2582         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
2583         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
2584         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
2585         (check_for_binary_op_overflow): Likewise.
2586         (search_for_addr_array): Likewise.
2587         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
2588
2589 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2590
2591         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
2592         (arc_save_restore): Likewise.
2593         (arc_dwarf_register_span): Likewise.
2594         (arc_output_pic_addr_const): Initialize suffix variable.
2595
2596 2016-05-02  Martin Liska  <mliska@suse.cz>
2597
2598         * symbol-summary.h (function_summary::function_summary):
2599         Remove checking assert for all cgraph nodes.
2600         (function_summary::get): Check summary_uid.
2601         (symtab_insertion): Check summary_uid.
2602
2603 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
2604
2605         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
2606         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
2607         bmaskn instruction.
2608         (arc_dwarf_register_span): Remove enum keyword.
2609         (compact_memory_operand_p): New function.
2610         * config/arc/arc.h (reg_class): Add code density register classes.
2611         (REG_CLASS_NAMES): Likewise.
2612         (REG_CLASS_CONTENTS): Likewise.
2613         * config/arc/arc.md (*movqi_insn): Add code density instructions.
2614         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
2615         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
2616         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
2617         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
2618         constraints.
2619         (h, Rcd, Rsd, Rzd): New register constraints.
2620         (T): Use compact_memory_operand_p function.
2621         * config/arc/predicates.md (compact_load_memory_operand): Remove.
2622
2623 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2624
2625         * config/sh/sh.md (*negnegt, *movtt): Remove.
2626
2627 2016-05-02  Marek Polacek  <polacek@redhat.com>
2628             Tom de Vries  <tom@codesourcery.com>
2629
2630         PR tree-optimization/70700
2631         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
2632         bigger than FIRST_REF_NODE.
2633
2634 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
2635
2636         PR target/52898
2637         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
2638         TARGET_CMPEQDI_T.
2639         (prepare_cbranch_operands): Don't use scratch register.  Assume that
2640         function is used when pseudos can be created.
2641         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
2642         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
2643         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
2644         define_expand.  Allow it only when pseudos can be created.
2645         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
2646
2647 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
2648
2649         * config/i386/constraints.md (BC): Only allow -1 operands.
2650         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
2651         Add "enabled" attribute.  Update XI mode attribute calculation.
2652         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
2653         (*movoi_internal_avx): Update XI mode attribute calculation.
2654         (*movti_internal): Ditto.
2655
2656 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2657
2658         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
2659         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
2660
2661 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
2662
2663         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
2664         statement on instruction code.  Remove trailing spaces.
2665         (altivec_expand_stv_builtin): Likewise.
2666
2667 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2668
2669         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
2670         (TARGET_FPU_DOUBLE): Simplify.
2671         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
2672         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
2673         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
2674         with 'TARGET_FPU_DOUBLE'.
2675         * config/sh/sh.md: Likewise.
2676
2677 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
2678
2679         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
2680         SH_DIV_STR_FOR_SIZE): Remove.
2681         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
2682         SH_DIV_STR_FOR_SIZE): Remove.
2683
2684 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
2685
2686         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
2687         logical_reg_operand): Delete.
2688         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
2689         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
2690         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
2691         match_operand and match_test.
2692         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
2693         variables on their first use.  Return bool values.
2694         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
2695         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
2696         arith_reg_operand for input operand.  Remove empty constraints.
2697         (xorsi3): Delete.
2698         (*xorsi3_compact): Rename to xorsi3.
2699         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
2700         (*zero_extend<mode>si2_disp_mem): Update comment.
2701         (mov_nop): Delete.
2702
2703 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2704
2705         * config/sh/t-sh: Remove SH5 support.
2706         * config.gcc: Likewise.
2707         * configure: Likewise.
2708
2709 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2710
2711         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
2712
2713 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
2714
2715         * config/sh/sh.c (register_sh_passes, sh_option_override,
2716         sh_print_operand, prepare_move_operands,
2717         sh_can_follow_jump): Remove TARGET_SH1 checks.
2718         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
2719         PROMOTE_MODE): Likewise.
2720         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
2721         movdi): Likewise.
2722
2723 2016-04-30  Alan Modra  <amodra@gmail.com>
2724
2725         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
2726         restoring when fixed_reg_p, but allow out-of-line or stmw save.
2727         Check for user regs later to avoid unnecessary looping over regs.
2728         Merge user reg check with non-saved reg check.  Don't force
2729         inline VR restore when static chain used.
2730         (rs6000_frame_related): Omit eh_frame info for user regs when
2731         saving.
2732         (fixed_regs_p): Delete.
2733
2734 2016-04-30  Alan Modra  <amodra@gmail.com>
2735
2736         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
2737         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
2738         Update all uses.
2739
2740 2016-04-30  Alan Modra  <amodra@gmail.com>
2741
2742         PR target/69645
2743         * config/rs6000/rs6000.c (fixed_reg_p): New function.
2744         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
2745         Update all uses.
2746
2747 2016-04-30  Alan Modra  <amodra@gmail.com>
2748
2749         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2750         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
2751         flag_pic test for Darwin.
2752
2753 2016-04-30  Alan Modra  <amodra@gmail.com>
2754
2755         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
2756         throw_calls_crossed.
2757         (REG_FREQ_CALLS_CROSSED): Delete.
2758         (REG_N_THROWING_CALLS_CROSSED): Delete.
2759         * regstat.c (regstat_bb_compute_ri): Don't calculate
2760         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
2761         (dump_reg_info): Don't print call cross frequency.
2762         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
2763         and REG_N_THROWING_CALLS_CROSSED.
2764
2765 2016-04-30  Alan Modra  <amodra@gmail.com>
2766
2767         * regs.h (struct reg_info_t): Delete live_length.
2768         (REG_LIVE_LENGTH): Delete macro.
2769         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
2770         local_live, local_processed and local_live_last_luid params.
2771         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
2772         Formatting fixes.
2773         (regstat_compute_ri): Adjust for above.  Don't set
2774         REG_LIVE_LENGTH.
2775         (dump_reg_info): Don't print live length.
2776         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
2777         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
2778         Localize loop_depth var.
2779
2780 2016-04-30  Alan Modra  <amodra@gmail.com>
2781
2782         * ira.c (enum valid_equiv): New.
2783         (validate_equiv_mem): Return enum.
2784         (update_equiv_mem): Create replacement in more cases.
2785         (add_store_equivs): Update validate_equiv_mem call.
2786
2787 2016-04-30  Alan Modra  <amodra@gmail.com>
2788
2789         * ira.c (combine_and_move_insns): Rather than scanning insns,
2790         use DF infrastucture to find use and def insns.
2791
2792 2016-04-30  Alan Modra  <amodra@gmail.com>
2793
2794         ira.c (combine_and_move_insns): Move invariant conditions..
2795         (ira.c): ..to here.  Call combine_and_move_insns before
2796         add_store_equivs.  Call grow_reg_equivs later.  Allocate
2797         req_equiv later using max_reg_num() rather than global max_regno.
2798         (contains_replace_regs): Delete.
2799         (add_store_equivs): Remove contains_replace_regs test.
2800
2801 2016-04-30  Alan Modra  <amodra@gmail.com>
2802
2803         * ira.c (struct equiv_mem_data): New.
2804         (equiv_mem, equiv_mem_modified): Delete static vars.
2805         (validate_equiv_mem_from_store): Use "data" param to communicate..
2806         (validate_equiv_mem): ..from here.
2807
2808 2016-04-30  Alan Modra  <amodra@gmail.com>
2809
2810         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
2811         split out from..
2812         (update_reg_equivs): ..here.  Move allocation and freeing of
2813         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
2814         end_alias_analysis to..
2815         (ira): ..here.
2816
2817 2016-04-30  Alan Modra  <amodra@gmail.com>
2818
2819         * ira.c (pdx_subregs): Delete.
2820         (struct equivalence): Add pdx_subregs field.
2821         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
2822         pdx_subregs access.
2823         (update_equiv_regs): Don't create or free pdx_subregs.  Update
2824         pdx_subregs access.
2825
2826 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2827
2828         * config/rs6000/altivec.h: Change definitions of vec_xl and
2829         vec_xst.
2830         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
2831         (LD_ELEMREV_V2DI): New.
2832         (LD_ELEMREV_V4SF): New.
2833         (LD_ELEMREV_V4SI): New.
2834         (LD_ELEMREV_V8HI): New.
2835         (LD_ELEMREV_V16QI): New.
2836         (ST_ELEMREV_V2DF): New.
2837         (ST_ELEMREV_V2DI): New.
2838         (ST_ELEMREV_V4SF): New.
2839         (ST_ELEMREV_V4SI): New.
2840         (ST_ELEMREV_V8HI): New.
2841         (ST_ELEMREV_V16QI): New.
2842         (XL): New.
2843         (XST): New.
2844         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2845         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
2846         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
2847         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
2848         (altivec_expand_builtin): Add handling for
2849         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
2850         (rs6000_invalid_builtin): Add error-checking for
2851         RS6000_BTM_P9_VECTOR.
2852         (altivec_init_builtins): Define builtins used to implement vec_xl
2853         and vec_xst.
2854         (rs6000_builtin_mask_names): Define power9-vector.
2855         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
2856         (RS6000_BTM_P9_VECTOR): Define.
2857         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
2858         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
2859         (vsx_ld_elemrev_v2df): Likewise.
2860         (vsx_ld_elemrev_v4sf): Likewise.
2861         (vsx_ld_elemrev_v4si): Likewise.
2862         (vsx_ld_elemrev_v8hi): Likewise.
2863         (vsx_ld_elemrev_v16qi): Likewise.
2864         (vsx_st_elemrev_v2df): Likewise.
2865         (vsx_st_elemrev_v2di): Likewise.
2866         (vsx_st_elemrev_v4sf): Likewise.
2867         (vsx_st_elemrev_v4si): Likewise.
2868         (vsx_st_elemrev_v8hi): Likewise.
2869         (vsx_st_elemrev_v16qi): Likewise.
2870         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
2871         grammar.
2872
2873 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
2874
2875         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
2876         out into ...
2877         (simplify_control_stmt_condition_1): ... here.  Recurse into
2878         BIT_AND_EXPRs and BIT_IOR_EXPRs.
2879
2880 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
2881
2882         PR target/69810
2883         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
2884         (zero_extendqi<mode>2_dot): Revert earlier conversion from
2885         define_insn_and_split to define_insn.
2886         (zero_extendqi<mode>2_dot2): Same.
2887         (extendqi<mode>2_dot): Same.
2888         (extendqi<mode>2_dot2): Same.
2889
2890 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2891
2892         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
2893         (probe_stack): New expander.
2894         (probe_stack_<mode>): New insn pattern.
2895
2896 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2897
2898         * config/i386/i386.md
2899         (operations with memory inputs setting flags peephole2):
2900         Remove uneeded REG_P checks.  Cleanup pattern generation.
2901
2902 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
2903
2904         * tree-vect-loop.c (vect_transform_loop): Fix
2905         nb_iterations_upper_bound computation for vectorized loop.
2906
2907 2016-04-29  Marek Polacek  <polacek@redhat.com>
2908             Jakub Jelinek  <jakub@redhat.com>
2909
2910         PR sanitizer/70342
2911         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
2912         TARGET_EXPR_SLOT as a base.
2913
2914 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
2915
2916         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
2917         with 'rCm2' constraints to limit possible immediate size.
2918         (*load_zeroextendqisi_update): Likewise.
2919         (*load_signextendqisi_update): Likewise.
2920         (*loadhi_update): Likewise.
2921         (*load_zeroextendhisi_update): Likewise.
2922         (*load_signextendhisi_update): Likewise.
2923         (*loadsi_update): Likewise.
2924         (*loadsf_update): Likewise.
2925
2926 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
2927
2928         * config/i386/predicates.md (constm1_operand): Fix comparison.
2929
2930 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2931
2932         * testsuite/gcc.target/arc/ieee_eq.c: New test.
2933
2934 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
2935
2936         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
2937         remaining SH5 related settings.
2938         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
2939         shmedia_prepare_call_address): Delete.
2940         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
2941         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
2942         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
2943         UNSUPPORTED_SH2A): Remove m5 checks.
2944         (sh_divide_strategy_e): Remove SH5 division strategies.
2945         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
2946         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
2947
2948 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2949
2950         * config/s390/s390.c (s390_rtx_costs): Update documentation.
2951
2952 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2953
2954         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
2955         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
2956         Change lder to ldr.
2957         * config/s390/vector.md ("mov<mode>"): Likewise.
2958
2959 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
2960
2961         * config/s390/constraints.md ("U", "W"): Invoke
2962         s390_mem_constraint with "ZR" and "ZT".
2963         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
2964         addresses when using LRA.  Accept also short displacements for S
2965         and T constraints.  Do not check for long displacement target for
2966         S and T constraints.
2967         (s390_mem_constraint): Remove handling of U and W constraints.
2968         * config/s390/s390.md (various patterns): Remove the short
2969         displacement constraints (Q and R) if a long displacement
2970         constraint is present.  Add longdisp as required CPU capability.
2971         * config/s390/vector.md: Likewise.
2972         * config/s390/vx-builtins.md: Likewise.
2973
2974 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
2975
2976         PR target/60040
2977         * reload1.c (reload): Call finish_spills before
2978         restarting reload loop. Skip select_reload_regs
2979         if update_eliminables_and_spill returns true.
2980
2981 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
2982
2983         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
2984         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
2985         (umulhisi3_imm): Update predicates and constraint letters.
2986         (umulhisi3_reg): Declare instruction as commutative.
2987         * config/arc/constraints.md (J12, J16): New constraints.
2988         * config/arc/predicates.md (short_unsigned_const_operand): New
2989         predicate.
2990         (arc_short_operand): Likewise.
2991         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
2992
2993 2016-04-29  Richard Biener  <rguenther@suse.de>
2994
2995         PR tree-optimization/13962
2996         PR tree-optimization/65686
2997         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
2998         * tree-ssa-alias.c (ptrs_compare_unequal): New function
2999         using PTA to compare pointers.
3000         * match.pd: Add pattern for pointer equality compare simplification
3001         using ptrs_compare_unequal.
3002
3003 2016-04-29  Richard Biener  <rguenther@suse.de>
3004
3005         * stor-layout.c (layout_type): Do not build a pointer-to-element
3006         type for arrays.
3007
3008 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
3009
3010         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
3011         Use SWI mode iterator.  Use general_reg_operand predicate.
3012         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
3013         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
3014         predicates.
3015
3016 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
3017
3018         PR middle-end/70843
3019         * fold-const.c (operand_equal_p): Don't verify hash value equality
3020         if arg0 == arg1.
3021         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
3022         and OMP_CLAUSE.
3023
3024 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3025
3026         PR target/70858
3027         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
3028         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
3029         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
3030         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
3031         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
3032
3033 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3034
3035         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
3036         to info.  Don't initialize separate fields to 0.  Clean up
3037         formatting a bit.
3038
3039 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3040
3041         * config/i386/i386.md (peephole2s for operations with memory inputs):
3042         Use SWI mode iterator.
3043         (peephole2s for operations with memory outputs): Ditto.
3044         Do not check for stack checking probe.
3045
3046         (probe_stack): Remove expander.
3047
3048 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3049             Andrew Burgess  <andrew.burgess@embecosm.com>
3050
3051         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
3052         operands as 32-bits.
3053
3054 2016-04-28  Jason Merrill  <jason@redhat.com>
3055
3056         * gdbinit.in: Skip line-map.h.
3057
3058 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3059             Andrew Burgess  <andrew.burgess@embecosm.com>
3060
3061         * config/arc/arc.c (arc_conditional_register_usage): Take
3062         TARGET_RRQ_CLASS into account.
3063         (arc_print_operand): Support printing 'p' and 's' operands.
3064         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
3065         as 0.
3066         (TARGET_RRQ_CLASS): Define.
3067         (IS_POWEROF2_OR_0_P): Define.
3068         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
3069         alternatives.
3070         (*tst_movb): New define_insn.
3071         (*tst): Avoid recognition if it could prevent '*tst_movb'
3072         combination; replace c/CnL with c/Chs alternative.
3073         (*tst_bitfield_tst): New define_insn.
3074         (*tst_bitfield_asr): New define_insn.
3075         (*tst_bitfield): New define_insn.
3076         (andsi3_i): Add Rrq variant.
3077         (extzv): New define_expand.
3078         (insv): New define_expand.
3079         (*insv_i): New define_insn.
3080         (*movb): New define_insn.
3081         (*movb_signed): New define_insn.
3082         (*movb_high): New define_insn.
3083         (*movb_high_signed): New define_insn.
3084         (*movb_high_signed + 1): New define_split pattern.
3085         (*mrgb): New define_insn.
3086         (*mrgb + 1): New define_peephole2 pattern.
3087         (*mrgb + 2): New define_peephole2 pattern.
3088         * config/arc/arc.opt (mbitops): New option for nps400, uses
3089         TARGET_NPS_BITOPS_DEFAULT.
3090         * config/arc/constraints.md (q): Make register class conditional.
3091         (Rrq): New register constraint.
3092         (Chs): New constraint.
3093         (Clo): New constraint.
3094         (Chi): New constraint.
3095         (Cbf): New constraint.
3096         (Cbn): New constraint.
3097         (C18): New constraint.
3098         (Cbi): New constraint.
3099
3100 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3101
3102         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
3103         dst->popcount.
3104         (bitmap_intersection_of_preds): Ditto.
3105         (bitmap_union_of_succs): Ditto.
3106         (bitmap_union_of_preds): Ditto.
3107         * sbitmap.c (do_popcount): Delete.
3108         (BITMAP_DEBUGGING): Delete.
3109         (sbitmap_verify_popcount): Delete.
3110         (sbitmap_alloc): Don't initialize the popcount field.
3111         (sbitmap_alloc_with_popcount): Delete.
3112         (sbitmap_resize): Don't resize the popcount array.
3113         (sbitmap_vector_alloc): Don't initialize the popcount field.
3114         (bitmap_copy): Don't copy the popcount array.
3115         (bitmap_clear): Don't clear the popcount array.
3116         (bitmap_clear): Delete the popcount array handling.
3117         (bitmap_ior_and_compl): Delete the popcount assert.
3118         (bitmap_not): Ditto.
3119         (bitmap_and_compl): Ditto.
3120         (bitmap_and): Delete the popcount array handling.
3121         (bitmap_xor): Ditto.
3122         (bitmap_ior): Ditto.
3123         (bitmap_or_and): Delete the popcount assert.
3124         (bitmap_and_or): Ditto.
3125         (popcount_table): Delete.
3126         (sbitmap_elt_popcount): Delete.
3127         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
3128         (bitmap_set_bit): Delete the popcount assert.
3129         (bitmap_clear_bit): Ditto.
3130         (sbitmap_free): Don't free the popcount array.
3131         (sbitmap_alloc_with_popcount): Delete declaration.
3132         (sbitmap_popcount): Ditto.
3133
3134 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3135             Andrew Burgess  <andrew.burgess@embecosm.com>
3136
3137         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
3138         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
3139         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
3140         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
3141         * config/arc/arc.opt (mcmem): New option.
3142         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
3143         supply length for r/m alternative.
3144         (*extendqisi2_ac): Likewise.
3145         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
3146         r/Uex alternative.
3147         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
3148         (movhi_insn): Likewise.
3149         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
3150         (*zero_extendqihi2_i): Add r/Ucm alternative.
3151         (*zero_extendqisi2_ac): Likewise.
3152         (*zero_extendhisi2_i): Likewise.
3153         * config/arc/constraints.md (Uex): New memory constraint.
3154         (Ucm): New define_constraint.
3155         * config/arc/predicates.md (long_immediate_loadstore_operand):
3156         Return 0 for MEM with cmem_address address.
3157         (cmem_address_0): New predicates.
3158         (cmem_address_1): Likewise.
3159         (cmem_address_2): Likewise.
3160         (cmem_address): Likewise.
3161
3162 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3163
3164         * config/rs6000/rs6000.c (machine_function): Rename
3165         insn_chain_scanned_p to spe_insn_chain_scanned_p.
3166         (rs6000_stack_info): Adjust.
3167
3168 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
3169             Andrew Burgess  <andrew.burgess@embecosm.com>
3170
3171         * config/arc/constraints.md (Usd): Convert to define_constraint.
3172         (Us<): Likewise.
3173         (Us>): Likewise.
3174
3175 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3176
3177         PR target/70821
3178         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
3179         Add new peephole2 where the first insn is *mov<mode>_or instead of
3180         *mov<mode>_internal.
3181
3182 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
3183
3184         * tracer.c (bb_seen): Make static.
3185
3186 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
3187
3188         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
3189         support, setup defaults.
3190         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
3191         * config/arc/arc.c (arc_init): Add NPS400 support.
3192         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
3193         (TARGET_ARC700): NPS400 is also an ARC700.
3194         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
3195
3196 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
3197
3198         PR target/70668
3199         * config/nds32/nds32.md (casesi): Don't access the operands array
3200         out of bounds.
3201
3202 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3203
3204         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
3205         (or $-1,reg peephole2): Ditto.
3206         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
3207
3208 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
3209
3210         * doc/extend.texi (Common Function Attributes) [optimize]:
3211         Discourage use of the optimize attribute.
3212
3213 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
3214
3215         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
3216         special case builtin.
3217         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
3218         ALTIVEC_BUILTIN_VEC_ADDE.
3219         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3220         support for ALTIVEC_BUILTIN_VEC_ADDE.
3221         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3222         for __builtin_vec_adde.
3223
3224 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
3225
3226         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
3227         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
3228
3229 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3230
3231         PR testsuite/70595
3232         * doc/sourcebuild.texi (Effective-Target Keywords, Other
3233         attributes): Document cilkplus_runtime.
3234
3235 2016-04-28  Martin Jambor  <mjambor@suse.cz>
3236
3237         * tree-cfg.c (verify_expr): Verify that local declarations belong to
3238         this function.  Call verify_expr on MEM_REFs and bases of other
3239         handled_components.
3240
3241 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3242
3243         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
3244         for WORD_REGISTER_OPERATIONS to runtime check.
3245
3246 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3247
3248         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
3249
3250 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3251
3252         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
3253         big-endian compilation.
3254         * config/arc/arc.md (addf3): Likewise.
3255         (subdf3): Likewise.
3256         (muldf3): Likewise.
3257
3258 2016-04-28  Richard Biener  <rguenther@suse.de>
3259
3260         PR tree-optimization/70840
3261         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
3262         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
3263         Mark x * pow(x,c) -> pow(x,c+1) commutative.
3264         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
3265
3266 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3267
3268         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
3269         and explain why in a comment.
3270
3271 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3272
3273         * config/arc/arc.md (cpu_facility): Add fpx variant.
3274         (subdf3): Prohibit use reverse sub when assist operations option
3275         is enabled.
3276         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
3277         instructions only when FPX is enabled.
3278         * testsuite/gcc.target/arc/trsub.c: New test.
3279
3280 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3281
3282         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
3283         mult_operator when calculating "type" attribute.
3284         (*fop_<mode>_1_i387): Ditto.
3285         (*fop_xf_1_i387): Ditto.
3286         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
3287         Use std::swap to swap operands.  Use RTL expressions to generate
3288         converted pattern.
3289
3290 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3291             Joern Rennecke  <joern.rennecke@embecosm.com>
3292
3293         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
3294         declaration.
3295         (emit_pic_move): Remove.
3296         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
3297         * config/arc/arc.c (emit_pic_move): Removed.
3298         (TARGET_HAVE_TLS): Define.
3299         (arc_conditional_register_usage): Test for arc_tp_regno.
3300         (arc_print_operand, arc_print_operand_address): Handle TLS
3301         unspecs.
3302         (arc_needs_pcl_p): New function.
3303         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
3304         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
3305         (arc_raw_symbolic_reference_mentioned_p): Likewise.
3306         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
3307         (arc_legitimize_tls_address): Likewise.
3308         (DTPOFF_ZERO_SYM): Define.
3309         (arc_legitimize_pic_address): Make it static, handle TLS cases.
3310         (arc_output_pic_addr_const): Print TLS unspecs.
3311         (prepare_pic_move): New function, replaces emit_pic_move.
3312         (arc_legitimate_constant_p): Handle TLS unspecs.
3313         (arc_legitimate_address_p): Likewise.
3314         (arc_rewrite_small_data_p): Use assert for TLS constants.
3315         (prepare_move_operands): Use prepare_pic_move.
3316         (arc_legitimize_address): Legitimize tls addresses.
3317         (arc_epilogue_uses): Check for arc_tp_regno.
3318         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
3319         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
3320         Define.
3321         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
3322         Likewise.
3323         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
3324         %(arc_tls_extra_start_spec).
3325         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
3326         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
3327         (EH_USES): Define.
3328         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
3329         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
3330         (UNSPEC_TLS_OFF): Add.
3331         (R10_REG): Define.
3332         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
3333         (get_thread_pointersi): New patterns.
3334         * config/arc/arc.opt (mtp-regno): New option.
3335         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
3336         (move_dest_operand): Likewise.
3337         * configure: Regenerate.
3338         * configure.ac: Add arc*-*-* case to test for tls.
3339         * doc/invoke.texi (ARC options): Document mtp-regno.
3340
3341 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
3342
3343         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
3344         the new ARC HS SIMD instructions.
3345         (arc_preferred_simd_mode): New function.
3346         (arc_autovectorize_vector_sizes): Likewise.
3347         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
3348         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
3349         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
3350         (arc_init_builtins): Add new SIMD builtin types.
3351         (arc_split_move): Handle 64 bit vector moves.
3352         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
3353         (TARGET_PLUS_QMACW): Define.
3354         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
3355         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
3356         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
3357         (VSUBADD4H): New builtins.
3358         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
3359         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
3360
3361 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
3362             Matthias Klose  <doko@debian.org>
3363
3364         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
3365
3366 2016-04-28  Richard Biener  <rguenther@suse.de>
3367
3368         PR middle-end/70777
3369         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
3370         canonicalization.
3371
3372 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
3373
3374         * common/config/sh/sh-common.c: Remove SH5 support.
3375         * config/sh/constraints.md: Likewise.
3376         * config/sh/config/sh/elf.h: Likewise.
3377         * config/sh/linux.h: Likewise.
3378         * config/sh/netbsd-elf.h: Likewise.
3379         * config/sh/predicates.md: Likewise.
3380         * config/sh/sh-c.c: Likewise.
3381         * config/sh/sh-protos.h: Likewise.
3382         * config/sh/sh.c: Likewise.
3383         * config/sh/sh.h: Likewise.
3384         * config/sh/sh.md: Likewise.
3385         * config/sh/sh.opt: Likewise.
3386         * config/sh/sync.md: Likewise.
3387         * config/sh/sh64.h: Delete.
3388         * config/sh/shmedia.h: Likewise.
3389         * config/sh/shmedia.md: Likewise.
3390         * config/sh/sshmedia.h: Likewise.
3391         * config/sh/t-netbsd-sh5-64: Likewise.
3392         * config/sh/t-sh64: Likewise.
3393         * config/sh/ushmedia.h: Likewise.
3394
3395 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
3396
3397         * config/i386/i386.md (sign_extend to memory peephole2s): Use
3398         general_reg_operand instead of register_operand predicate.
3399
3400 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3401
3402         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
3403
3404 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
3405
3406         * match.pd (A - B > A, A + B < A): New transformations.
3407
3408 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
3409
3410         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
3411         which defaults to true.  Emit an outer pair of parentheses only if
3412         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
3413         don't emit parentheses for the right-hand operand.
3414
3415 2016-04-27  Jeff Law  <law@redhat.com>
3416
3417         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
3418
3419 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3420
3421         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
3422         (altivec_lvx_<mode>_internal): Document.
3423         (altivec_lvx_<mode>_2op): New define_insn.
3424         (altivec_lvx_<mode>_1op): Likewise.
3425         (altivec_lvx_<mode>_2op_si): Likewise.
3426         (altivec_lvx_<mode>_1op_si): Likewise.
3427         (altivec_stvx_<mode>): Remove.
3428         (altivec_stvx_<mode>_internal): Document.
3429         (altivec_stvx_<mode>_2op): New define_insn.
3430         (altivec_stvx_<mode>_1op): Likewise.
3431         (altivec_stvx_<mode>_2op_si): Likewise.
3432         (altivec_stvx_<mode>_1op_si): Likewise.
3433         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3434         Expand vec_ld and vec_st during parsing.
3435         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
3436         changes.
3437         (altivec_expand_stvx_be): Likewise.
3438         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
3439         address-masking behavior in RTL.
3440         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
3441         address-masking behavior in RTL.
3442         (altivec_expand_builtin): Change builtin code arguments for calls
3443         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
3444         (insn_is_swappable_p): Avoid incorrect swap optimization in the
3445         presence of lvx/stvx patterns.
3446         (alignment_with_canonical_addr): New function.
3447         (alignment_mask): Likewise.
3448         (find_alignment_op): Likewise.
3449         (recombine_lvx_pattern): Likewise.
3450         (recombine_stvx_pattern): Likewise.
3451         (recombine_lvx_stvx_patterns): Likewise.
3452         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
3453         stvx patterns from expand.
3454         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
3455         expansions.
3456         (vector_altivec_store_<mode>): Likewise.
3457
3458 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
3459
3460         * config/aarch64/aarch64.md
3461         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
3462         remove the "fp" attributes.
3463         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
3464         add the "simd" attributes.
3465         (*movdf_aarch64): Likewise.
3466         (*movtf_aarch64): Remove the "fp" attributes.
3467         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
3468         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
3469
3470 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3471
3472         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
3473         rtx to rtx_code_label *.
3474         * rtl.h (maybe_set_first_label_num): Likewise.
3475
3476 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3477
3478         * df-core.c (df_add_problem): Make the problem param be const.
3479         (df_remove_problem): Make local "problem" be const.
3480         * df-problems.c (problem_RD): Make const.
3481         (problem_LR): Likewise.
3482         (problem_LIVE): Likewise.
3483         (problem_MIR): Likewise.
3484         (problem_CHAIN): Likewise.
3485         (problem_WORD_LR): Likewise.
3486         (problem_NOTE): Likewise.
3487         (problem_MD): Likewise.
3488         * df-scan.c (problem_SCAN): Likewise.
3489         * df.h (struct df_problem): Make field "dependent_problem" be
3490         const.
3491         (struct dataflow): Likewise for field "problem".
3492         (df_add_problem): Make param const.
3493
3494 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3495
3496         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
3497         inter-unit moves to/from vector registers are enabled.  Do not disable
3498         for TARGET_MMX.
3499
3500 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3501
3502         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
3503         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
3504         #define to...
3505         (enum df_problem_id): ...this new enum.
3506         (struct df_problem): Convert field "id" from "int" to
3507         enum df_problem_id.
3508
3509 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
3510
3511         * rtl.def: Update comment for "things in the instruction chain" to
3512         reflect the removal of the leading "i" field for INSN_UID in
3513         r210360.  Fix bogus apostrophe.
3514
3515 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
3516
3517         * config/i386/i386.md
3518         (lea arith with mem operand + setcc peephole2): Set operator mode.
3519
3520 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3521
3522         PR target/70155
3523         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
3524         (dimode_scalar_to_vector_candidate_p): This.
3525         (timode_scalar_to_vector_candidate_p): New function.
3526         (scalar_to_vector_candidate_p): Likewise.
3527         (timode_check_non_convertible_regs): Likewise.
3528         (timode_remove_non_convertible_regs): Likewise.
3529         (remove_non_convertible_regs): Likewise.
3530         (remove_non_convertible_regs): Renamed to ...
3531         (dimode_remove_non_convertible_regs): This.
3532         (scalar_chain::~scalar_chain): Make it virtual.
3533         (scalar_chain::compute_convert_gain): Make it pure virtual.
3534         (scalar_chain::mark_dual_mode_def): Likewise.
3535         (scalar_chain::convert_insn): Likewise.
3536         (scalar_chain::convert_registers): Likewise.
3537         (scalar_chain::add_to_queue): Make it protected.
3538         (scalar_chain::emit_conversion_insns): Likewise.
3539         (scalar_chain::replace_with_subreg): Likewise.
3540         (scalar_chain::replace_with_subreg_in_insn): Likewise.
3541         (scalar_chain::convert_op): Likewise.
3542         (scalar_chain::convert_reg): Likewise.
3543         (scalar_chain::make_vector_copies): Likewise.
3544         (scalar_chain::convert_registers): New pure virtual function.
3545         (class dimode_scalar_chain): New class.
3546         (class timode_scalar_chain): Likewise.
3547         (scalar_chain::mark_dual_mode_def): Renamed to ...
3548         (dimode_scalar_chain::mark_dual_mode_def): This.
3549         (timode_scalar_chain::mark_dual_mode_def): New function.
3550         (timode_scalar_chain::convert_insn): Likewise.
3551         (dimode_scalar_chain::convert_registers): Likewise.
3552         (scalar_chain::compute_convert_gain): Renamed to ...
3553         (dimode_scalar_chain::compute_convert_gain): This.
3554         (scalar_chain::replace_with_subreg): Renamed to ...
3555         (dimode_scalar_chain::replace_with_subreg): This.
3556         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
3557         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
3558         (scalar_chain::make_vector_copies): Renamed to ...
3559         (dimode_scalar_chain::make_vector_copies): This.
3560         (scalar_chain::convert_reg): Renamed to ...
3561         (dimode_scalar_chain::convert_reg ): This.
3562         (scalar_chain::convert_op): Renamed to ...
3563         (dimode_scalar_chain::convert_op): This.
3564         (scalar_chain::convert_insn): Renamed to ...
3565         (dimode_scalar_chain::convert_insn): This.
3566         (scalar_chain::convert): Call convert_registers.
3567         (convert_scalars_to_vector): Change to scalar_chain pointer to
3568         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
3569         in 32-bit mode.  Delete scalar_chain pointer.  Call
3570         free_dominance_info in 64-bit mode.
3571         (pass_stv::gate): Remove TARGET_64BIT check.
3572         (ix86_option_override): Put the 64-bit STV pass before the CSE
3573         pass.
3574
3575 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
3576
3577         * dwarf2out.h (struct dw_loc_descr_node): Remove the
3578         dw_loc_frame_offset field.
3579         * dwarf2out.c (new_loc_descr): Likewise.
3580         (resolve_args_picking_1): Turn the VISITED hash set into a
3581         FRAME_OFFSET hash map. Use it to associate a frame offset to
3582         visited nodes. Remove uses of the CHECKING_P macro.
3583         (resolve_args_picking): Update call to resolve_args_picking_1.
3584
3585 2016-04-27  Martin Liska  <mliska@suse.cz>
3586
3587         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
3588         (free_loop_data): Release vuses of groups.
3589
3590 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
3591
3592         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
3593         instead of redundant use_id and boolean have_use_for.
3594         (struct iv_use): Change sub_id into group_id.  Remove field next.
3595         Move fields: related_cands, n_map_members, cost_map and selected
3596         to ...
3597         (struct iv_group): ... here.  New structure.
3598         (struct iv_common_cand): Use structure declaration directly.
3599         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
3600         (MAX_CONSIDERED_USES): Rename macro to ...
3601         (MAX_CONSIDERED_GROUPS): ... here.
3602         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
3603         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
3604         (dump_uses): Rename to ...
3605         (dump_groups): ... here.  Update all uses.
3606         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
3607         (find_induction_variables): Refactor format of dump information.
3608         (record_sub_use): Delete.
3609         (record_use): Update all uses.
3610         (record_group): New function.
3611         (record_group_use, find_interesting_uses_op): Call above functions.
3612         Update all uses.
3613         (find_interesting_uses_cond): Ditto.
3614         (group_compare_offset): New function.
3615         (split_all_small_groups): Rename to ...
3616         (split_small_address_groups_p): ... here.  Update all uses.
3617         (split_address_groups):  Update all uses.
3618         (find_interesting_uses): Refactor format of dump information.
3619         (add_candidate_1): Update all uses.  Remove redundant check on iv,
3620         base and step.
3621         (add_candidate, record_common_cand): Remove redundant assert.
3622         (add_iv_candidate_for_biv): Update use.
3623         (add_iv_candidate_derived_from_uses): Update all uses.
3624         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
3625         (alloc_use_cost_map): Ditto.
3626         (set_use_iv_cost, get_use_iv_cost): Rename to ...
3627         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
3628         (determine_use_iv_cost_generic): Ditto.
3629         (determine_group_iv_cost_generic): Ditto.
3630         (determine_use_iv_cost_address): Ditto.
3631         (determine_group_iv_cost_address): Ditto.
3632         (determine_use_iv_cost_condition): Ditto.
3633         (determine_group_iv_cost_cond): Ditto.
3634         (determine_use_iv_cost): Ditto.
3635         (determine_group_iv_cost): Ditto.
3636         (set_autoinc_for_original_candidates): Update all uses.
3637         (find_iv_candidates): Update all uses.  Refactor dump information.
3638         (determine_use_iv_costs): Ditto.
3639         (determine_iv_costs): Ditto.
3640         (iv_ca_cand_for_use): Rename to ...
3641         (iv_ca_cand_for_group): ... here.  Update all uses.
3642         (iv_ca_add_use, iv_ca_add_group): Ditto.
3643         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
3644         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
3645         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
3646         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
3647         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
3648         (create_new_iv, adjust_iv_update_pos): Ditto.
3649         (rewrite_use_address): Delete.
3650         (rewrite_use_address_1): Rename to ...
3651         (rewrite_use_address): ... here.
3652         (rewrite_use_compare): Update all uses.
3653         (rewrite_use): Delete.
3654         (rewrite_uses): Rename to ...
3655         (rewrite_groups): ... here.  Update all uses.
3656         (remove_unused_ivs, free_loop_data): Update all uses.
3657         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
3658
3659 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3660
3661         * rtlanal.c (nonzero_bits1): Convert preprocessor check
3662         for WORD_REGISTER_OPERATIONS to runtime check.
3663
3664 2016-04-27  Richard Biener  <rguenther@suse.de>
3665
3666         PR ipa/70760
3667         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
3668         aggregate_value_p to determine if a function result is
3669         returned by reference.
3670         (ipa_pta_execute): Functions having their address taken are
3671         not automatically nonlocal.
3672
3673 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3674
3675         PR sanitizer/70683
3676         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
3677         * fold-const.c (operand_equal_p): If flag_checking and
3678         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
3679         and if it returns non-zero, assert iterative_hash_expr on both
3680         args is the same.
3681
3682 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3683
3684         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
3685
3686 2016-04-27  Nick Clifton  <nickc@redhat.com>
3687
3688         PR middle-end/49889
3689         * varasm.c (merge_weak): Generate an error if an attempt is made
3690         to convert a non-weak static function into a weak, public function.
3691
3692 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3693
3694         * params.def (MAX_PARTITION_SIZE): New param.
3695         * doc/invoke.texi: Document lto-max-partition.
3696
3697 2016-04-27  Richard Biener  <rguenther@suse.de>
3698
3699         PR ipa/70785
3700         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
3701         function cummulating used_from_other_partition, externally_visible
3702         and force_output from aliases.
3703         (refered_from_nonlocal_var): Likewise.
3704         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
3705         node flags properly.
3706
3707 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
3708
3709         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
3710         (-Wmemset-elt-size): New item.
3711
3712 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3713
3714         PR ada/70759
3715         * stor-layout.h (internal_reference_types): Delete.
3716         * stor-layout.c (reference_types_internal): Likewise.
3717         (internal_reference_types): Likewise.
3718         (layout_type) <REFERENCE_TYPE>: Adjust.
3719
3720 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
3721
3722         PR sanitizer/70683
3723         * tree.h (inchash::add_expr): Add FLAGS argument.
3724         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
3725         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
3726         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
3727         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
3728         if swap_tree_comparison (code) is smaller than code, hash that
3729         and arguments in the other order.  Hash CONVERT_EXPR the same
3730         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
3731         of ADDR_EXPR of decl as the decl itself.  Add or remove
3732         OEP_ADDRESS_OF from recursive flags as needed.  For
3733         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
3734         operands commutatively and only the third one normally.
3735         For internal CALL_EXPR hash in CALL_EXPR_IFN.
3736
3737 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3738
3739         * config/rtems.h (LIB_SPEC): Add -latomic.
3740
3741 2016-04-27  Joel Sherrill  <joel@rtems.org>
3742
3743         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
3744         xilink.ld and flags not relevant to RTEMS.
3745
3746 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
3747
3748         * toplev.c (backend_init_target): Avoid calling init_reload when using
3749         LRA.
3750
3751 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3752
3753         * reorg.c (try_merge_delay_insns): Declare i and j inside the
3754         for loops rather than one for the whole function.
3755
3756 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3757
3758         * match.pd (X + CST CMP X): New transformation.
3759
3760 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
3761
3762         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
3763         * fold-const.c (fold_binary_loc): Remove 2 transformations
3764         superseded by match.pd.
3765         * match.pd (x+x -> x*2): Generalize to integers.
3766
3767 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
3768
3769         * config/i386/i386.md (operation on memory peephole): Duplicate an
3770         existing peephole and adapt it to match lea rather than an operation
3771         that clobbers CC.
3772
3773         PR rtl-optimization/57193
3774         * opts.c (default_options_table): Add OPT_frename_registers at -O2
3775         and above.
3776         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
3777
3778 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3779
3780         * tree-if-conv.c (any_pred_load_store): New static variable.
3781         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
3782         any_pred_load_store instead of and_mask_load_store.
3783         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
3784         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
3785         (combine_blocks, tree_if_conversion): Ditto.
3786
3787 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
3788
3789         PR tree-optimization/70771
3790         PR tree-optimization/70775
3791         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
3792         virtual PHI nodes.  Delete parameter.
3793         (if_convertible_loop_p_1): Delete argument to above function.
3794         (predicate_all_scalar_phis): Delete code handling single-argument
3795         PHIs.
3796         (tree_if_conversion): Mark and update virtual SSA.
3797
3798 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3799
3800         PR target/61821
3801         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
3802         (x86_elf_aligned_common): Rename to ...
3803         (x86_elf_aligned_decl_common): ... this.
3804         Add decl arg.  Switch to .lbss for largecomm object.  Use
3805         LARGECOMM_SECTION_ASM_OP.
3806         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
3807         renaming.
3808         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
3809         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
3810         Pass new decl arg.
3811         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
3812         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
3813
3814 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3815
3816         PR target/59407
3817         * config/i386/i386.c (SECTION_LARGE): Define.
3818         (x86_64_elf_select_section): Set it for large data/bss sections.
3819         Only clear SECTION_WRITE for .lrodata.
3820         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
3821         data/bss sections.
3822         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
3823         * varasm.c (default_elf_asm_named_section): Grow flagchars.
3824         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
3825         SECTION_MACH_DEP.
3826         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
3827         * doc/tm.texi: Regenerate.
3828
3829 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
3830
3831         PR bootstrap/70704
3832         * configure.ac (--enable-checking): Document extra flag, for
3833         non-release builds default to --enable-checking=yes,extra.
3834         If misc checking and extra checking, define CHECKING_P to 2 instead
3835         of 1.
3836         * common.opt (fchecking=): Add.
3837         * doc/invoke.texi (-fchecking=): Document.
3838         * doc/install.texi: Document --enable-checking changes.
3839         * configure: Regenerated.
3840         * config.in: Regenerated.
3841
3842 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3843
3844         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
3845         attribute instead of which_alternative.
3846         * config/i386/sse.md (*mov<mode>_internal): Ditto.
3847         Use EXT_REX_SSE_REG_P where appropriate.
3848
3849 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3850
3851         * config/i386/predicates.md (const0_operand): Do not match
3852         const_wide_int code.
3853         (const1_operand): Ditto.
3854
3855 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3856
3857         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
3858         for SSE constm1 operands and TARGET_AVX512VL.
3859         (*movti_internal): Ditto.
3860         (*mov<mode>_or): Use constm1_operand predicate.
3861         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
3862         for SSE vector_all_ones operands and TARGET_AVX512VL.
3863         * config/i386/predicates.md (constm1_operand): New predicate.
3864         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
3865         emission of constant -1 load.
3866
3867 2016-04-25  Jason Merrill  <jason@redhat.com>
3868
3869         * gdbinit.in: Skip is-a.h.
3870
3871         * attribs.c (register_scoped_attributes): Fix logic.
3872         * attribs.h: Declare register_scoped_attributes.
3873
3874 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3875
3876         * config/rs6000/rs6000-builtin.def: Correct pasto error for
3877         stxvd2x and stxvw4x built-in functions.
3878
3879 2016-04-25  DJ Delorie  <dj@redhat.com>
3880
3881         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
3882         (ashrhi3): Likewise.
3883         (lshrhi3): Likewise.
3884
3885 2016-04-25  Richard Biener  <rguenther@suse.de>
3886
3887         PR tree-optimization/70780
3888         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
3889         wasn't visited yet.
3890         (compute_antic): Mark blocks with abnormal preds as visited as
3891         they have a final empty antic-in solution already.
3892
3893 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3894
3895         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
3896
3897 2016-04-25  Michael Collison  <michael.collison@linaro.org>
3898
3899         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
3900         mode is VQI to improve mixed mode vectorization.
3901         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
3902         define_insn to match low half of signed vaddw.
3903         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
3904         define_insn to match high half of signed vaddw.
3905         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
3906         define_insn to match low half of unsigned vaddw.
3907         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
3908         define_insn to match high half of unsigned vaddw.
3909         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
3910         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3911         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
3912         for new function.
3913         (arm_simd_check_vect_par_cnst_half_p): Likewise.
3914         * config/arm/predicates.md (vect_par_constant_high): Support
3915         big endian and simplify by calling
3916         arm_simd_check_vect_par_cnst_half
3917         (vect_par_constant_low): Likewise.
3918
3919 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
3920
3921         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
3922         predicate for operand 2.
3923
3924 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
3925             H.J. Lu  <hongjiu.lu@intel.com>
3926
3927         * config/i386/i386-protos.h (standard_sse_constant_p): Add
3928         machine_mode argument.
3929         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
3930         constm1_rtx operands.  For VOIDmode constants, get mode from
3931         pred_mode.  Check mode size if the mode is supported by ABI.
3932         (standard_sse_constant_opcode): Do not use standard_constant_p.
3933         Strictly check ABI support for all-ones operands.
3934         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
3935         immediates. Update calls to standard_sse_constant_p.
3936         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
3937         (ix86_rtx_costs): Ditto.
3938         * config/i386/i386.md (*movxi_internal_avx512f): Use
3939         nonimmediate_or_sse_const_operand instead of vector_move_operand.
3940         Use (v,BC) alternative instead of (v,C). Use register_operand
3941         checks instead of MEM_P.
3942         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
3943         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
3944         isa attribute.  Use register_operand checks instead of MEM_P.
3945         (*movti_internal): Use nonimmediate_or_sse_const_operand for
3946         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
3947         alternative and corresponding sse2 isa attribute.
3948         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
3949         to standard_sse_constant_p.
3950         (FP constant splitters): Ditto.
3951         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
3952         (C): Ditto.
3953         * config/i386/predicates.md (constm1_operand): Remove.
3954         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
3955         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
3956         vector_all_ones_operand instead of constm1_operand.
3957
3958 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3959
3960         * print-rtl.c (print_rtx_insn_vec): New function.
3961         * print-rtl.h: New prototype.
3962         * store-motion.c (struct st_expr): Make avail_stores a vector.
3963         (st_expr_entry): Adjust.
3964         (free_st_expr_entry): Likewise.
3965         (print_store_motion_mems): Likewise.
3966         (find_moveable_store): Likewise.
3967         (compute_store_table): Likewise.
3968         (delete_store): Likewise.
3969         (build_store_vectors): Likewise.
3970
3971 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3972
3973         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
3974
3975 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3976
3977         * vec.h (vec_safe_contains): New function.
3978         (vec::contains): Likewise.
3979         (vec::begin): Likewise.
3980         (vec::end): Likewise.
3981
3982 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
3983
3984         PR sanitizer/70712
3985         * cfgexpand.c (expand_stack_vars): Fix typo.
3986
3987 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3988
3989         * system.h (list, map, set, vector): Include conditionally.
3990         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
3991         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
3992         * ipa-icf.c (INCLUDE_LIST): Define.
3993         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
3994         * config/sh/sh.c (INCLUDE_VECTOR): Define.
3995         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
3996         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
3997         * cp/logic.cc (INCLUDE_LIST): Define.
3998         * fortran/trans-common.c (INCLUDE_MAP): Define.
3999
4000 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
4001
4002         * auto-profile.c: Remove <string.h> include.
4003         * ipa-icf-gimple.c: Remove <list> include.
4004         * diagnostic.c: Remove <new> include.
4005         * genmatch.c: Likewise.
4006         * pretty-print.c: Likewise.
4007         * toplev.c: Likewise
4008         * c/c-objc-common.c: Likewise.
4009         * cp/error.c: Likewise.
4010         * fortran/error.c: Likewise.
4011
4012 2016-04-22  Richard Biener  <rguenther@suse.de>
4013
4014         * lto-streamer-in.c (input_ssa_names): Do not allocate
4015         GIMPLE_NOP for all SSA names.
4016         * lto-streamer-out.c (output_ssa_names): Do not output
4017         SSA names that should have been released.
4018
4019 2016-04-22  Richard Biener  <rguenther@suse.de>
4020
4021         PR tree-optimization/70740
4022         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
4023         VDEF.
4024
4025 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4026
4027         PR target/70750
4028         * config/i386/predicates.md (call_insn_operand): Replace
4029         sibcall_memory_operand with memory_operand.
4030
4031 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
4032
4033         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
4034         has_single_use() tests.
4035         (register_edge_assert_for_1): Likewise.
4036         (find_assert_locations_1): Check the liveness bitmap instead of
4037         checking has_single_use().
4038
4039 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
4040
4041         PR target/70728
4042         * gcc/config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
4043         Extract AVX-512BW constraint from AVX.
4044
4045 2016-04-21  Richard Biener  <rguenther@suse.de>
4046
4047         PR tree-optimization/70725
4048         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
4049         for phi_convertible_by_degenerating_args.
4050         (predicate_all_scalar_phis): Handle single-argument PHIs.
4051
4052 2016-04-21  Richard Biener  <rguenther@suse.de>
4053
4054         PR middle-end/70747
4055         * fold-const.c (fold_comparison): Return properly typed
4056         constant boolean.
4057
4058 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
4059
4060         PR tree-optimization/70715
4061         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4062         after expanding BASE using expand_simple_operations.
4063
4064 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4065
4066         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
4067         New transformations.
4068
4069 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
4070
4071         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
4072
4073 2016-04-20  Jan Hubicka  <jh@suse.cz>
4074
4075         * ipa-inline.c (can_inline_edge_p): Pass caller info to
4076         ultiimate_alias_target.
4077         (update_callee_keys): Likewise.
4078         (lookup_recursive_calls): Likewise.
4079         (speculation_useful_p): Likewise.
4080
4081 2016-04-20  Jan Hubicka  <jh@suse.cz>
4082
4083         PR ipa/70018
4084         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
4085         (set_nothrow_flag_1): ... this; handle interposition correctly;
4086         recurse on aliases and thunks.
4087         (cgraph_node::set_nothrow_flag): New.
4088         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
4089         functions compiled with non-call exceptions that binds to current
4090         def.
4091         (propagate_nothrow): Be safe WRT interposition.
4092         * cgraph.h (set_nothrow_flag): Update prototype.
4093
4094 2016-04-18  Jan Hubicka  <jh@suse.cz>
4095
4096         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4097         max_loop_iterations_int.
4098         (tree_unswitch_outer_loop): Likewise.
4099
4100 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4101
4102         PR tree-optimization/69489
4103         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
4104         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
4105         Revise dump message.
4106         (if_convertible_bb_p): Remove check on edge count of basic block's
4107         predecessors.
4108
4109 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4110
4111         PR tree-optimization/56625
4112         PR tree-optimization/69489
4113         * tree-data-ref.h (DR_INNERMOST): New macro.
4114         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
4115         hashing struct innermost_loop_behavior.
4116         (ref_DR_map): Remove.
4117         (innermost_DR_map): New map.
4118         (baseref_DR_map): Revise comment.
4119         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
4120         to innermost_DR_map accroding to its innermost loop behavior.
4121         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
4122         to its innermost loop behavior.
4123         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
4124         Add initialization for innermost_DR_map.  Record memory reference
4125         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
4126         have innermost loop behavior.
4127         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
4128         innermost_DR_map.
4129
4130 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
4131
4132         * config/i386/i386.md (*lea<mode>_general_1): Rename from
4133         *lea_general_1.  Use explicit SWI12 mode interator.
4134         (*lea<mode>_general_2): Rename from *lea_general_2.
4135         Use explicit SWI12 mode interator.
4136         (*lea<mode>_general_3): Rename from *lea_general_3.
4137         Use explicit SWI12 mode interator.
4138         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
4139         Use explicit SWI12 mode interator.
4140         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
4141         Use explicit SWI48 mode interator.
4142
4143 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4144
4145         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
4146         Short-cut unaligned load and store cases.  Handle all integer
4147         vector modes.
4148         (ix86_expand_vector_move_misalign): Short-cut unaligned load
4149         and store cases.  Call ix86_avx256_split_vector_move_misalign
4150         directly without checking mode class.
4151
4152 2016-04-20  Andrew Pinski  <apinski@cavium.com>
4153             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4154
4155         PR target/64971
4156         * config/aarch64/aarch64.md (sibcall): Force call
4157         address to be DImode for ILP32.
4158         (sibcall_value): Likewise.
4159
4160 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4161
4162         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
4163
4164 2016-04-20  Richard Biener  <rguenther@suse.de>
4165
4166         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
4167         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
4168         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
4169         (maybe_push_res_to_seq): Adjust.
4170         * gimple-fold.c (maybe_build_generic_op): Likewise.
4171
4172 2016-04-20  Marek Polacek  <polacek@redhat.com>
4173
4174         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
4175         rather than true.
4176
4177 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
4178
4179         * config/i386/sse.md (vec_unpacks_lo_hi): Always
4180         use kmovw to support AVX512F target.
4181
4182 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
4183
4184         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
4185
4186 2016-04-20  Marek Polacek  <polacek@redhat.com>
4187
4188         PR tree-optimization/70725
4189         * tree-if-conv.c (is_false_predicate): New function.
4190         (predicate_mem_writes): Use it.
4191
4192 2016-04-20  Richard Biener  <rguenther@suse.de>
4193
4194         PR tree-optimization/70726
4195         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
4196         shift amounts from a pattern stmt operand.
4197
4198 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4199
4200         PR target/70674
4201         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
4202         stack_restore_from_fpr pattern when restoring r15.
4203         (s390_optimize_prologue): Strip away the memory barrier in the
4204         parallel when trying to get rid of restore insns.
4205         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
4206         definition for loading the stack pointer from an FPR.  Compared to
4207         the normal move insn this pattern includes a full memory barrier.
4208
4209 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
4210
4211         PR middle-end/70680
4212         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
4213         implicitly linear or lastprivate iterator on the outer context.
4214
4215 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4216
4217         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
4218         alignment check.
4219         * config/i386/i386.md (ssememalign): Removed.
4220         * config/i386/sse.md: Remove ssememalign attribute from patterns.
4221
4222 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
4223
4224         PR target/69201
4225         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
4226         const short * to __builtin_ia32_loaddquhi512_mask.
4227         (_mm512_maskz_loadu_epi16): Likewise.
4228         (_mm512_mask_storeu_epi16): Pass short * to
4229         __builtin_ia32_storedquhi512_mask.
4230         (_mm512_mask_loadu_epi8): Pass const char * to
4231         __builtin_ia32_loaddquqi512_mask.
4232         (_mm512_maskz_loadu_epi8): Likewise.
4233         (_mm512_mask_storeu_epi8): Pass char * to
4234         __builtin_ia32_storedquqi512_mask.
4235         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
4236         const double * to __builtin_ia32_loadupd512_mask.
4237         (_mm512_mask_loadu_pd): Likewise.
4238         (_mm512_maskz_loadu_pd): Likewise.
4239         (_mm512_storeu_pd): Pass double * to
4240         __builtin_ia32_storeupd512_mask.
4241         (_mm512_mask_storeu_pd): Likewise.
4242         (_mm512_loadu_ps): Pass const float * to
4243         __builtin_ia32_loadups512_mask.
4244         (_mm512_mask_loadu_ps): Likewise.
4245         (_mm512_maskz_loadu_ps): Likewise.
4246         (_mm512_storeu_ps): Pass float * to
4247         __builtin_ia32_storeups512_mask.
4248         (_mm512_mask_storeu_ps): Likewise.
4249         (_mm512_mask_loadu_epi64): Pass const long long * to
4250         __builtin_ia32_loaddqudi512_mask.
4251         (_mm512_maskz_loadu_epi64): Likewise.
4252         (_mm512_mask_storeu_epi64): Pass long long *
4253         to __builtin_ia32_storedqudi512_mask.
4254         (_mm512_loadu_si512): Pass const int * to
4255         __builtin_ia32_loaddqusi512_mask.
4256         (_mm512_mask_loadu_epi32): Likewise.
4257         (_mm512_maskz_loadu_epi32): Likewise.
4258         (_mm512_storeu_si512): Pass int * to
4259         __builtin_ia32_storedqusi512_mask.
4260         (_mm512_mask_storeu_epi32): Likewise.
4261         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
4262         char * to __builtin_ia32_storedquqi256_mask.
4263         (_mm_mask_storeu_epi8): Likewise.
4264         (_mm256_mask_loadu_epi16): Pass const short * to
4265         __builtin_ia32_loaddquhi256_mask.
4266         (_mm256_maskz_loadu_epi16): Likewise.
4267         (_mm_mask_loadu_epi16): Pass const short * to
4268         __builtin_ia32_loaddquhi128_mask.
4269         (_mm_maskz_loadu_epi16): Likewise.
4270         (_mm256_mask_loadu_epi8): Pass const char * to
4271         __builtin_ia32_loaddquqi256_mask.
4272         (_mm256_maskz_loadu_epi8): Likewise.
4273         (_mm_mask_loadu_epi8): Pass const char * to
4274         __builtin_ia32_loaddquqi128_mask.
4275         (_mm_maskz_loadu_epi8): Likewise.
4276         (_mm256_mask_storeu_epi16): Pass short * to.
4277         __builtin_ia32_storedquhi256_mask.
4278         (_mm_mask_storeu_epi16): Pass short * to.
4279         __builtin_ia32_storedquhi128_mask.
4280         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
4281         const double * to __builtin_ia32_loadupd256_mask.
4282         (_mm256_maskz_loadu_pd): Likewise.
4283         (_mm_mask_loadu_pd): Pass onst double * to
4284         __builtin_ia32_loadupd128_mask.
4285         (_mm_maskz_loadu_pd): Likewise.
4286         (_mm256_mask_storeu_pd): Pass double * to
4287         __builtin_ia32_storeupd256_mask.
4288         (_mm_mask_storeu_pd): Pass double * to
4289         __builtin_ia32_storeupd128_mask.
4290         (_mm256_mask_loadu_ps): Pass const float * to
4291         __builtin_ia32_loadups256_mask.
4292         (_mm256_maskz_loadu_ps): Likewise.
4293         (_mm_mask_loadu_ps): Pass const float * to
4294         __builtin_ia32_loadups128_mask.
4295         (_mm_maskz_loadu_ps): Likewise.
4296         (_mm256_mask_storeu_ps): Pass float * to
4297         __builtin_ia32_storeups256_mask.
4298         (_mm_mask_storeu_ps): ass float * to
4299         __builtin_ia32_storeups128_mask.
4300         (_mm256_mask_loadu_epi64): Pass const long long * to
4301         __builtin_ia32_loaddqudi256_mask.
4302         (_mm256_maskz_loadu_epi64): Likewise.
4303         (_mm_mask_loadu_epi64): Pass const long long * to
4304         __builtin_ia32_loaddqudi128_mask.
4305         (_mm_maskz_loadu_epi64): Likewise.
4306         (_mm256_mask_storeu_epi64): Pass long long * to
4307         __builtin_ia32_storedqudi256_mask.
4308         (_mm_mask_storeu_epi64): Pass long long * to
4309         __builtin_ia32_storedqudi128_mask.
4310         (_mm256_mask_loadu_epi32): Pass const int * to
4311         __builtin_ia32_loaddqusi256_mask.
4312         (_mm256_maskz_loadu_epi32): Likewise.
4313         (_mm_mask_loadu_epi32): Pass const int * to
4314         __builtin_ia32_loaddqusi128_mask.
4315         (_mm_maskz_loadu_epi32): Likewise.
4316         (_mm256_mask_storeu_epi32): Pass int * to
4317         __builtin_ia32_storedqusi256_mask.
4318         (_mm_mask_storeu_epi32): Pass int * to
4319         __builtin_ia32_storedqusi128_mask.
4320         * config/i386/i386-builtin-types.def (PCSHORT): New.
4321         (PINT64): Likewise.
4322         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
4323         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
4324         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
4325         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
4326         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
4327         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
4328         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
4329         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
4330         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
4331         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
4332         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
4333         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
4334         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
4335         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
4336         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
4337         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
4338         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
4339         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
4340         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
4341         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
4342         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
4343         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
4344         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
4345         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
4346         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
4347         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
4348         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
4349         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
4350         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
4351         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
4352         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
4353         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
4354         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
4355         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
4356         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
4357         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
4358         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
4359         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
4360         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
4361         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
4362         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
4363         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
4364         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
4365         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
4366         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
4367         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
4368         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
4369         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
4370         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
4371         use UNSPEC_STOREU.
4372         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
4373         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
4374         load nor store.
4375         (ix86_expand_vector_move_misalign): Likewise.
4376         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
4377         to scalar function prototype for unaligned load/store builtins.
4378         (ix86_expand_special_args_builtin): Updated.
4379         * config/i386/sse.md (UNSPEC_LOADU): Removed.
4380         (UNSPEC_STOREU): Likewise.
4381         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
4382         (VI_ULOADSTORE_F_AVX512VL): Likewise.
4383         (ssescalarsize): Handle V4TI, V2TI and V1TI.
4384         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4385         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
4386         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
4387         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
4388         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
4389         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
4390         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
4391         (<avx512>_storedqu<mode>_mask): Likewise.
4392         (*sse4_2_pcmpestr_unaligned): Likewise.
4393         (*sse4_2_pcmpistr_unaligned): Likewise.
4394         (*mov<mode>_internal): Renamed to ...
4395         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
4396         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
4397         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
4398         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
4399
4400 2016-04-19  Richard Biener  <rguenther@suse.de>
4401
4402         PR tree-optimization/70171
4403         * tree-ssa-phiprop.c: Include stor-layout.h.
4404         (phiprop_insert_phi): Handle the aggregate copy case.
4405         (propagate_with_phi): Likewise.
4406
4407 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
4408
4409         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
4410         instead of simplify_gen_subreg (... , 0).
4411         (ix86_delegitimize_address): Ditto.
4412         (ix86_split_divmod): Ditto.
4413         (ix86_split_copysign_const): Ditto.
4414         (ix86_split_copysign_var): Ditto.
4415         (ix86_expand_args_builtin): Ditto.
4416         (ix86_expand_round_builtin): Ditto.
4417         (ix86_expand_special_args_builtin): Ditto.
4418         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
4419         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
4420         (udivmodqi4): Ditto.
4421         (absneg splitters): Ditto.
4422         (*jcc_bt<mode>_1): Ditto.
4423
4424 2016-04-19  Richard Biener  <rguenther@suse.de>
4425
4426         PR tree-optimization/70724
4427         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
4428         restoring out from ...
4429         (free_scc_vn): ... here.
4430         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
4431         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
4432         tail merging.
4433         (pass_fre::execute): Restore SSA info.
4434
4435 2016-04-19  Richard Biener  <rguenther@suse.de>
4436
4437         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
4438         * gimple-walk.c (walk_gimple_op): Initialize it.
4439         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
4440         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
4441         remapping SSA names of defs.
4442         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
4443         adjustment.
4444
4445 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
4446
4447         PR middle-end/70689
4448         * lra-constraints.c (equiv_substition_p): New.
4449         (process_alt_operands): Use it.
4450         (swap_operands): Swap it.
4451         (curr_insn_transform): Update it.
4452
4453 2016-04-18  Michael Matz  <matz@suse.de>
4454
4455         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
4456         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
4457         * tree-core.h (tree_type_common.align): Use bit-field.
4458         (tree_type_common.spare): New.
4459         (tree_decl_common.off_align): Make smaller.
4460         (tree_decl_common.align): Use bit-field.
4461
4462         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
4463         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
4464         (scan_sharing_clauses): Ditto.
4465         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4466         (omp_finish_file): Ditto.
4467         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
4468         (layout_decl): Ditto.
4469         (relayout_decl): Ditto.
4470         (finalize_record_size): Use SET_TYPE_ALIGN.
4471         (finalize_type_size): Ditto.
4472         (finish_builtin_struct): Ditto.
4473         (layout_type): Ditto.
4474         (initialize_sizetypes): Ditto.
4475         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
4476         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
4477         (lookup_field_for_decl): Use SET_DECL_ALIGN.
4478         (get_chain_field): Ditto.
4479         (get_trampoline_type): Ditto.
4480         (get_nl_goto_field): Ditto.
4481         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4482         SET_DECL_ALIGN.
4483         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
4484         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
4485         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
4486         (build_qualified_type): Use SET_TYPE_ALIGN.
4487         (build_aligned_type, build_range_type_1): Ditto.
4488         (build_atomic_base): Ditto.
4489         (build_common_tree_nodes): Ditto.
4490         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
4491         (expand_one_stack_var_at): Ditto.
4492         * coverage.c (build_var): Use SET_DECL_ALIGN.
4493         * except.c (init_eh): Ditto.
4494         * function.c (assign_parm_setup_block): Ditto.
4495         * symtab.c (increase_alignment_1): Ditto.
4496         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
4497         * tree-vect-stmts.c (ensure_base_align): Ditto.
4498         * varasm.c (align_variable): Ditto.
4499         (assemble_variable): Ditto.
4500         (build_constant_desc): Ditto.
4501         (output_constant_def_contents): Ditto.
4502
4503         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
4504         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
4505         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
4506         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
4507         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
4508
4509 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
4510
4511         PR target/70708
4512         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
4513         replace %vmovsd with "%vmovq".
4514         (vec_concatv2df): Likewise.
4515
4516 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
4517
4518         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
4519         (*vec_extractv2si_0): Ditto.
4520         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
4521         (zero_extended_scalar_load_operand splitters): Ditto.
4522         (vec_extract splitters): Ditto.
4523         (*vec_extractv4si_0_zext): Ditto.
4524         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
4525         and lowpart_subreg.
4526         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
4527         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
4528         (*sse4_1_extractps): Use lowpart_subreg.
4529         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
4530
4531 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4532
4533         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
4534         gld requirements.
4535         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
4536         Mention Solaris 11 packaging changes.
4537         Update gas and gld requirements.
4538         Remove reference to pre-Solaris 10 bug.
4539         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
4540         systems and bugs.
4541         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
4542         with cc.
4543
4544 2016-04-17  Jan Hubicka  <jh@suse.cz>
4545
4546         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
4547         max_loop_iterations_int.
4548
4549 2016-04-18  Richard Biener  <rguenther@suse.de>
4550
4551         PR tree-optimization/43434
4552         * tree-ssa-structalias.c (struct vls_data): New.
4553         (visit_loadstore): Handle all pointer-based accesses.
4554         (compute_dependence_clique): Compute a bitmap of restrict tags
4555         assigned bases and pass it to visit_loadstore.
4556
4557 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
4558
4559         PR target/70711
4560         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
4561         armv8.1-a and armv8.1-a+crc.
4562
4563 2016-04-18  Richard Biener  <rguenther@suse.de>
4564
4565         PR tree-optimization/70701
4566         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
4567         references after translating through a memcpy.
4568
4569 2016-04-18  Richard Biener  <rguenther@suse.de>
4570
4571         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
4572         (compute_antic): ... here.  For partial antic use regular
4573         postorder and scrap iteration.
4574         (compute_partial_antic_aux): Remove unused return value.
4575         (init_pre): Do not allocate postorder.
4576         (fini_pre): Do not free postorder.
4577
4578 2016-04-18  Richard Biener  <rguenther@suse.de>
4579
4580         PR middle-end/37870
4581         * expmed.c (extract_bit_field_1): Remove broken case
4582         using a wider MODE_INT mode.
4583
4584 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
4585
4586         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
4587         unless compiling with at least GCC-4.8.
4588
4589 2016-04-17  Jan Hubicka  <jh@suse.cz>
4590
4591         PR bootstrap/70706
4592         * graphite.c (graphite_finalize): Update call to
4593         tree_estimate_probability.
4594         * predict.h (tree_estimate_probability): Update prototype.
4595
4596 2016-04-17  Jan Hubicka  <jh@suse.cz>
4597
4598         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
4599         (tree_estimate_probability): Likewise.
4600         (pass_profile::execute): Update.
4601         (report_predictor_hitrates): New function.
4602         * profile.c (compute_branch_probabilities): Use it.
4603         * predict.h (report_predictor_hitrates): Declare.
4604
4605 2016-04-17  Jan Hubicka  <jh@suse.cz>
4606
4607         PR ipa/70018
4608         * cgraph.h (cgraph_node::set_const_flag,
4609         cgraph_node::set_pure_flag): Update prototype to return bool;
4610         update comment.
4611         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
4612         of interposable symbol are interposable, too.
4613         (cgraph_set_const_flag_1): Rename to ...
4614         (set_const_flag_1): ... this one; change to self recursive function
4615         instead of call_for_symbol_thunks_and_aliases. Handle correctly
4616         clearnig the flag in all variants and also virtual thunks of const
4617         functions are pure; track if any change was done.
4618         (cgraph_node::set_const_flag): Update.
4619         (struct set_pure_flag_info): New struct.
4620         (cgraph_set_pure_flag_1): Rename to ...
4621         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
4622         rather than pointer encoded flags; track if any changes was done;
4623         handle correctly clearning flag and setting flag of aliases already
4624         declared const.
4625         (cgraph_node::set_pure_flag): Update.
4626         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
4627
4628 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4629
4630         PR other/70433
4631         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
4632         backslash in label.
4633
4634 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4635
4636         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
4637         '{}<> ' as escape-for-record.
4638
4639 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4640
4641         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
4642         structure.
4643
4644 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4645
4646         PR other/70185
4647         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
4648         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
4649         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
4650         * passes.c (finish_optimization_passes): Only call
4651         finish_graph_dump_file if dfi->graph_dump_initialized.
4652         (execute_function_dump, pass_init_dump_file): Use
4653         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
4654
4655 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4656
4657         PR tree-optimization/70256
4658         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
4659         (debug_varmap): New function.
4660
4661 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4662
4663         PR other/70183
4664         * passes.c (pass_manager::register_pass): Propagate pflags.
4665
4666 2016-04-17  Tom de Vries  <tom@codesourcery.com>
4667
4668         PR other/68875
4669         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
4670         * passes.c (pass_manager::pass_manager): Declare and init p_start in
4671         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
4672         check if it's equal to p_start.
4673         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
4674
4675 2016-04-15  Jan Hubicka  <jh@suse.cz>
4676
4677         PR ipa/70018
4678         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
4679         function does not bind to current def.
4680         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
4681         handle conservatively calls to functions that does not need to bind
4682         to current def.
4683         (check_call): Update call of worse_state.
4684         (ignore_edge_for_nothrow): Update.
4685         (ignore_edge_for_pure_const): Likewise.
4686         (propagate_pure_const): Update calls to worse_state.
4687         (skip_function_for_local_pure_const): Reformat comments.
4688
4689 2016-04-15  Jan Hubicka  <jh@suse.cz>
4690
4691         PR ipa/70018
4692         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
4693         (cgraph_node::function_symbol): Likewise.
4694         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4695         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
4696         (symtab_node::ultimate_alias_target): Add REF parameter.
4697         (symtab_node::binds_to_current_def_p): Declare.
4698         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
4699         (cgraph_node::function_symbol): Likewise.
4700         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
4701         (cgraph_node::get_availability): Likewise.
4702         (cgraph_edge::binds_to_current_def_p): New inline function.
4703         (varpool_node::get_availability): Add REF parameter.
4704         (varpool_node::ultimate_alias_target): Likewise.
4705         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
4706         (symtab_node::binds_to_current_def_p): Likewise.
4707         * varpool.c (varpool_node::get_availability): Likewise.
4708
4709 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4710
4711         PR target/70662
4712         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
4713         Fix mode size check.
4714
4715 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4716
4717         * BASE-VER: Set to 7.0.0.
4718
4719 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
4720
4721         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
4722
4723 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4724
4725         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
4726         architecture revisions.
4727
4728 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
4729
4730         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
4731         * config/i386/i386.c (ix86_using_red_zone): No longer static.
4732         * config/i386/i386.md (stack decrement to push peepholes): Guard
4733         with !x86_using_red_zone ().
4734
4735 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
4736
4737         PR c++/70675
4738         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
4739         to dump_generic_node.
4740         (NIY): Pass also flags to do_niy.
4741
4742 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
4743
4744         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
4745         (simd_clone_vector_of_formal_parm_types)
4746         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
4747         (simd_clone_mangle, simd_clone_create)
4748         (simd_clone_adjust_return_type, create_tmp_simd_array)
4749         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
4750         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
4751         (ipa_simd_modify_function_body, simd_clone_linear_addend)
4752         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
4753         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
4754         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
4755         * omp-simd-clone.c: ... this new file.
4756         (simd_clone_vector_of_formal_parm_types): Make it static.
4757         * Makefile.in (OBJS): Add omp-simd-clone.o.
4758
4759 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
4760
4761         PR target/70662
4762         * config/i386/sse.md: Use proper memory operand modifiers.
4763
4764
4765 2016-04-15  Richard Biener  <rguenther@suse.de>
4766         Alan Modra  <amodra@gmail.com>
4767
4768         PR tree-optimization/70130
4769         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
4770         when alignment stays not the same and no not use the realign
4771         scheme then.
4772
4773 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
4774
4775         PR target/70669
4776         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4777         direct move handlers for KFmode. Change TFmode handlers test from
4778         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
4779
4780 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
4781
4782         PR c++/70594
4783         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
4784         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
4785         (inlined_polymorphic_ctor_dtor_block_p): Use it.
4786         * tree-ssa-live.c (remove_unused_scope_block_p): When
4787         in_ctor_dtor_block, avoid discarding not just BLOCKs with
4788         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
4789         block_ultimate_origin is FUNCTION_DECL.
4790         (remove_unused_locals): If current_function_decl is
4791         polymorphic_ctor_dtor_p, pass initial true to
4792         remove_unused_scope_block_p' is_ctor_dtor_block.
4793
4794 2016-04-14  Martin Sebor  <msebor@redhat.com>
4795
4796         PR c++/69517
4797         PR c++/70019
4798         PR c++/70588
4799         * doc/extend.texi (Variable Length): Revert.
4800
4801 2016-04-14  Marek Polacek  <polacek@redhat.com>
4802             Jan Hubicka  <hubicka@ucw.cz>
4803
4804         PR c++/70029
4805         * tree.c (verify_type): Disable the canonical type of main variant
4806         check.
4807
4808 2016-04-14  Jason Merrill  <jason@redhat.com>
4809
4810         * cfgexpand.c, expr.c: Revert previous change.
4811
4812 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
4813
4814         PR middle-end/70643
4815         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
4816         when building a mem ref for the incoming reduction variable.
4817
4818 2016-04-14  Richard Biener  <rguenther@suse.de>
4819
4820         PR tree-optimization/70614
4821         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
4822         loop if the evolution dropped to chrec_dont_know.
4823         (interpret_condition_phi): Likewise.
4824
4825 2016-04-14  Richard Biener  <rguenther@suse.de>
4826
4827         PR tree-optimization/70623
4828         * tree-ssa-pre.c (changed_blocks): Make global ...
4829         (compute_antic): ... local here.  Move and fix worklist
4830         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
4831         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
4832         worklist handling, dump when ANTIC_IN changed.
4833         (compute_partial_antic_aux): Remove worklist handling.
4834         (init_pre): Do not compute post dominators.  Add a comment about
4835         the CFG order chosen.
4836         (fini_pre): Do not free post dominators.
4837
4838 2016-04-13  Martin Sebor  <msebor@redhat.com>
4839
4840         PR c++/69517
4841         PR c++/70019
4842         PR c++/70588
4843         * doc/extend.texi (Variable Length): Document C++ specifics.
4844
4845 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4846
4847         PR c++/70641
4848         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
4849         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
4850         eh edges have been purged.
4851
4852         PR c++/70594
4853         * tree-sra.c (create_access_replacement,
4854         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
4855         gets fancy name.
4856         * tree-pretty-print.c (dump_fancy_name): New function.
4857         (dump_decl_name, dump_generic_node): Use it.
4858
4859 2016-04-13  Jason Merrill  <jason@redhat.com>
4860
4861         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
4862         * expr.c (expand_expr_real_1): Likewise.
4863
4864 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4865
4866         * config/i386/i386.md (kunpckhi): Swap operands.
4867         (kunpcksi): Likewise.
4868         (kunpckdi): Likewise.
4869         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
4870         (vec_pack_trunc_<mode>): Likewise.
4871
4872 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
4873
4874         PR debug/70628
4875         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
4876
4877         PR middle-end/70633
4878         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
4879         gimplification turns some element into non-constant.
4880
4881         PR debug/70628
4882         * rtl.h (convert_memory_address_addr_space_1): New prototype.
4883         * explow.c (convert_memory_address_addr_space_1): No longer static,
4884         add NO_EMIT argument and don't call convert_modes if true, pass
4885         it down recursively, remove break after return.
4886         (convert_memory_address_addr_space): Adjust caller.
4887         * simplify-rtx.c (simplify_unary_operation_1): Call
4888         convert_memory_address_addr_space_1 instead of convert_memory_address,
4889         if it returns NULL, don't simplify.
4890
4891 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
4892
4893         PR target/70630
4894         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
4895
4896 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4897
4898         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4899         Bump the upper SIMDLEN limits, so that if the return type or
4900         characteristic type if the return type is void can be passed in
4901         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
4902         allowed.
4903
4904 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4905
4906         PR target/70640
4907         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
4908         Do not use "=" constraint on an input constraint.
4909         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
4910         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
4911         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
4912         generates (neg (abs ...)) instead of (abs ...).
4913
4914 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4915
4916         PR rtl-optimization/70596
4917         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
4918         just invalidate LRA data and reset them.  Adjust dump wording.
4919
4920 2016-04-12  Martin Liska  <mliska@suse.cz>
4921
4922         Revert
4923         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
4924
4925         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
4926         estimates here.
4927         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
4928         max_loop_iterations_int.
4929         (tree_unswitch_outer_loop): Likewise.
4930         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
4931         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
4932
4933 2016-04-12  Tom de Vries  <tom@codesourcery.com>
4934
4935         PR tree-optimization/68756
4936         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
4937         instead of new_name.
4938
4939 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
4940
4941         PR tree-optimization/70602
4942         * tree-sra.c (generate_subtree_copies): Don't write anything into
4943         constant pool decls.
4944
4945         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
4946         regardless whether there are depend clauses or not.
4947
4948 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4949
4950         PR target/70381
4951         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
4952         target attribute and pragma from changing the -mfloat128
4953         and -mfloat128-hardware options.
4954
4955         * doc/extend.texi (Additional Floating Types): Document PowerPC
4956         __float128 restrictions.
4957
4958 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4959
4960         PR target/70133
4961         * config/aarch64/driver-aarch64.c
4962         (aarch64_get_extension_string_for_isa_flags): New.
4963         (arch_extension): Rename to...
4964         (aarch64_arch_extension): ...This.
4965         (ext_to_feat_string): Rename to...
4966         (aarch64_extensions): ...This.
4967         (aarch64_core_data): Keep track of architecture extension flags.
4968         (cpu_data): Rename to...
4969         (aarch64_cpu_data): ...This.
4970         (aarch64_arch_driver_info): Keep track of architecture extension
4971         flags.
4972         (get_arch_name_from_id): Rename to...
4973         (get_arch_from_id): ...This, change return type.
4974         (host_detect_local_cpu): Update and reformat for renames, handle
4975         extensions through common infrastructure.
4976
4977 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
4978
4979         PR target/70133
4980         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
4981         track of a canonical flag name.
4982         (all_extensions): Likewise.
4983         (arch_to_arch_name): Also track extension flags enabled by the arch.
4984         (all_architectures): Likewise.
4985         (aarch64_parse_extension): Move to here.
4986         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
4987         rework.
4988         (aarch64_rewrite_selected_cpu): Update for above change.
4989         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
4990         are handled, such that the single explicit value enabled by an
4991         extension is kept seperate from the implicit values it also enables.
4992         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
4993         to here.
4994         (aarch64_parse_extension): New.
4995         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
4996         here to config/aarch64/aarch64-protos.h.
4997         (aarch64_parse_extension): Move from here to
4998         common/config/aarch64/aarch64-common.c.
4999         (aarch64_option_print): Update.
5000         (aarch64_declare_function_name): Likewise.
5001         (aarch64_start_file): Likewise.
5002         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
5003         the canonical flag for extensions.
5004         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
5005         flags.
5006
5007 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
5008
5009         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
5010         AARCH64_FL_CRC.
5011
5012 2016-04-09  Tom de Vries  <tom@codesourcery.com>
5013
5014         PR tree-optimization/68953
5015         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
5016         first to last subscript.
5017
5018 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
5019
5020         PR tree-optimization/70586
5021         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
5022         for any calls.
5023
5024 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
5025
5026         PR lto/70289
5027         PR ipa/70348
5028         PR tree-optimization/70373
5029         PR middle-end/70533
5030         PR middle-end/70534
5031         PR middle-end/70535
5032         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
5033         clauses for acc parallel reductions as necessary.  Error on those
5034         that are private.
5035         * omp-low.c (scan_sharing_clauses): Don't install variables which
5036         are used in acc parallel reductions.
5037         (lower_rec_input_clauses): Remove dead code.
5038         (lower_oacc_reductions): Add support for reference reductions.
5039         (lower_reduction_clauses): Remove dead code.
5040         (lower_omp_target): Don't remap variables appearing in acc parallel
5041         reductions.
5042         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
5043
5044 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
5045
5046         PR middle-end/70593
5047         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
5048         with multiple SSA_NAME defs, force the outputs other than first
5049         to be live before calling live_track_process_def on each output.
5050
5051         PR rtl-optimization/70574
5052         * fwprop.c (forward_propagate_and_simplify): Don't add
5053         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
5054         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
5055         paradoxical subregs within *loc.
5056
5057 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
5058
5059         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
5060         -ftree-parallelize-loops={0,1}.
5061         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
5062         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
5063         * config/ia64/hpux.h (LIB_SPEC): Likewise.
5064         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
5065         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
5066
5067 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
5068
5069         PR sanitizer/70541
5070         * asan.c (instrument_derefs): If we get unknown location, extract it
5071         with EXPR_LOCATION.
5072         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
5073
5074 2016-04-08  Tom de Vries  <tom@codesourcery.com>
5075
5076         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
5077         implicit firstprivate clause.
5078
5079 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5080
5081         PR target/70566
5082         * config/arm/thumb2.md (tst + branch-> lsls + branch
5083         peephole below *orsi_not_shiftsi_si): Require that condition
5084         register is dead after the peephole.
5085         (second peephole after the above): Likewise.
5086
5087 2016-04-08  Alan Modra  <amodra@gmail.com>
5088
5089         PR target/70117
5090         * builtins.c (fold_builtin_classify): For IBM extended precision,
5091         look at just the high-order double to test for NaN.
5092         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
5093         test just the high double for Inf but both doubles for subnormal
5094         limit.
5095
5096 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
5097
5098         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
5099         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
5100         node->simdclone->mask_mode != VOIDmode masks.
5101         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
5102         earlier, use it instead of node->simdclone.
5103         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5104         Set clonei->mask_mode.
5105
5106 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5107
5108         PR c/70436
5109         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
5110         Pass it through to cp_parser_already_scoped_statement.
5111         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
5112         it through to cp_parser_statement.
5113         (cp_parser_statement): Pass IF_P through to
5114         cp_parser_iteration_statement.
5115         (cp_parser_pragma): Adjust call to
5116         cp_parser_iteration_statement.
5117
5118 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
5119
5120         PR c/70436
5121         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
5122         resolve a future -Wparentheses warning.
5123         * omp-low.c (scan_sharing_clauses): Likewise.
5124         * tree-parloops.c (eliminate_local_variables): Likewise.
5125
5126 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
5127
5128         PR rtl-optimization/70398
5129         * lra-constraints.c (process_address_1): Check zero scale and code
5130         for reloading with zero scale.
5131
5132 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
5133
5134         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
5135         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
5136
5137 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
5138
5139         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
5140         Add support for AVX512F clones, include them by default for
5141         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
5142         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
5143         up to 128.
5144
5145         PR middle-end/70550
5146         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
5147         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
5148         firstprivate clauses.
5149         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
5150         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
5151         (lower_omp_target): Set TREE_NO_WARNING for
5152         non-addressable possibly uninitialized vars which are copied into
5153         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
5154
5155 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
5156
5157         * config/pa/predicates.md (integer_store_memory_operand): Accept
5158         REG+D operands with a large offset when reload_in_progress is true.
5159         (floating_point_store_memory_operand): Likewise.
5160
5161 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5162
5163         PR c++/70336
5164         * match.pd (nested int casts): Limit to GIMPLE.
5165
5166 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
5167
5168         PR ipa/66223
5169         * ipa-devirt.c (maybe_record_node): Fix comment; use
5170         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
5171
5172 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5173
5174         PR rtl-optimization/70542
5175         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
5176         if there are any uses other than insn or debug insns.
5177
5178 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
5179             Jakub Jelinek  <jakub@redhat.com>
5180
5181         PR tree-optimization/70509
5182         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
5183         Shift HOST_WIDE_INT_1U instead of 1.
5184
5185 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
5186
5187         PR tree-optimization/70509
5188         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
5189         of the vector base type for index.
5190
5191 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
5192
5193         PR target/70510
5194         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
5195
5196 2016-04-05  Richard Biener  <rguenther@suse.de>
5197
5198         PR tree-optimization/70526
5199         * tree-sra.c (build_ref_for_offset): Use prev_base to
5200         extract the alias pointer type.
5201
5202 2016-04-05  Richard Biener  <rguenther@suse.de>
5203
5204         * dse.c (struct store_info): Remove alias_set member.
5205         (struct read_info_type): Likewise.
5206         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
5207         spill_deleted, clear_alias_set_lookup): Remove.
5208         (get_group_info): Remove dead base == NULL_RTX case.
5209         (dse_step0): Remove initialization of removed variables.
5210         (delete_dead_store_insn): Reomve alias set dumping.
5211         (free_read_records): Remove alias_set handling.
5212         (canon_address): Remove alias_set_out parameter.
5213         (record_store): Remove spill_alias_set, it's always zero.
5214         (check_mem_read_rtx): Likewise.
5215         (dse_step2): Rename from ...
5216         (dse_step2_nospill): ... this.  Adjust.
5217         (scan_stores): Rename from ...
5218         (scan_stores_nospill): ... this.
5219         (scan_reads): Rename from ...
5220         (scan_reads_nospill): ... this.
5221         (scan_stores_spill, scan_reads_spill): Remove.
5222         (dse_step3_scan): Remove for_spills argument which is always false.
5223         (dse_step3): Likewise.
5224         (dse_step5): Rename from ...
5225         (dse_step5_nospill): ... this.  Remove alias_set handling.
5226         (rest_of_handle_dse): Adjust.
5227
5228 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
5229
5230         PR target/70525
5231         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
5232         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
5233         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
5234         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
5235
5236 2016-04-05  Richard Biener  <rguenther@suse.de>
5237
5238         PR middle-end/70499
5239         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
5240         non-register type temporaries into SSA.
5241
5242 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
5243
5244         PR ipa/66223
5245         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
5246         calls when sanitizing.
5247         (possible_polymorphic_call_target_p): Fix formatting.
5248
5249 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5250             Jakub Jelinek <jakub@redhat.com>
5251
5252         PR middle-end/70457
5253         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
5254         to ensure a call statement is compatible with a built-in's
5255         prototype.
5256         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
5257         Likewise.
5258
5259 2016-04-04  Richard Biener  <rguenther@suse.de>
5260
5261         PR rtl-optimization/70484
5262         * rtl.h (canon_output_dependence): Declare.
5263         * alias.c (canon_output_dependence): New function.
5264         * dse.c (record_store): Use canon_output_dependence rather
5265         than canon_true_dependence.
5266
5267 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5268
5269         PR ipa/68881
5270         * cgraph.h (symtab_node::copy_visibility_from): New function.
5271         * symtab.c (symtab_node::copy_visibility_from): New function.
5272         * ipa-visibility.c (optimize_weakref): New function.
5273         (function_and_variable_visibility): Use it.
5274
5275 2016-04-04  Martin Liska  <mliska@suse.cz>
5276
5277         PR hsa/70402
5278         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
5279         value that is really in range handled by SBR instruction.
5280         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
5281         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
5282         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
5283
5284 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
5285
5286         PR target/70416
5287         PR target/67391
5288         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
5289         set, but not for SP_REG operands.
5290
5291 2016-04-02  Martin Sebor  <msebor@redhat.com>
5292
5293         PR c++/67376
5294         * fold-const.c (maybe_nonzero_address): New function.
5295         (fold_comparison): Call it.  Fold equality and relational
5296         expressions involving null pointers.
5297         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
5298
5299 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
5300
5301         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
5302         the "Y" constraint (scalar FP 0.0 immediate).
5303
5304         * gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
5305         Add the "const_double" to the list of operand constraints.
5306
5307 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
5308
5309         PR rtl-optimization/70467
5310         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
5311         If low word of the last operand is 0, just emit addition/subtraction
5312         for the high word.
5313
5314 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5315
5316         PR target/70404
5317         * config/s390/s390.c (s390_expand_insv): Check for everything
5318         constant instead of just VOIDmode stuff.
5319
5320 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5321
5322         PR target/70496
5323         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
5324
5325 2016-04-01  Nathan Sidwell  <nathan@acm.org>
5326
5327         * tree.def (TRY_CATCH_EXPR): Correct documentation.
5328
5329 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
5330
5331         PR rtl-optimization/70461
5332         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
5333         is necessary.
5334
5335 2016-03-31  Martin Liska  <mliska@suse.cz>
5336
5337         PR hsa/70399
5338         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
5339         a tree value or an immediate integer value to a buffer
5340         that is eventually copied to a BRIG section.
5341         (emit_immediate_operand): Call the function here.
5342         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
5343         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
5344         of class' fields that are removed.
5345         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
5346         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
5347         m_brig_repr_size fields.
5348
5349 2016-03-31  Martin Liska  <mliska@suse.cz>
5350
5351         PR hsa/70391
5352         * hsa-gen.c (hsa_function_representation::update_dominance): New
5353         function.
5354         (convert_addr_to_flat_segment): Likewise.
5355         (gen_hsa_memory_set): New alignment argument.
5356         (gen_hsa_ctor_assignment): Likewise.
5357         (gen_hsa_insns_for_single_assignment): Provide alignment
5358         to gen_hsa_ctor_assignment.
5359         (gen_hsa_insns_for_direct_call): Add new argument.
5360         (expand_lhs_of_string_op): New function.
5361         (expand_string_operation_builtin): Likewise.
5362         (expand_memory_copy): New function.
5363         (expand_memory_set): New function.
5364         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
5365         (convert_switch_statements): Change signature.
5366         (generate_hsa): Use a return value of the function.
5367         (pass_gen_hsail::execute): Do not call
5368         convert_switch_statements here.
5369         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
5370         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
5371         (hsa_function_representation::update_dominance): New function.
5372
5373 2016-03-31  Martin Liska  <mliska@suse.cz>
5374
5375         PR hsa/70391
5376         * hsa-brig.c (emit_directive_variable): Emit alignment
5377         according to hsa_symbol::m_align.
5378         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
5379         (dump_hsa_symbol): Dump alignment of HSA symbols.
5380         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
5381         (gen_hsa_addr_with_align): New function.
5382         (hsa_bitmemref_alignment): Use newly added function.
5383         (gen_hsa_insns_for_load): Likewise.
5384         (gen_hsa_insns_for_store): Likewise.
5385         (gen_hsa_memory_copy): New argument added.
5386         (gen_hsa_insns_for_single_assignment): Respect
5387         alignment for assignments processed via gen_hsa_memory_copy.
5388         (gen_hsa_insns_for_direct_call): Likewise.
5389         (gen_hsa_insns_for_return): Likewise.
5390         (gen_function_def_parameters): Set default alignment.
5391         * hsa.c (hsa_object_alignment): New function.
5392         (hsa_byte_alignment): Pasted function.
5393         * hsa.h (hsa_symbol::m_align): New field.
5394
5395 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5396
5397         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
5398         scratch field for goto case.
5399
5400 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
5401
5402         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
5403
5404 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
5405
5406         PR target/70442
5407         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
5408         (scalar_chain::convert_insn): Call convert_op for reg
5409         moves to handle undefined registers.
5410
5411 2016-03-31  Nathan Sidwell  <nathan@acm.org>
5412
5413         PR c++/70393
5414         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
5415         Assert we don't want to move backwards.
5416
5417 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
5418
5419         PR target/70453
5420         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
5421
5422 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
5423
5424         PR rtl-optimization/70460
5425         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
5426         with operand from REG_LABEL_OPERAND, instead substitute
5427         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
5428         Don't do anything for REG_NON_LOCAL_GOTO jumps.
5429
5430 2016-03-31  Martin Liska  <mliska@suse.cz>
5431
5432         * passes.c (execute_one_pass): Do not call
5433         todo_after for a discarded function.
5434
5435 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
5436
5437         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
5438         (no_cost, infinite_cost): Initialize the new field.
5439         (get_computation_cost_at): Record setup cost.
5440         (determine_use_iv_cost_address): Skip cost computation for sub
5441         uses if we can estimate it without losing accuracy.
5442
5443 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
5444
5445         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
5446         estimates here.
5447         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
5448         max_loop_iterations_int.
5449         (tree_unswitch_outer_loop): Likewise.
5450         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
5451         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
5452
5453 2016-03-30  Richard Biener  <rguenther@suse.de>
5454
5455         PR middle-end/70450
5456         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
5457
5458 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
5459
5460         PR target/70421
5461         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
5462         in gen_blendm expander.
5463
5464 2016-03-30  Nick Clifton  <nickc@redhat.com>
5465
5466         PR target/62254
5467         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
5468         case where we are already provided with an SImode SUBREG.
5469
5470 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
5471
5472         PR target/70439
5473         * config/i386/i386.c (ix86_expand_epilogue): Properly check
5474         conflict between DRAP register and __builtin_eh_return.
5475
5476 2016-03-30  Michael Matz  <matz@suse.de>
5477             Richard Biener  <rguenther@suse.de>
5478
5479         PR ipa/12392
5480         * ipa-polymorphic-call.c (struct type_change_info): Change
5481         speculative to an unsigned allowing to limit the work we do.
5482         (csftc_abort_walking_p): New inline function..
5483         (check_stmt_for_type_change): Limit the number of may-defs
5484         skipped for speculative devirtualization to
5485         max-speculative-devirt-maydefs.
5486         * params.def (max-speculative-devirt-maydefs): New param.
5487         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
5488
5489 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
5490
5491         PR target/63890
5492         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
5493         and TARGET_MACHO.
5494
5495 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
5496
5497         PR tree-optimization/59124
5498         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
5499         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
5500
5501 2016-03-29  Jeff Law  <law@redhat.com>
5502
5503         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
5504
5505 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5506
5507         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
5508         to HOST_WIDE_INT.
5509
5510 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
5511
5512         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
5513         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
5514         gcrt0.o if linking dynamically.
5515
5516 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
5517
5518         PR ipa/70283
5519         * ipa-devirt.c (methods_equal_p): New function.
5520         (compare_virtual_tables): Use it.
5521         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
5522         * cgraphclones.c (clone_function_name_1): Use
5523         symbol_table::symbol_suffix_separator.
5524         * coverage.c (build_var): Likewise.
5525         * symtab.c (symbol_table::symbol_suffix_separator): New.
5526
5527 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
5528
5529         PR rtl-optimization/70429
5530         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
5531         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
5532         mode != result_mode.
5533
5534         PR c++/70353
5535         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
5536
5537         PR tree-optimization/70405
5538         * ssa-iterators.h (num_imm_uses): Add missing braces.
5539
5540 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
5541
5542         PR rtl-optimization/68695
5543         * ira-color.c (allocno_copy_cost_saving): New.
5544         (improve_allocation): Use it.
5545
5546 2016-03-29  Richard Henderson  <rth@redhat.com>
5547
5548         PR middle-end/70355
5549         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
5550
5551 2016-03-29  Richard Biener  <rguenther@suse.de>
5552
5553         PR middle-end/70424
5554         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
5555         use alignment returned by get_pointer_alignment_1 if it is
5556         bigger than BITS_PER_UNIT.
5557         * builtins.c (get_pointer_alignment_1): Do not return true
5558         for alignment extracted from SSA info.
5559
5560 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
5561
5562         * config/ft32/ft32.opt (mnodiv): New.
5563         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
5564         * doc/invoke.texi (FT32 Options -mnodiv): New.
5565
5566 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
5567
5568         PR target/70406
5569         * config/i386/i386.md (define_split, andn): Fix modes.
5570
5571 2016-03-26  Richard Biener  <rguenther@suse.de>
5572             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5573
5574         PR ipa/70366
5575         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
5576         instead of
5577         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
5578         as 2nd argument to cl_optimization_restore().
5579
5580 2016-03-25  Richard Henderson  <rth@redhat.com>
5581
5582         PR target/70120
5583         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
5584         * config/aarch64/aarch64-protos.h: Declare it.
5585         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
5586
5587 2016-03-25  Alan Modra  <amodra@gmail.com>
5588
5589         PR target/70052
5590         * config/rs6000/constraints.md (j): Simplify.
5591         * config/rs6000/predicates.md (easy_fp_constant): Exclude
5592         decimal float 0.D.
5593         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
5594         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
5595          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
5596         in all constraint alternatives.
5597         (movtd_64bit_nodm): Delete "j" constraint alternative.
5598
5599 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5600
5601         * tree-ssa-propagate.c: Enhance docs for
5602         SSA_PROP_NOT_INTERESTING.
5603
5604 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
5605
5606         * doc/extend.texi: Fix typo in documentation to pure attribute.
5607
5608 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
5609
5610         PR target/70319
5611         * config/pa/pa.md (bswapdi2): Use a scratch register.
5612
5613 2016-03-24  Richard Henderson  <rth@redhat.com>
5614
5615         PR middle-end/69845
5616         * fold-const.c (extract_muldiv_1): Correct test for multiplication
5617         overflow.
5618
5619 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
5620
5621         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
5622         using ix86_expand_binary_operator instead of gen_andsi3.
5623
5624 2016-03-24  Richard Biener  <rguenther@suse.de>
5625
5626         PR tree-optimization/70396
5627         * tree-vect-stmts.c (vectorizable_comparison): Use
5628         get_vectype_for_scalar_type.
5629
5630 2016-03-24  Richard Biener  <rguenther@suse.de>
5631
5632         PR middle-end/70370
5633         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
5634         with register bases.
5635
5636 2016-03-24  Richard Biener  <rguenther@suse.de>
5637
5638         PR tree-optimization/70372
5639         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
5640         build_all_ones_cst to also handle vector types correctly.
5641
5642 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
5643
5644         PR target/70381
5645         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
5646         -mfloat128 here.
5647
5648 2016-03-23  Marek Polacek  <polacek@redhat.com>
5649
5650         PR c++/69884
5651         * doc/invoke.texi: Document -Wignored-attributes.
5652
5653 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5654
5655         PR tree-optimization/69042
5656         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
5657         parameter from 30 to 40.
5658
5659 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
5660
5661         PR tree-optimization/69042
5662         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
5663         for use with constant offset stripped in base.
5664
5665 2016-03-23  Richard Biener  <rguenther@suse.de>
5666
5667         PR middle-end/70251
5668         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
5669         mode compatibility check.
5670         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5671
5672 2016-03-23  Jeff Law  <law@redhat.com>
5673
5674         PR tree-optimization/64058
5675         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
5676         CONFLICT_COUNT.
5677         (struct ssa_conflicts): Move up earlier in the file.
5678         (conflicts_, var_map_): New static variables.
5679         (initialize_conflict_count): New function to initialize the
5680         CONFLICT_COUNT field for each conflict pair.
5681         (compare_pairs): Lazily initialize the conflict count and use it
5682         as the first tie-breaker.
5683         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
5684         and wipe conflicts_ and map_ around the call to qsort.  Remove
5685         special case for 2 coalesce pairs.
5686         * bitmap.c (bitmap_count_unique_bits): New function.
5687         (bitmap_count_bits_in_word): New function, extracted from
5688         bitmap_count_bits.
5689         (bitmap_count_bits): Use bitmap_count_bits_in_word.
5690         * bitmap.h (bitmap_count_unique_bits): Declare it.
5691
5692 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
5693
5694         PR target/69917
5695         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
5696         transparent alias chain for decl assembler name.
5697         * config/sol2.c (solaris_assemble_visibility): Likewise.
5698
5699 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5700
5701         * config/arm/arm1020e.md (1020call_op): Reduce reservation
5702         duration.
5703         (v10_fdivs): Likewise.
5704         (v10_fdivd): Likewise.
5705
5706 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5707
5708         PR driver/70132
5709         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
5710         to not call fclose twice on file.
5711
5712 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
5713
5714         PR tree-optimization/70354
5715         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
5716         oprnd0 is wider than oprnd1 and there is a cast from the wider
5717         type to oprnd1, mask it with the mask of the narrower type.
5718
5719         PR target/70321
5720         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
5721         Optimize TARGET_STV splitters, if high or low word of last argument
5722         is 0 or -1.
5723
5724 2016-03-22  Jeff Law  <law@redhat.com>
5725
5726         PR target/70232
5727         tree-ssa-threadbackward.c
5728         (fsm_find_control_statement_thread_paths): Correctly distinguish
5729         between old style jump threads vs FSM jump threads.
5730
5731 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
5732
5733         PR target/70302
5734         * config/i386/i386.c (scalar_chain::convert_op): Support
5735         uninitialized register usage case.
5736
5737 2016-03-22  Richard Biener  <rguenther@suse.de>
5738
5739         PR middle-end/70251
5740         * genmatch.c (gen_transform): Adjust last parameter to a three-state
5741         int...
5742         (capture::gen_transform): ... to change behavior when substituting
5743         a condition into cond or not-cond expr context.
5744         (dt_simplify::gen_1): Adjust.
5745         * gimple-match-head.c: Include gimplify.h for unshare_expr.
5746         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
5747         last change and instead change to
5748         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
5749         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5750
5751 2016-03-22  Anthony Green  <green@moxielogic.com>
5752
5753         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
5754         issue for moxiebox targets.
5755         (CC1PLUS_SPEC): Ditto.
5756
5757 2016-03-22  Richard Biener  <rguenther@suse.de>
5758
5759         PR middle-end/70333
5760         * fold-const.c (extract_muldiv_1): Properly perform multiplication
5761         in the wide type.
5762
5763 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5764
5765         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
5766
5767 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
5768
5769         PR target/70325
5770         * config/i386/i386.c (def_builtin): Handle
5771         OPTION_MASK_ISA_AVX512VL to be and-ed with other
5772         bits.
5773         (const struct builtin_description bdesc_special_args[]):
5774         Remove duplicate ISA bits.
5775
5776 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
5777
5778         PR target/70329
5779         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
5780         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
5781         in a way that works also for AVX512BW.
5782
5783         PR target/70300
5784         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
5785         instead of source if operands[1] is xmm16 and above and
5786         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
5787         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
5788
5789         PR c++/70295
5790         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
5791         on assign if (*from_p) is a comparison, set it to
5792         TREE_NO_WARNING (*from_p).
5793
5794 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5795
5796         PR middle-end/70326
5797         * lra.c (restore_scratches): Ignore deleted insns.
5798
5799 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
5800             Jakub Jelinek  <jakub@redhat.com>
5801
5802         PR tree-optimization/70317
5803         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
5804         to HONOR_NANS.
5805
5806 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
5807
5808         PR target/70327
5809         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
5810         of ix86_expand_move.
5811         (movoi): Ditto.
5812         (movti): Use general_operand for operand 1 predicate.
5813
5814 2016-03-21  Martin Liska  <mliska@suse.cz>
5815
5816         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
5817         insns.
5818         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
5819
5820 2016-03-21  Martin Liska  <mliska@suse.cz>
5821
5822         PR ipa/70306
5823         * ipa-icf.c (sem_function::parse): Skip static
5824         constructors and destructors.
5825
5826 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
5827
5828         PR target/70296
5829         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
5830         function-like macro, peek following token(s) if it is followed
5831         by CPP_OPEN_PAREN token with optional padding in between, and
5832         if not, don't treat it like a macro.
5833
5834 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
5835             Alexander Monakov  <amonakov@ispras.ru>
5836
5837         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
5838         for the stabs debug format.
5839
5840 2016-03-21  Richard Biener  <rguenther@suse.de>
5841
5842         PR tree-optimization/70310
5843         * tree-vect-generic.c (expand_vector_condition): Fold the built
5844         condition.
5845
5846 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
5847
5848         PR target/70293
5849         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
5850         Block third alternative for AVX-512VL target,
5851
5852 2016-03-21  Martin Liska  <mliska@suse.cz>
5853
5854         PR hsa/70234
5855         * hsa-brig.c (emit_function_directives): Mark unemitted
5856         global variables for emission.
5857         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
5858         (get_symbol_for_decl): Likewise.
5859         * hsa.h (struct hsa_symbol): New flag.
5860
5861 2016-03-21  Richard Biener  <rguenther@suse.de>
5862
5863         PR tree-optimization/70288
5864         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
5865         we do not estimate unsimplified all-constant conditionals or
5866         switches as optimized away.
5867
5868 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
5869
5870         PR rtl-optimization/69102
5871         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
5872         when we have a readonly dependency context.
5873
5874 2016-03-18  Jeff Law  <law@redhat.com>
5875
5876         PR rtl-optimization/70263
5877         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
5878         (update_equiv_regs): When trying to move a store to after the insn
5879         that sets the source of the store, make sure the store occurs after
5880         the insn that sets the source of the store.  When successful note
5881         the REG_EQUIV note created in the dump file.
5882
5883 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
5884             Bernd Schmidt  <bschmidt@redhat.com>
5885
5886         * doc/extend.texi: Document more potential problems with basic asms.
5887
5888 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
5889
5890         PR rtl-optimization/70278
5891         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
5892         VOIDmode.
5893
5894 2016-03-18  Jason Merrill  <jason@redhat.com>
5895
5896         * calls.c (load_register_parameters): Fix zero size sibcall logic.
5897
5898 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
5899
5900         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
5901         values to 128b regs.
5902
5903 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
5904
5905         PR tree-optimization/70252
5906         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
5907         boolean vector has a proper number of elements.
5908         (supportable_narrowing_operation): Likewise.
5909
5910 2016-03-18  Tom de Vries  <tom@codesourcery.com>
5911
5912         PR ipa/70269
5913         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
5914
5915 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
5916
5917         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
5918         instead of replace_rtx for DEBUG_INSNs.
5919
5920 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
5921
5922         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
5923         load type reservations.
5924
5925 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
5926
5927         PR target/70188
5928         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
5929         define_constraint for "Q" and "T" constraints.
5930
5931 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
5932
5933         Tweak the pipeline model for Exynos M1
5934
5935         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
5936         model.
5937
5938 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
5939
5940         PR c/70264
5941         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
5942         where one or both locations aren't within a line_map.
5943
5944 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
5945
5946         PR driver/70192
5947         * opts.c (finish_options): Don't set flag_pie to the default if
5948         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
5949         if it is -1.
5950
5951 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
5952
5953         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
5954         true as ALL_REGS argument to replace_rtx.
5955
5956 2016-03-17  Richard Biener  <rguenther@suse.de>
5957
5958         PR debug/70271
5959         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
5960         last.
5961
5962 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5963
5964         PR target/70245
5965         * rtl.h (replace_rtx): Add ALL_REGS argument.
5966         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
5967         equality and assert mode is the same, instead of just rtx pointer
5968         equality.
5969         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
5970         true as ALL_REGS argument to replace_rtx.
5971
5972 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
5973
5974         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
5975         for boolean vector with vector mode only.
5976         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
5977
5978 2016-03-17  Nick Clifton  <nickc@redhat.com>
5979
5980         PR target/70162
5981         * config/rx/rx.c (rx_print_integer): Print negative constants in
5982         decimal.
5983
5984 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
5985
5986         PR target/70261
5987         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
5988
5989 2016-03-16  Richard Henderson  <rth@redhat.com>
5990             Richard Biener  <rguenth@suse.de>
5991
5992         PR middle-end/70240
5993         PR middle-end/68215
5994         PR tree-opt/68714
5995         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
5996         first operand as is_gimple_condexpr.
5997
5998         PR middle-end/70240
5999         PR middle-end/68215
6000         Revert r231575
6001         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
6002         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
6003         Do not gimplify the result.
6004         (do_unop): Adjust call to tree_vec_extract.
6005         (do_binop): Likewise.
6006         (do_compare): Likewise.
6007         (do_plus_minus): Likewise.
6008         (do_negate): Likewise.
6009         (expand_vector_condition): Likewise.
6010         (do_cond): Likewise.
6011
6012 2016-03-16  Richard Henderson  <rth@redhat.com>
6013
6014         PR target/70048
6015         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
6016         (aarch64_classify_address): Use it.
6017         (aarch64_legitimize_address): Force all subexpressions of PLUS
6018         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
6019
6020 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
6021             Richard Biener  <rguenth@suse.de>
6022
6023         PR target/70245
6024         * rtlanal.c (replace_rtx): For REG, if from is a REG,
6025         return to even if only REGNO is equal, and assert
6026         mode is the same.
6027
6028 2016-03-11  Jeff Law  <law@redhat.com>
6029
6030         PR rtl-optimization/70224
6031         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
6032
6033 2016-03-16  Richard Henderson  <rth@redhat.com>
6034
6035         PR middle-end/70199
6036         * function.h (struct function): Add has_forced_label_in_static.
6037         * gimplify.c (force_labels_r): Set it.
6038         * lto-streamer-in.c (input_struct_function_base): Read it.
6039         * lto-streamer-out.c (output_struct_function_base): Write it.
6040         * tree-inline.c (has_label_address_in_static_1): Remove.
6041         (copy_forbidden): Remove fndecl parameter; test
6042         has_forced_label_in_static.
6043         (inline_forbidden_p): Update call to copy_forbidden.
6044         (tree_versionable_function_p): Likewise.
6045         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
6046         (chkp_versioning): Likewise.
6047         * tree-inline.h (copy_forbidden): Update decl.
6048
6049 2016-03-16  Marek Polacek  <polacek@redhat.com>
6050
6051         PR c/70093
6052         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
6053         function being thunked if the result type doesn't have fixed size.
6054         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
6055         doesn't have fixed size.
6056
6057 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
6058
6059         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
6060         reporting malformed loop nest.
6061
6062 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6063
6064         PR lto/70187
6065         * ipa-devirt.c (possible_polymorphic_call_targets): Move
6066         nodes.length () == 1 test to before first nodes[0] access.
6067
6068 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6069
6070         PR tree-optimization/68715
6071         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
6072         single_pred_p test.
6073
6074 2016-03-16  Tom de Vries  <tom@codesourcery.com>
6075
6076         PR tree-optimization/68809
6077         * graphite-scop-detection.c (same_close_phi_node): Test if result types
6078         are the same.
6079
6080 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
6081             Sandra Loosemore  <sandra@codesourcery.com>
6082
6083         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
6084         on leaf attribute. Mention ELF interposition problems.
6085
6086 2016-03-16  Alan Modra  <amodra@gmail.com>
6087
6088         PR rtl-optimization/69195
6089         PR rtl-optimization/47992
6090         * ira.c (indirect_jump_optimize): Ignore artificial defs.
6091         Add comments.
6092
6093 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6094
6095         PR bootstrap/69513
6096         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
6097
6098 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6099
6100         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
6101
6102 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
6103
6104         PR rtl-optimization/70222
6105         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
6106         optimization if mode is different from result_mode, queue up masking
6107         of the result in outer_op.  Formatting fix.
6108
6109         PR middle-end/70239
6110         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
6111         of safe_grow.
6112
6113 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6114
6115         PR rtl-optimization/69032
6116         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
6117         looping backwards over basic block insns.
6118
6119 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6120
6121         PR target/66660
6122         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
6123         to non-speculative when propagating trap bits.
6124
6125 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6126
6127         PR rtl-optimization/63384
6128         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
6129         DEBUG_INSN_P insns.
6130
6131 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
6132
6133         PR target/64411
6134         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
6135         factored out from ...
6136         (sched_analyze_insn): ... here.
6137         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
6138         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
6139         get_implicit_reg_pending_clobbers in it.
6140         (setup_id_reg_sets): Use setup_id_implicit_regs.
6141         (deps_init_id): Ditto.
6142
6143 2016-03-15  Tom de Vries  <tom@codesourcery.com>
6144
6145         PR ipa/70161
6146         * cgraph.c (cgraph_node::get_body): Save, reset and restore
6147         dump_file_name.
6148         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
6149         execute_function_dump.
6150         (execute_one_pass): Don't dump function if it will be dumped after ipa
6151         transform.
6152
6153 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
6154
6155         * genrecog.c (match_pattern_2): If pred is NULL don't call
6156         safe_predicate_mode on it.
6157
6158 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
6159
6160         PR middle-end/70219
6161         * lra-constraints.c (delete_move_and_clobber): Change assertion
6162         to also allow dregno == 0.
6163
6164 2016-03-14  Richard Henderson  <rth@redhat.com>
6165
6166         PR tree-opt/68714
6167         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
6168         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
6169         (reassociate_bb): Use optimize_vec_cond_expr; avoid
6170         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
6171         on vectors.
6172
6173 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
6174
6175         PR target/70083
6176         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
6177         regs.
6178         (lra_create_live_ranges_1): initialize hard register biggest_mode to
6179         VOIDmode.
6180         * lra-constraints.c (split_reg): For hard regs, try to find the
6181         biggest single-register mode used in the function.
6182
6183 2016-03-14  Richard Biener  <rguenther@suse.de>
6184
6185         PR tree-optimization/56365
6186         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
6187         constants to compare against.
6188
6189 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
6190
6191         PR target/70098
6192         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
6193         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
6194         (define_split for the GPR case): Use int_reg_operand instead of
6195         gpc_reg_operand for the output.
6196
6197 2016-03-14  Tom de Vries  <tom@codesourcery.com>
6198
6199         PR tree-optimization/70045
6200         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
6201         create_empty_if_region_on_edge argument.
6202
6203 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
6204
6205         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
6206         (STACK_CHECK_PROTECT): Likewise.
6207         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6208         (STACK_CHECK_PROTECT): Likewise.
6209         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
6210         (STACK_CHECK_PROTECT): Likewise.
6211         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
6212         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6213         (STACK_CHECK_PROTECT): Likewise.
6214
6215 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
6216
6217         PR rtl-optimization/69307
6218         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
6219         registers in modes that span more than one register.
6220
6221 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
6222
6223         PR target/69614
6224         * lra-constraints.c (delete_move_and_clobber): New.
6225         (remove_inheritance_pseudos): Use it.
6226
6227 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
6228
6229         PR ada/70017
6230         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
6231         the libcall is LCT_THROW.
6232         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
6233         for the checking routine.
6234
6235 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
6236
6237         PR target/70131
6238         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
6239         optimization if we have direct move.
6240         (roundu32<mode>2_fprs): Likewise.
6241
6242 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
6243
6244         PR target/70123
6245         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
6246         be rematerialized.
6247         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
6248         Arguments swapped.  All callers changed.  Take reg_renumber into
6249         account, and Calculate and compare register ranges for hard regs.
6250
6251 2016-03-11  Jeff Law  <law@redhat.com>
6252
6253         PR tree-optimization/70190
6254         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6255         Handle cases where we can not extract the taken edge, even though we
6256         found a constant value.
6257
6258         PR tree-optimization/64058
6259         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
6260         (num_coalesce_pairs): Move up earlier in file.
6261         (find_coalesce_pair): Initialize the INDEX field for each pair
6262         discovered.
6263         (compare_pairs): No longer sort on the elements in each pair.
6264         Instead break ties with the index of the coalesce pair.
6265
6266 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6267
6268         PR target/70002
6269         * config/aarch64/aarch64-protos.h
6270         (aarch64_save_restore_target_globals): New prototype.
6271         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
6272         Call the above when popping pragma.
6273         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
6274         New function.
6275         (aarch64_set_current_function): Rewrite using the above.
6276
6277 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6278
6279         PR tree-optimization/70177
6280         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
6281         (extract_ops_from_tree): ... this.  In the 2 argument
6282         overload remove _1 suffix.
6283         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
6284         (extract_ops_from_tree): ... this.
6285         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
6286         Adjust callers.
6287         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
6288         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
6289         extract_ops_from_tree instead of 2 operand one.
6290
6291 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
6292
6293         PR tree-optimization/70013
6294         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
6295         for constant-pool entries.
6296
6297 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
6298
6299         PR rtl-optimization/70174
6300         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
6301         followed by gen_lowpart on force_reg instead of just gen_lowpart.
6302
6303         PR tree-optimization/70169
6304         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
6305         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
6306         for unknown codes.
6307
6308 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
6309             Jakub Jelinek  <jakub@redhat.com>
6310
6311         PR target/70160
6312         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
6313         of uninitialized values.
6314
6315 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6316
6317         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
6318         define_expand.
6319         ("*trunctddd2"): New pattern definition.
6320         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
6321         TD->DD truncation.
6322
6323 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6324
6325         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
6326         definitions for BFP and DFP rounding modes.
6327         ("fixuns_truncdddi2", "fixuns_trunctddi2")
6328         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
6329         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
6330         ("fix_trunctf<mode>2"): Use the new constants instead of magic
6331         numbers.
6332
6333 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6334
6335         * config/s390/constraints.md: Adjust comment.
6336         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
6337         s390_decompose_addrstyle_without_index.
6338         * config/s390/predicates.md (shift_count_or_setmem_operand):
6339         Rename to setmem_operand.
6340         * config/s390/s390-protos.h
6341         (s390_decompose_shift_count): Rename to
6342         s390_decompose_addrstyle_without_index.
6343         * config/s390/s390.c (s390_decompose_shift_count)
6344         (s390_mem_constraint, print_shift_count_operand)
6345         (print_operand_address, print_operand): Rename
6346         s390_decompose_shift_count to
6347         s390_decompose_addrstyle_without_index and rename
6348         print_shift_count_operand to print_addrstyle_operand troughout the
6349         file.
6350         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
6351         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
6352         Rename shift_count_or_setmem_operand to setmem_operand.
6353         * config/s390/vx-builtins.md ("vec_insert<mode>")
6354         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
6355         nonmemory_operand.
6356
6357 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6358
6359         PR target/70168
6360         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
6361         Handle overlapping retval and newval.
6362
6363 2016-03-10  Nick Clifton  <nickc@redhat.com>
6364
6365         PR target/7044
6366         * config/aarch64/aarch64.c
6367         (aarch64_override_options_after_change_1): When forcing
6368         flag_omit_frame_pointer to be true, use a special value that can
6369         be detected if this function is called again, thus preventing
6370         flag_omit_leaf_frame_pointer from being forced to be false.
6371
6372 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6373
6374         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
6375         Set x_flag_omit_leaf_frame_pointer when handling
6376         -momit-leaf-frame-pointer.
6377
6378 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6379
6380         PR lto/69589
6381         * cgraph.c (cgraph_node::dump): Dump split_part and
6382         indirect_call_target.
6383         * cgraph.h (cgraph_node): Add indirect_call_target flag.
6384         * ipa.c (has_addr_references_p): Cleanup.
6385         (is_indirect_call_target_p): New.
6386         (walk_polymorphic_call_targets): Do not mark virtuals that may be
6387         called indirectly as local.
6388         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
6389
6390 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6391
6392         PR ipa/69630
6393         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
6394         on cxa_pure_virtual.
6395
6396 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6397
6398         PR lto/69589
6399         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
6400
6401 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
6402
6403         PR lto/69589
6404         * tree.c (need_assembler_name_p): Only record main variant type names.
6405
6406 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6407
6408         PR target/70113.
6409         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
6410         Always define to 0 or 1.
6411         (TARGET_FIX_ERR_A53_843419): New macro.
6412         * config/aarch64/aarch64-elf-raw.h
6413         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
6414         * config/aarch64/aarch64-linux.h: Likewise.
6415         * config/aarch64/aarch64.c
6416         (aarch64_override_options_after_change_1): Do not default
6417         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
6418         843419 is on.
6419         (aarch64_attributes): Handle fix-cortex-a53-843419.
6420         (aarch64_can_inline_p): Likewise.
6421         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
6422
6423 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
6424         Jakub Jelinek <jakub@redhat.com>
6425
6426         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
6427         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
6428         DECL_COMMONS if flag_unconstrained_commons is set.
6429         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6430         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
6431         (funconstrained-commons): Document.
6432
6433 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
6434
6435         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
6436         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
6437
6438 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
6439
6440         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
6441         has a proper number of elements.
6442
6443 2016-03-10  Alan Modra  <amodra@gmail.com>
6444
6445         PR rtl-optimization/69195
6446         PR rtl-optimization/47992
6447         * ira.c (recorded_label_ref): Delete.
6448         (update_equiv_regs): Return void.
6449         (indirect_jump_optimize): New function.
6450         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
6451         before regstat_compute_ri.  Don't rebuild_jump_labels here.
6452         Delete update_regstat.
6453
6454 2016-03-10  Richard Biener  <rguenther@suse.de>
6455
6456         PR tree-optimization/70128
6457         * tree-ssa-structalias.c (set_uids_in_ptset): Set
6458         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
6459
6460 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6461
6462         PR tree-optimization/70152
6463         * tree-sra.c (replace_removed_params_ssa_names): Copy over
6464         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
6465
6466         PR target/70086
6467         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
6468         instead of gen_sse2_loadlpd.
6469         * config/i386/sse.md (*vec_concatv2df): Rename to...
6470         (vec_concatv2df): ... this.
6471
6472         PR tree-optimization/70127
6473         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
6474
6475 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6476
6477         PR c/68473
6478         PR c++/70105
6479         * diagnostic-show-locus.c (compatible_locations_p): New function.
6480         (layout::layout): Sanitize ranges using compatible_locations_p.
6481
6482 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
6483
6484         PR c/68473
6485         PR c++/70105
6486         * diagnostic-show-locus.c (layout_range::layout_range): Replace
6487         location_range param with three const expanded_locations * and a
6488         bool.
6489         (layout::layout): Replace call to
6490         rich_location::lazily_expand_location with get_expanded_location.
6491         Extract the range and perform location expansion here, passing
6492         the results to the layout_range ctor.
6493         * diagnostic.c (source_range::debug): Delete.
6494         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
6495         of rich_location::get_expanded_location.
6496         * gcc-rich-location.c (get_range_for_expr): Delete.
6497         (gcc_rich_location::add_expr): Reimplement to avoid the
6498         rich_location::add_range overload that took a location_range,
6499         passing a location_t instead.
6500
6501 2016-03-09  Richard Biener  <rguenther@suse.de>
6502         Jakub Jelinek  <jakub@redhat.com>
6503
6504         PR tree-optimization/70138
6505         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
6506         Also skip vect_double_reduction_def.
6507
6508 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
6509
6510         PR target/70049
6511         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
6512         if the operand is "m".
6513
6514 2016-03-09  Nathan Sidwell  <nathan@acm.org>
6515
6516         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
6517
6518 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
6519
6520         * config/i386/i386.c (processor_target_table): Fix cost table
6521         intialization order for znver1.
6522
6523 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6524
6525         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
6526         - becuase -> because.
6527         * ipa-reference.c (ignore_module_statics): Likewise.
6528         * cgraph.c (cgraph_node::get_body): Likewise.
6529         * ipa-inline.c (early_inliner): Likewise.
6530         * ipa-devirt.c (types_same_for_odr): Likewise.
6531         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
6532         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
6533
6534 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6535
6536         * tree-ssa-math-opts.c: Fix typo in comment.
6537
6538 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
6539
6540         PR target/70110
6541         * config/i386/i386.c (scalar_chain::make_vector_copies,
6542         scalar_chain::convert_reg): Call end_sequence in between
6543         get_insns and emit_conversion_insns rather than after both
6544         calls.
6545
6546 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
6547
6548         PR target/70064
6549         * config/i386/i386.h (machine_function): Add
6550         pc_thunk_call_expanded flag.
6551         (ix86_pc_thunk_call_expanded): New define.
6552         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
6553         (*set_got): Rename insn pattern from set_got.
6554         (*set_got_labelled): Rename inst pattern from set_got_labelled.
6555         * config/i386/i386.c (ix86_compute_frame_layout): Use
6556         ix86_pc_thunk_call_expanded to prevent red-zone.
6557
6558 2016-03-07  Martin Jambor  <mjambor@suse.cz>
6559
6560         * hsa.h (hsa_get_ctor_statements): Declare.
6561         (hsa_get_dtor_statements): Likewise.
6562         (hsa_get_kernel_dispatch_type): Likewise.
6563         * hsa.c (hsa_get_ctor_statements): New function.
6564         (hsa_get_dtor_statements): Likewise.
6565         (hsa_get_kernel_dispatch_type): Likewise.
6566         * hsa-brig.c (hsa_cdtor_statements): Removed.
6567         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
6568         hsa_get_dtor_statements.
6569         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
6570         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
6571
6572 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6573
6574         * config/arm/arm-cores.def (cortex-r8): New.
6575         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
6576         * config/arm/arm-tune.md: Likewise.
6577         * gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.
6578
6579 2016-03-07  Martin Sebor  <msebor@redhat.com>
6580
6581         PR rtl-optimization/19705
6582         * doc/invoke.texi (Options That Control Optimization): Clarify
6583         -fno-branch-count-reg.
6584
6585 2016-02-26  Richard Biener  <rguenther@suse.de>
6586             Jeff Law  <law@redhat.com>
6587
6588         PR tree-optimization/69740
6589         * cfghooks.c (remove_edge): Request loop fixups if we delete
6590         an edge that might turn an irreducible loop into a natural
6591         loop.
6592         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
6593         Move after definition of loops_state_clear.
6594
6595 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
6596
6597         PR rtl-optimization/69052
6598         * rtlanal.c (commutative_operand_precedence): Set higher precedence
6599         to CONST_WIDE_INT.
6600
6601 2016-03-07  Tom de Vries  <tom@codesourcery.com>
6602
6603         PR tree-optimization/70116
6604         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
6605         is_tm_ending stmts and ubsan/asan internal functions.
6606         (find_duplicate): Use it.  Don't test is_tm_ending here.
6607
6608 2016-03-07  Richard Biener  <rguenther@suse.de>
6609
6610         PR tree-optimization/70115
6611         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
6612         (propagate_constants_for_unrolling): Use replace_uses_by.
6613
6614 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
6615
6616         PR middle-end/69916
6617         * omp-low.c (struct oacc_loop): Add ifns.
6618         (new_oacc_loop_raw): Initialize it.
6619         (finish_oacc_loop): Clear mask & flags if no ifns.
6620         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
6621         (oacc_loop_xform_loop): Add ifns arg & adjust.
6622         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
6623
6624 2016-03-07  Richard Henderson  <rth@redhat.com>
6625
6626         PR rtl-opt/70061
6627         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
6628         (insert_value_copy_on_edge): Likewise.
6629
6630 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6631
6632         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
6633
6634 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6635
6636         PR target/62281
6637         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
6638
6639 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6640
6641         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
6642
6643 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
6644
6645         Fix sseimul type attribute.
6646         * config/i386/znver1.md
6647         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
6648         znver1_sseimul_avx256_load) : Fix the type attribute.
6649         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
6650         pipe usage and latency.
6651
6652 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
6653
6654         PR c++/70084
6655         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
6656         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
6657         to the right type.
6658
6659 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6660
6661         PR c/69973
6662         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
6663
6664         PR rtl-optimization/69941
6665         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
6666         the reg share its mode.
6667
6668 2016-03-04  Jeff Law  <law@redhat.com>
6669
6670         PR tree-optimization/69196
6671         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6672         If the both SSA_NAMEs are anonymous, then consider them unassociated
6673         and include the PHI in the statement count.
6674
6675 2016-03-05  Tom de Vries  <tom@codesourcery.com>
6676
6677         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
6678         construct in oacc routine.  Check for oacc region in oacc routine.
6679
6680 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6681
6682         PR target/70062
6683         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
6684         2016-02-22 changes, instead don't recurse if RECUR is already true.
6685         Don't change *dynamic_check if RECUR.  Adjust recursive caller
6686         to pass true to the new argument.
6687         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
6688
6689         PR target/70059
6690         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
6691         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
6692         fixes.
6693         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
6694
6695 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
6696
6697         PR rtl-optimization/57676
6698         * lra-assigns.c (lra_assign): Guard test for maximum iterations
6699         with flag_checking.
6700
6701 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
6702
6703         * tree-vect-patterns.c (search_type_for_mask): Handle
6704         comparison of booleans.
6705
6706 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
6707
6708         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
6709         Fix @xref usage.
6710
6711         PR debug/69947
6712         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
6713         all other ops that have dw_val_class_die_ref operands,
6714         and DW_OP_GNU_entry_value.
6715
6716 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6717
6718         PR rtl-optimization/69904
6719         * config/arm/arm.c (arm_cannot_copy_insn_p):
6720         Return true for load-exclusive instructions.
6721
6722 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
6723
6724         PR target/70021
6725         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
6726         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
6727         the pattern no matter if it is used just by non-pattern, pattern
6728         or mix thereof.
6729         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
6730         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
6731         oprnd1 def_stmt is in pattern, don't look through it.
6732
6733 2016-03-03  Marek Polacek  <polacek@redhat.com>
6734
6735         PR middle-end/70050
6736         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
6737
6738 2016-03-03  Martin Liska  <mliska@suse.cz>
6739
6740         PR tree-optimization/70043
6741         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
6742         previous statement if we see a debug statement.
6743
6744 2016-03-03  Richard Biener  <rguenther@suse.de>
6745
6746         PR tree-optimization/55936
6747         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
6748         parameter and guard unsafe equivalence use.
6749         (vrp_evaluate_conditional_warnv_with_ops): Always use
6750         safe equivalences but not via the quadratic compare_names
6751         helper.
6752
6753 2016-03-03  Michael Collison  <michael.collison@linaro.org>
6754
6755         PR target/70014
6756         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
6757         for operand 1 to s_register_operand. Change predicate for operand
6758         2 to arm_not_immediate_operand.
6759
6760 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
6761
6762         * doc/tm.texi: Regenerated.
6763
6764 2016-03-02  Richard Henderson  <rth@redhat.com>
6765
6766         PR rtl-opt/67145
6767         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
6768         simplification when all args are positive non-fixed registers.
6769
6770 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
6771
6772         * target.def (lra_p): Specify that new ports should use LRA.
6773
6774 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6775
6776         PR libgomp/69555
6777         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
6778         gimplify_type_sizes the type they refer to.
6779         (omp_notice_variable): Handle reference vars to VLAs.
6780         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
6781         reference to VLA decls in the second pass instead of first pass.
6782
6783 2016-03-02  Tom de Vries  <tom@codesourcery.com>
6784
6785         PR tree-optimization/68659
6786         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
6787         new_expr == NULL_TREE.
6788         (get_new_name): Handle ADDR_EXPR.
6789
6790 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
6791
6792         PR rtl-optimization/69052
6793         * loop-invariant.c (canonicalize_address): New function.
6794         (inv_can_prop_to_addr_use): Check validity of address expression
6795         which is canonicalized by above function.
6796
6797 2016-03-02  Alan Modra  <amodra@gmail.com>
6798
6799         PR ipa/69990
6800         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
6801         larger alignment.
6802
6803 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
6804
6805         PR target/70028
6806         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
6807         (*movhi_internal): Put mask moves from and to memory separately
6808         from moves from/to GPRs.
6809
6810 2016-03-02  Richard Biener  <rguenther@suse.de>
6811
6812         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
6813         GENERIC expressions in GIMPLE.
6814
6815 2016-03-02  Richard Biener  <rguenther@suse.de>
6816
6817         * config/i386/i386.c (type_natural_mode): Fix typo.
6818
6819 2016-03-02  Nick Clifton  <nickc@redhat.com>
6820
6821         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
6822
6823 2016-03-02  Richard Biener  <rguenther@suse.de>
6824             Uros Bizjak  <ubizjak@gmail.com>
6825
6826         PR target/67278
6827         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
6828
6829 2016-03-02  Richard Biener  <rguenther@suse.de>
6830
6831         PR middle-end/67278
6832         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
6833
6834 2016-03-02  Marek Polacek  <polacek@redhat.com>
6835
6836         PR c/67854
6837         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
6838         "is promoted to" warning.
6839
6840 2016-03-01  DJ Delorie  <dj@redhat.com>
6841
6842         * config.gcc: Deprecate mep-*.
6843
6844 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
6845
6846         PR middle-end/70025
6847         * lra-constraints.c (regno_val_use_in): New.
6848         (match_reload): Use it instead of regno_use_in.
6849
6850 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6851
6852         PR rtl-optimization/70007
6853         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
6854         references present in REG_EQUAL notes attached to non-SET patterns.
6855
6856 2016-03-01  Jeff Law  <law@redhat.com>
6857
6858         PR tree-optimization/69196
6859         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6860         Appropriately clamp the number of statements to copy when the
6861         thread path does not traverse a loop backedge.
6862
6863         PR tree-optimization/69196
6864         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
6865         Do count some PHIs in the thread path against the insn count.  Decrease
6866         final statement count by one as the control statement in the last
6867         block will get removed.  Remove special cased code for handling PHIs
6868         in the last block.
6869
6870 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
6871
6872         PR target/70027
6873         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
6874         asm dialect alternatives to explicit GOTPCREL calls.
6875
6876 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
6877
6878         PR ada/70017
6879         * ira.c (do_reload): Issue warning for generic stack checking here...
6880         * reload1.c (reload): ...instead of here and streamline it.
6881
6882 2016-03-01  Nick Clifton  <nickc@redhat.com>
6883
6884         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
6885
6886 2016-03-01  Richard Biener  <rguenther@suse.de>
6887
6888         PR tree-optimization/69983
6889         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
6890         types and fall back to operand_equal_p.
6891
6892 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6893
6894         Revert
6895         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6896
6897         * config/s390/constraints.md ("jm8"): New constraint.
6898         * config/s390/predicates.md ("const_int_8bitset_operand"): New
6899         predicate.
6900         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
6901         into ...
6902         ("*setmem_long<setmem_and>"): New pattern.
6903         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
6904         into ...
6905         ("*setmem_long_31z<setmem_and>"): New pattern.
6906         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
6907         New substitution rules with the required attributes.
6908
6909
6910 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6911
6912         Revert
6913         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6914
6915         * gensupport.c (process_substs_on_one_elem): Split loop to
6916         complete mark_operands_used_in_match_dup on all expressions in the
6917         vector first.
6918         (adjust_operands_numbers): Inline into process_substs_on_one_elem
6919         and remove function.
6920
6921 2016-03-01  Richard Biener  <rguenther@suse.de>
6922
6923         PR middle-end/70022
6924         * fold-const.c (fold_indirect_ref_1): Fix range checking for
6925         vector BIT_FIELD_REF extract.
6926
6927 2016-03-01  Richard Biener  <rguenther@suse.de>
6928
6929         PR tree-optimization/69994
6930         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
6931
6932 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6933
6934         PR tree-optimization/69956
6935         * tree-vect-stmts.c (supportable_widening_operation): Support
6936         multi-step conversion of boolean vectors.
6937         (supportable_narrowing_operation): Likewise.
6938
6939 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6940
6941         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
6942         anymore.
6943
6944 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6945
6946         * config/s390/subst.md (DSI_VI): New mode iterator.
6947         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
6948         * config/s390/vector.md ("vec_set<mode>"): Move expander before
6949         the insn definition.
6950         ("*vec_set<mode>"): Change predicate and add alternative to
6951         support only either register or const_int operands as element
6952         selector.
6953         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
6954         operands.
6955         ("vec_extract<mode>"): New expander.
6956         ("*vec_extract<mode>"): New insn definition supporting reg and
6957         const_int element selectors.
6958         ("*vec_extract<mode>_plus"): New insn definition supporting
6959         reg+const_int element selectors.
6960         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
6961         following expander+insn definition.
6962         ("<vec_shifts_name><mode>3"): New expander.
6963         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
6964
6965 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6966
6967         * config/s390/s390.md ("*tabort_1"): Change predicate to
6968         nonmemory_operand.  Add a second alternative to cover
6969         register as well as const int operands.
6970         ("*tabort_1_plus"): New pattern definition.
6971
6972 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6973
6974         * config/s390/s390.md ("*ashrdi3_cc_31")
6975         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
6976         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
6977         Merge insn definitions into ...
6978         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6979         New pattern definition.
6980         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
6981         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
6982         ("*ashr<mode>3_and"): Merge insn definitions into ...
6983         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
6984         New pattern definition.
6985         * config/s390/subst.md ("addr_style_op_cc_subst")
6986         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
6987         substitutions patterns plus attributes.
6988         Add ashiftrt to SUBST iterator.
6989
6990 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6991
6992         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
6993         op2 to nonmemory_operand.
6994         ("*<shift>di3_31", "*<shift>di3_31_and"):
6995         Merge into single pattern definition ...
6996         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
6997         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
6998         pattern definition ...
6999         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
7000         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
7001         iterator.
7002
7003 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7004
7005         * config/s390/predicates.md (const_int_6bitset_operand): New
7006         predicate.
7007         * config/s390/s390.md: Include subst.md.
7008         ("rotl<mode>3"): New expander.
7009         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
7010         ...
7011         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
7012         * config/s390/subst.md: New file.
7013
7014 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7015
7016         * config/s390/s390.md ("op_type", "atype", "length" attributes):
7017         Remove RRR type.  It doesn't really exist.
7018         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
7019         attributes.
7020         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
7021         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
7022         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
7023         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
7024         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
7025         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
7026         `enabled' attribute.
7027
7028 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7029
7030         * gensupport.c (process_substs_on_one_elem): Split loop to
7031         complete mark_operands_used_in_match_dup on all expressions in the
7032         vector first.
7033         (adjust_operands_numbers): Inline into process_substs_on_one_elem
7034         and remove function.
7035
7036 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7037
7038         PR target/69706
7039         * config/sparc/sparc.c (NWORDS_UP): Rename to...
7040         (CEIL_NWORDS): ...this.  Use CEIL macro.
7041         (compute_fp_layout): Adjust to above renaming.
7042         (function_arg_union_value): Likewise.
7043         (sparc_arg_partial_bytes): Likewise.
7044         (sparc_function_arg_advance): Likewise.
7045
7046 2016-02-29  Jeff Law  <law@redhat.com>
7047
7048         PR tree-optimization/70005
7049         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
7050         where an object with a boolean range is compared against a value
7051         outside [0..1].
7052
7053         PR tree-optimization/69999
7054         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
7055         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
7056         loop cleanups.
7057
7058 2016-02-29  Richard Biener  <rguenther@suse.de>
7059
7060         PR tree-optimization/69994
7061         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
7062         (get_unary_op): Look through nop conversions.
7063         (ops_equal_values_p): New function, look for equality diregarding
7064         nop conversions.
7065         (eliminate_plus_minus_pair): Use ops_equal_values_p
7066         (repropagate_negates): Do not use get_unary_op here.
7067
7068 2016-02-29  Martin Liska  <mliska@suse.cz>
7069
7070         * system.h: Poison ENABLE_CHECKING macro.
7071
7072 2016-02-29  Martin Liska  <mliska@suse.cz>
7073
7074         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
7075         is presented in dump flags.
7076         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7077         (hsa_regalloc): Likewise.
7078
7079 2016-02-19  Richard Biener  <rguenther@suse.de>
7080
7081         PR tree-optimization/69980
7082         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
7083         permutation of those we need to keep.
7084
7085 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
7086
7087         PR target/69706
7088         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
7089         (NWORDS_UP): ...this
7090         (init_cumulative_args): Minor tweaks.
7091         (sparc_promote_function_mode): Likewise.
7092         (scan_record_type): Delete.
7093         (traverse_record_type): New function template.
7094         (classify_data_t): New structure type.
7095         (classify_registers): New inline function.
7096         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
7097         exhausted.  Instantiate traverse_record_type on classify_registers and
7098         deal with the case of a structure passed in slot #15 with no FP field
7099         in the first word.
7100         (assign_data_t): New structure type.
7101         (compute_int_layout): New static function.
7102         (compute_fp_layout): Likewise.
7103         (count_registers): New inline function.
7104         (assign_int_registers): New static function.
7105         (assign_fp_registers): Likewise.
7106         (assign_registers): New inline function.
7107         (function_arg_record_value_1): Delete.
7108         (function_arg_record_value_2): Likewise.
7109         (function_arg_record_value_3): Likewise.
7110         (function_arg_record_value): Adjust to above changes.  Instantiate
7111         traverse_record_type on count_registers to first count the number of
7112         registers to be used and then on assign_registers to assign them.
7113         (function_arg_union_value): Adjust to above renaming.
7114         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
7115         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
7116         case of a structure passed in slot #15
7117         (sparc_function_arg_advance): Likewise.
7118         (function_arg_padding): Minor tweak.
7119
7120 2016-02-29  Richard Biener  <rguenther@suse.de>
7121
7122         PR tree-optimization/69720
7123         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
7124         the adjustment_def path for possibly vectorized defs.
7125         (vect_create_epilog_for_reduction): Handle vectorized initial
7126         defs properly.
7127
7128 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
7129
7130         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
7131
7132 2016-02-27  Jeff Law  <law@redhat.com>
7133
7134         Revert
7135         2016-02-26  Richard Biener  <rguenther@suse.de>
7136                     Jeff Law  <law@redhat.com>
7137
7138         PR tree-optimization/69740
7139         * cfghooks.c (remove_edge): Request loop fixups if we delete
7140         an edge that might turn an irreducible loop into a natural
7141         loop.
7142
7143 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
7144
7145         PR rtl-optimization/69896
7146         * tree-vect-generic.c (get_compute_type): Avoid single element
7147         vector types.
7148
7149 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
7150
7151         Rename the AArch64 tuning option and related functions to enable the
7152         Newton series for the reciprocal square root to reflect its
7153         approximative characteristic.
7154
7155         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
7156         function to "aarch64_emit_approx_rsqrt".
7157         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
7158         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
7159         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
7160         (xgene1_tunings): Likewise.
7161         (use_rsqrt_p): Likewise.
7162         (aarch64_emit_swrsqrt): Use new function name.
7163         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
7164         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
7165         text explaining this option.
7166         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
7167
7168 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7169
7170         PR target/69969
7171         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
7172         complain about -mallow-movmisalign without -mvsx if
7173         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
7174
7175 2016-02-26  Joel Sherrill  <joel@rtems.org>
7176
7177         * config.gcc: Add x86_64-*-rtems*.
7178         * gcc/config/i386/rtems-64.h: New file.
7179
7180 2016-02-26  Joel Sherrill  <joel@rtems.org>
7181
7182         * config.gcc: Add aarch64-*-rtems*.
7183         * gcc/config/aarch64/rtems.h: New file.
7184
7185 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
7186
7187         PR target/69946
7188         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
7189         shift amount using %h.  Add comment.
7190
7191 2016-02-26  Richard Biener  <rguenther@suse.de>
7192             Jeff Law  <law@redhat.com>
7193
7194         PR tree-optimization/69740
7195         * cfghooks.c (remove_edge): Request loop fixups if we delete
7196         an edge that might turn an irreducible loop into a natural
7197         loop.
7198
7199 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7200
7201         PR middle-end/69920
7202         * tree-sra.c (sra_modify_assign): Do not remove loads of
7203         uninitialized aggregates to SSA_NAMEs.
7204
7205 2016-02-26  Richard Henderson  <rth@redhat.com>
7206
7207         PR target/69709
7208         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
7209         pseudo in case the target rtx matches the source of the left
7210         shift.
7211
7212 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7213
7214         PR hsa/69568
7215         * hsa.h (hsa_type_packed_p): Declare.
7216         * hsa.c (hsa_type_packed_p): New function.
7217         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
7218         loads.
7219         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
7220         * hsa-brig.c (emit_basic_insn): Likewise.
7221
7222 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7223
7224         pr hsa/69674
7225         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
7226         pointers.
7227         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
7228
7229 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7230
7231         * hsa.h (is_a_helper): New overload for hsa_op_immed for
7232         hsa_op_with_type operands.
7233         (hsa_unsigned_type_for_type): Declare.
7234         * hsa.c (hsa_unsigned_type_for_type): New function.
7235         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
7236         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
7237         the finalizer.  Do not emit extra move.
7238
7239 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7240
7241         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
7242         atomic operations in private segment.
7243
7244 2016-02-26  Martin Jambor  <mjambor@suse.cz>
7245
7246         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
7247         statements to wi->info.  Also disallow omp simd constructs.
7248         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
7249         for not gridifying.  Dump special string for omp_for.
7250
7251 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7252
7253         PR target/69245
7254         * config/aarch64/aarch64.c (aarch64_set_current_function):
7255         Save/restore target globals when switching to
7256         target_option_default_node.
7257
7258 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7259
7260         PR target/69613
7261         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
7262         Return 0 if !SHIFT_COUNT_TRUNCATED.
7263
7264 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
7265             Eric Botcazou  <ebotcazou@adacore.com>
7266
7267         PR rtl-optimization/69891
7268         * dse.c (scan_insn): If we can't figure out memset arguments
7269         or they are non-constant, call clear_rhs_from_active_local_stores.
7270
7271 2016-02-26  Martin Liska  <mliska@suse.cz>
7272
7273         * doc/extend.texi: Mention clog10, clog10f an clog10l
7274         in Builtins section.
7275
7276 2016-02-26  Martin Liska  <mliska@suse.cz>
7277
7278         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
7279         CHECKING_P.
7280         (resolve_args_picking_1): Likewise.
7281         * dwarf2out.h (struct GTY): Likewise.
7282
7283 2016-02-26  Martin Liska  <mliska@suse.cz>
7284
7285         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
7286         with flag_checking.
7287         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
7288
7289 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
7290             Martin Liska  <mliska@suse.cz>
7291
7292         * doc/install.texi: Mention --enable-valgrind-annotations.
7293
7294 2016-02-26  Richard Biener  <rguenther@suse.de>
7295
7296         PR tree-optimization/69551
7297         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
7298         looking through aliases adjust DECL_PT_UID to refer to the
7299         ultimate alias target.
7300
7301 2016-02-25  Martin Liska  <mliska@suse.cz>
7302
7303         PR middle-end/69919
7304         * alloc-pool.c (after_memory_report): New variable.
7305         * alloc-pool.h (base_pool_allocator ::release): Do not use
7306         the infrastructure if after_memory_report.
7307         * toplev.c (toplev::main): Mark after memory report.
7308
7309 2016-02-25  Richard Biener  <rguenther@suse.de>
7310
7311         PR tree-optimization/48795
7312         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
7313
7314 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
7315
7316         PR driver/68463
7317         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
7318         offloading is enabled and -fopenacc or -fopenmp is specified.
7319         (CRTOFFLOADEND): Likewise.
7320         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
7321         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
7322         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
7323         (offload_objects_file_name): New static var.
7324         (tool_cleanup): Remove offload_objects_file_name file.
7325         (find_offloadbeginend): Replace with ...
7326         (find_crtoffloadtable): ... this.
7327         (run_gcc): Remove offload_argc and offload_argv.
7328         Get offload_objects_file_name from -foffload-objects=... option.
7329         Read names of object files with offload from this file, pass them to
7330         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
7331         don't pass offloadbegin and offloadend to the linker.  Don't pass
7332         offload non-LTO files to the linker, because now they're not claimed.
7333
7334 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
7335
7336         PR ipa/69630
7337         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
7338         on builtin_unreachable.
7339
7340 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
7341
7342         PR rtl-optimization/69896
7343         * regcprop.c: Include cfgrtl.h.
7344         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
7345         than remembered mode, either delete it (if noop_move_p), or
7346         treat like copy_p but not noop_p instruction.
7347
7348 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7349
7350         PR debug/69705
7351         * dwarf2out.c (gen_variable_die): Work around buggy LTO
7352         - allow NULL decl for Fortran DW_TAG_common_block variables.
7353
7354 2016-02-24  Jason Merrill  <jason@redhat.com>
7355
7356         * common.opt (flifetime-dse): Add -flifetime-dse=1.
7357
7358 2016-02-24  Richard Biener  <rguenther@suse.de>
7359             Jakub Jelinek  <jakub@redhat.com>
7360
7361         PR middle-end/69760
7362         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
7363         conditionally executed ops to well-defined overflow behavior.
7364
7365 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7366
7367         PR middle-end/69915
7368         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
7369         elements.
7370
7371 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7372
7373         PR rtl-optimization/69886
7374         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
7375         argument.  Use it when checking validity of set instructions.
7376         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
7377         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
7378         callsite.
7379         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
7380         * store-motion.c (find_moveable_store): Update
7381         can_assign_to_reg_without_clobbers_p callsite.
7382
7383 2016-02-24  Richard Biener  <rguenther@suse.de>
7384
7385         PR middle-end/68963
7386         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
7387         bogus check.
7388         (record_nonwrapping_iv): Do not fall back to the low/high bound
7389         for non-constant IV bases if the stmt is not always executed.
7390
7391 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7392
7393         * config/arm/arm-cores.def (cortex-a32): New entry.
7394         * config/arm/arm-tables.opt: Regenerate.
7395         * config/arm/arm-tune.md: Regenerate.
7396         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
7397         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
7398         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
7399         for -mcpu and -mtune.
7400
7401 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7402
7403         PR target/69875
7404         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
7405         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
7406         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
7407         (atomic_loaddi_1): Delete.
7408         (atomic_loaddi): Rewrite expander using the above changes.
7409
7410 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7411
7412         PR c/69918
7413         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
7414         2 to 3.
7415
7416 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
7417             Richard Biener  <rguenth@suse.de>
7418
7419         PR middle-end/69909
7420         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
7421         set_mem_attributes if tem is SSA_NAME which got expanded
7422         as a MEM.
7423
7424 2016-02-24  Richard Biener  <rguenther@suse.de>
7425
7426         PR tree-optimization/69907
7427         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
7428         end of permutations for BB vectorization.
7429
7430 2016-02-24  Christian Bruel  <christian.bruel@st.com>
7431
7432         * config/arm/arm-c.c (arm_option_override): Initialize
7433         target_option_current_node.
7434         * config/arm/arm.c (arm_pragma_target_parse): Replace
7435         build_target_option_node call by target_option_current_node.
7436         Set target_option_current_node.
7437         Fix comments.
7438
7439 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
7440
7441         PR target/69810
7442         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
7443         define_insn_and_split to define_insn.
7444         (zero_extendqi<mode>2_dot2): Same.
7445         (extendqi<mode>2_dot): Same.
7446         (extendqi<mode>2_dot2): Same.
7447
7448 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7449
7450         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
7451         and add bypass for AES{D,E} and AESMC pairs.
7452         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
7453         and AESMC pairs.
7454
7455 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
7456
7457         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
7458         series for reciprocal square root in Exynos M1.
7459
7460 2016-02-23  Martin Sebor  <msebor@redhat.com>
7461
7462         PR c/69759
7463         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
7464         __builtin_alloca_with_align.
7465
7466 2016-02-23  Richard Henderson  <rth@redhat.com>
7467
7468         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
7469         (ix86_register_pragmas): Remove __seg_tls.
7470         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
7471         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
7472         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
7473         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
7474         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
7475         * doc/extend.texi (__seg_tls): Remove item.
7476
7477 2016-02-23  Richard Biener  <rguenther@suse.de>
7478
7479         * alloc-pool.h (struct allocation_object): Make id member
7480         conditional on CHECKING_P again.
7481         (get_instance): Adjust.
7482         (base_pool_allocator): Likewise.
7483
7484 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
7485
7486         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
7487         (parallelize_loops): In OpenACC kernels mode, set n_threads to
7488         zero.
7489         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
7490         flag_openacc.
7491         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
7492
7493 2016-02-23  Richard Biener  <rguenther@suse.de>
7494
7495         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
7496         * bitmap.h (struct bitmap_usage): Likewise.
7497         (bitmap_move): Declare.
7498         * bitmap.c (register_overhead): Take size_t argument.
7499         (bitmap_move): New function.
7500         * df-problems.c (df_rd_transfer_function): Use bitmap_move
7501         to properly account overhead.
7502         * tree.c (free_node): Use tree_size.
7503
7504 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
7505
7506         PR c++/69902
7507         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
7508         when inverting comparison.
7509
7510         PR c/69900
7511         * common.opt (Wunreachable-code): Add Warning flag.
7512
7513 2016-02-23  Mark Wielaard  <mjw@redhat.com>
7514             Jakub Jelinek  <jakub@redhat.com>
7515
7516         PR c/69911
7517         * cgraphunit.c (check_global_declaration): Check main_input_filename
7518         and DECL_SOURCE_FILE are not NULL.
7519
7520 2016-02-23  Martin Jambor  <mjambor@suse.cz>
7521
7522         PR tree-optimization/69666
7523         * tree-sra.c (sra_modify_assign): Do not attempt to create
7524         default_def replacements for unscalarizable regions.
7525
7526 2016-02-20  Mark Wielaard  <mjw@redhat.com>
7527
7528         PR c/28901
7529         * cgraphunit.c (check_global_declaration): Check level of
7530         warn_unused_const_variable and main_input_filename.
7531         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
7532         (-Wunused-variable): For C implies -Wunused-const-variable=1.
7533         (-Wunused-const-variable): Explain levels 1 and 2.
7534
7535 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7536
7537         PR target/69888
7538         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
7539         identical arguments.  Formatting and spelling fixes.
7540
7541         PR target/69885
7542         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
7543         be specified.
7544
7545         PR target/69894
7546         PR target/69895
7547         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
7548         and m68k-devices.def.
7549         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
7550         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
7551
7552 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
7553
7554         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
7555         and HImode registers.
7556
7557 2016-02-22  Richard Biener  <rguenther@suse.de>
7558
7559         PR tree-optimization/69882
7560         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
7561         preserve permutations present because of gaps.
7562         (vect_supported_load_permutation_p): Always continue checking
7563         permutations after vect_attempt_slp_rearrange_stmts.
7564
7565 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
7566
7567         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
7568         min_profitable_estimate, rather than min_profitable_iters.
7569
7570 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
7571
7572         PR target/69885
7573         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
7574         SImode for last match_operand.
7575
7576 2016-02-22  Martin Liska  <mliska@suse.cz>
7577
7578         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
7579         return bitsize - 1 as the return value.
7580
7581 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
7582
7583         PR target/69806
7584         PR target/54089
7585         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
7586         Handle negative shift counts.
7587         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
7588         force_reg on the shift constant.
7589         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
7590         (lshrsi3_d): Handle negative shift counts.
7591
7592 2016-02-22  Richard Biener  <rguenther@suse.de>
7593             Tom de Vries  <tom@codesourcery.com>
7594
7595         * graph.c: Include dumpfile.h.
7596         (print_graph_cfg): Split into three overloads.
7597         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
7598
7599 2016-02-22  Tom de Vries  <tom@codesourcery.com>
7600
7601         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
7602         dump-fn.
7603
7604 2016-02-22  Richard Biener  <rguenther@suse.de>
7605
7606         PR ipa/37448
7607         * ipa-inline-transform.c (inline_call): When not updating
7608         overall summaries adjust self size by the growth estimate.
7609         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
7610         hash-set, do not update overall summaries here.  Renamed from ...
7611         (inline_to_all_callers): ... this which is now wrapping the
7612         above and performing delayed overall summary update.
7613         (early_inline_small_functions): Delay updating of the overall
7614         summary.
7615
7616 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7617
7618         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
7619         variable.
7620
7621 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7622
7623         PR driver/69805
7624         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
7625         :%* in %:gt() argument.
7626         (greater_than_spec_func): Adjust for expecting only numbers,
7627         if there are more than two numbers, compare the last two.
7628
7629 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
7630
7631         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
7632         -Wnarrowing with -std.
7633
7634 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
7635
7636         PR c++/69851
7637         * expr.c (store_field): Don't use bit-field path if exp is
7638         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
7639         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
7640         and the assignment can be performed by bitwise copy.  Formatting
7641         fix.
7642
7643         PR middle-end/69838
7644         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
7645         call copy_reg_eh_region_note_forward on before and/or after sequences
7646         and remove note from insn if it no longer can throw.
7647
7648         PR target/69820
7649         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
7650         if TARGET_AVX512BW.
7651
7652 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7653
7654         * config/s390/vector.md: Add missing commutative operand markers
7655         to the patterns which qualify for one.
7656         * config/s390/vx-builtins.md: Likewise.
7657
7658 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7659
7660         * config/s390/vector.md (VI, VI_QHS): Add single element vector
7661         types to mode iterators.
7662         (vec_double): ... and mode attribute.
7663         * config/s390/vx-builtins.md (non_vec_int): Likewise.
7664
7665 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7666
7667         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
7668         Change the predicate of op2 from nonimmediate to general and let
7669         reload fix it if necessary.
7670
7671 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7672
7673         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
7674
7675 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7676
7677         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
7678         mode.
7679
7680 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7681
7682         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
7683         * config/s390/s390.c (s390_expand_vec_movstr): New function.
7684         * config/s390/s390.md ("movstr<P:mode>"): Call
7685         s390_expand_vec_movstr.
7686
7687 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7688
7689         * config/s390/s390.md: Add missing output modifier for operand 1
7690         to print it as address properly.
7691
7692 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7693
7694         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
7695         * config/s390/2964.md: New file.
7696         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
7697         of insn grouping attributes depending on the CPU level.
7698         (s390_get_unit_mask): New function.
7699         (s390_sched_score): Remove the OOO from the scheduling macros.
7700         Add loop to calculate a score for the instruction mix.
7701         (s390_sched_reorder): Likewise plus improve debug output.
7702         (s390_sched_variable_issue): Rename macros as above.  Calculate
7703         the unit distances after actually scheduling an insn.  Improve
7704         debug output.
7705         (s390_sched_init): Clear last_scheduled_unit_distance array.
7706         * config/s390/s390.md: Include 2964.md.
7707
7708 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7709
7710         PR target/69671
7711         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
7712         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
7713         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
7714         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
7715         *avx512f_<code>v8div16qi2_mask_1): New insns.
7716
7717 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
7718
7719         PR target/68404
7720         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
7721         2016-02-09 change.
7722
7723         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
7724         earlyclobber from target.  Use wF constraint for fused memory
7725         address.
7726         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
7727
7728 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
7729             Martin Liska  <mliska@suse.cz>
7730
7731         PR sanitizer/69863
7732         * cfgexpand.c (asan_sanitize_stack_p): New function.
7733         (partition_stack_vars): Use the function.
7734         (expand_stack_vars): Likewise.
7735         (defer_stack_allocation): Likewise.
7736         (expand_used_vars): Likewise.
7737
7738 2016-02-18  Richard Biener  <rguenther@suse.de>
7739
7740         PR middle-end/69553
7741         * fold-const.c (operand_equal_p): Properly compare offsets for
7742         IMAGPART_EXPR and ARRAY_REF.
7743
7744 2016-02-18  Nick Clifton  <nickc@redhat.com>
7745
7746         PR target/62254
7747         PR target/69610
7748         * config/arm/arm.c (arm_option_override_internal): Disable
7749         interworking if the target does not support thumb instructions.
7750         (arm_reload_in_hi): Handle the case where a register to register
7751         move needs reloading because there is no simple pattern to handle
7752         it.
7753         (arm_reload_out_hi): Likewise.
7754
7755 2016-02-18  Richard Biener  <rguenther@suse.de>
7756
7757         PR middle-end/69854
7758         * match.pd: Don't use fold_binary or fold_unary for folding
7759         constants.
7760
7761 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
7762
7763         PR c++/69850
7764         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
7765         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
7766         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
7767         warn on gimple_no_warning_p statements.
7768
7769 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
7770
7771         * doc/extend.texi (C++ Attributes): Correct description of
7772         warn_unused type attribute.
7773
7774 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7775
7776         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
7777         correct instruction.
7778
7779 2016-02-17  Richard Biener  <rguenther@suse.de>
7780
7781         PR rtl-optimization/69609
7782         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
7783         (find_traces_1_round): When ending a trace update cached priority
7784         of successors.
7785         (bb_to_key): Use cached priority when available.
7786         (copy_bb): Initialize cached priority.
7787         (reorder_basic_blocks_software_trace_cache): Likewise.
7788
7789 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7790
7791         PR target/69161
7792         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
7793         New predicate.
7794         (aarch64_comparison_operator): Break overly long line into two.
7795         (aarch64_comparison_operation): Likewise.
7796         * config/aarch64/aarch64.md (cstorecc4): Use
7797         aarch64_comparison_operator_mode instead of
7798         aarch64_comparison_operator.
7799         (cstore<mode>4): Likewise.
7800         (aarch64_cstore<mode>): Likewise.
7801         (*cstoresi_insn_uxtw): Likewise.
7802         (cstore<mode>_neg): Likewise.
7803         (*cstoresi_neg_uxtw): Likewise.
7804
7805 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7806
7807         PR target/69161
7808         * config/arm/predicates.md (arm_comparison_operator_mode):
7809         New predicate.
7810         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
7811         instead of arm_comparison_operator.
7812         (*mov_negscc): Likewise.
7813         (*mov_notscc): Likewise.
7814         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
7815         (*thumb2_mov_negscc): Likewise.
7816         (*thumb2_mov_negscc_strict_it): Likewise.
7817         (*thumb2_mov_notscc): Likewise.
7818         (*thumb2_mov_notscc_strict_it): Likewise.
7819
7820 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
7821
7822         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
7823         Add missing return.
7824
7825 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
7826
7827         * config/visium/visium.c (machine_libfunc_index): New enum.
7828         (machine_libfuncs): New structure.
7829         (visium_libfuncs): New static variable.
7830         (TARGET_INIT_LIBFUNCS): Define to...
7831         (visium_init_libfuncs): ...this.  New function.
7832         (expand_block_move_4): Use the appropriate libfunc.
7833         (expand_block_move_2): Likewise.
7834         (expand_block_move_1): Likewise.
7835         (expand_block_set_4): Likewise.
7836         (expand_block_set_2): Likewise.
7837         (expand_block_set_1): Likewise.
7838         (visium_trampoline_init): Likewise.
7839
7840 2016-02-17  Nick Clifton  <nickc@redhat.com>
7841
7842         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
7843         TI's devices.csv file as of March 2016.
7844
7845 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7846
7847         PR Target/48344
7848         * opts-global.c (handle_common_deferred_options): Introduce and
7849         initialize two global variables to remember command-line options
7850         specifying a stack-limiting register.
7851         * opts.h: Add extern declarations of the two new global variables.
7852         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
7853         variable based on the values of the two new global variables.
7854
7855 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7856
7857         PR c/69835
7858         * common.opt (Wnonnull-compare): New warning.
7859         * doc/invoke.texi (-Wnonnull): Remove text about comparison
7860         of arguments against NULL.
7861         (-Wnonnull-compare): Document.
7862         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
7863         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
7864         * passes.def (pass_warn_nonnull_compare): Add.
7865         * gimple-ssa-nonnull-compare.c: New file.
7866
7867 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7868
7869         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
7870         AARCH64_EXTRA_TUNE_RECIP_SQRT.
7871
7872 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7873
7874         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
7875         reciprocal sqrt for -mlow-precision-recip-sqrt.
7876
7877 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7878             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7879
7880         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
7881         always use lane loads to construct non-constant vectors.
7882
7883 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
7884
7885         * config/aarch64/aarch64.md
7886         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
7887         constraints for operand 3.
7888         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
7889
7890 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7891             Richard Biener  <rguenther@suse.de>
7892
7893         PR tree-optimization/69820
7894         * tree-vect-patterns.c (type_conversion_p): Return false if
7895         *orig_type is unsigned single precision or boolean.
7896         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
7897         Formatting fix.
7898
7899 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7900
7901         PR rtl-optimization/69764
7902         PR rtl-optimization/69771
7903         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
7904         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
7905
7906 2016-02-16  Richard Biener  <rguenther@suse.de>
7907
7908         PR tree-optimization/69776
7909         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
7910         sets from caller.
7911         (indirect_refs_may_alias_p): Likewise.
7912         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
7913         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
7914         according to tbaa_p.
7915         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
7916         (optimize_stmt): For redundant store discovery do not allow tbaa.
7917
7918 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
7919
7920         PR tree-optimization/69714
7921         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
7922         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
7923
7924 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
7925
7926         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
7927         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
7928         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
7929         * config/arc/arc.c (arc_init): Check FPU options.
7930         (get_arc_condition_code): Handle new CC_FPU* modes.
7931         (arc_select_cc_mode): Likewise.
7932         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
7933         register pair only. Allow access for ARCv2 accumulator.
7934         (gen_compare_reg): Whenever we have FPU support use FPU compare
7935         instructions.
7936         (arc_reorg): Don't generate brcc insns when FPU compare
7937         instructions are involved.
7938         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
7939         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
7940         floating point emulation.
7941         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
7942         (REVERSE_CONDITION): Add new CC_FPU* modes.
7943         (TARGET_FP_SP_BASE): Define.
7944         (TARGET_FP_DP_BASE): Likewise.
7945         (TARGET_FP_SP_FUSED): Likewise.
7946         (TARGET_FP_DP_FUSED): Likewise.
7947         (TARGET_FP_SP_CONV): Likewise.
7948         (TARGET_FP_DP_CONV): Likewise.
7949         (TARGET_FP_SP_SQRT): Likewise.
7950         (TARGET_FP_DP_SQRT): Likewise.
7951         (TARGET_FP_DP_AX): Likewise.
7952         * config/arc/arc.md (ARCV2_ACC): New constant.
7953         (type): New fpu type attribute.
7954         (SDF): Conditional iterator.
7955         (cstore<mode>, cbranch<mode>): Change expand condition.
7956         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
7957         handles FPU/FPX cases as well.
7958         * config/arc/arc.opt (mfpu): New option.
7959         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
7960         Renamed.
7961         (adddf3, muldf3, subdf3): Removed.
7962         * config/arc/predicates.md (proper_comparison_operator): Recognize
7963         CC_FPU* modes.
7964         * config/arc/fpu.md: New file.
7965         * doc/invoke.texi (ARC Options): Document mfpu option.
7966
7967 2016-02-16  Richard Biener  <rguenther@suse.de>
7968
7969         PR rtl-optimization/69291
7970         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
7971         noce_operand_ok check.
7972
7973 2016-02-16  Tom de Vries  <tom@codesourcery.com>
7974
7975         PR lto/67709
7976         * omp-low.c (simd_clone_create): Remove call to
7977         symtab->call_cgraph_insertion_hooks.
7978
7979 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
7980
7981         PR tree-optimization/69802
7982         * tree-ssa-reassoc.c (update_range_test): If op is
7983         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
7984         op == 1 test of precision 1 integral op, otherwise handle
7985         that case as op itself.  Fix up formatting.
7986         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
7987         up formatting.
7988
7989 2016-02-16  Richard Biener  <rguenther@suse.de>
7990
7991         PR tree-optimization/69586
7992         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
7993         types for conversion sources.
7994
7995 2016-02-16  Richard Biener  <rguenther@suse.de>
7996
7997         PR middle-end/69801
7998         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
7999         mask OEP_ADDRESS_OF.
8000
8001 2016-02-16  Alan Modra  <amodra@gmail.com>
8002
8003         PR target/68973
8004         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
8005         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
8006         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
8007         (p8_mtvsrwz): New.
8008         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
8009         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
8010         (p8_fmrgow_<mode>): Likewise.
8011         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
8012         changes.
8013         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
8014         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
8015         to use movdi_internal64.  Remove op0_di.
8016         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
8017
8018 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
8019
8020         Add support for the FCCMP insn types
8021
8022         * config/aarch64/aarch64.md (fccmp): Change insn type.
8023         (fccmpe): Likewise.
8024         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
8025         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
8026         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
8027         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
8028         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
8029         * config/arm/types.md (fccmps): Add new insn type.
8030         (fccmpd): Likewise.
8031
8032 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8033
8034         * alias.c (get_alias_set): Fix a typo in comment.
8035
8036 2016-02-15  Richard Biener  <rguenther@suse.de>
8037
8038         PR tree-optimization/69595
8039         * match.pd: Complete range test simplification to true.
8040
8041 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
8042
8043         PR rtl-optimization/69648
8044         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
8045         pic_offset_table_rtx.
8046
8047         PR rtl-optimization/69752
8048         * ira.c (update_equiv_regs): When looking for more than a single SET,
8049         also take other side effects into account.
8050
8051 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8052
8053         * config/s390/s390.c (s390_function_profiler): Add a new sequence
8054         for z900+ CPUs in 31-bit mode.
8055
8056 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
8057
8058         * common/config/s390/s390-common.c (s390_supports_split_stack):
8059         New function.
8060         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
8061         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
8062         * config/s390/s390.c (struct machine_function): New field
8063         split_stack_varargs_pointer.
8064         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
8065         in s390_emit_prologue.
8066         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
8067         vararg pointer.
8068         (morestack_ref): New global.
8069         (SPLIT_STACK_AVAILABLE): New macro.
8070         (s390_expand_split_stack_prologue): New function.
8071         (s390_live_on_entry): New function.
8072         (s390_va_start): Use split-stack vararg pointer if appropriate.
8073         (s390_asm_file_end): Emit the split-stack note sections.
8074         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
8075         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
8076         (UNSPECV_SPLIT_STACK_CALL): New unspec.
8077         (UNSPECV_SPLIT_STACK_DATA): New unspec.
8078         (split_stack_prologue): New expand.
8079         (split_stack_space_check): New expand.
8080         (split_stack_data): New insn.
8081         (split_stack_call): New expand.
8082         (split_stack_call_*): New insn.
8083         (split_stack_cond_call): New expand.
8084         (split_stack_cond_call_*): New insn.
8085
8086 2016-02-15  Richard Biener  <rguenther@suse.de>
8087
8088         PR tree-optimization/69783
8089         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8090         Add trivially correct cases.
8091
8092 2016-02-15  Tom de Vries  <tom@codesourcery.com>
8093
8094         PR lto/69655
8095         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
8096         do_force_output.
8097         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
8098
8099 2016-02-15  Richard Biener  <rguenther@suse.de>
8100
8101         PR tree-optimization/69776
8102         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
8103         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
8104         indicate whether we can use TBAA to disambiguate against stores.
8105         Use alias-set zero if not.
8106         (visit_reference_op_store): Do not use TBAA when looking up
8107         redundant stores.
8108         * tree-ssa-pre.c (compute_avail): Use TBAA here.
8109         (eliminate_dom_walker::before_dom_children): But not when looking
8110         up redundant stores.
8111
8112 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
8113
8114         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
8115
8116 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
8117
8118         *  config/i386/znver1.md
8119         (znver1_pop, znver1_pop_mem,
8120         znver1_load_imov_double_store,
8121         znver1_load_imov_direct_store,
8122         znver1_load_imov_direct_load,
8123         znver1_load_imov_double_load): Add new.
8124         (znver1_insn, znver1_insn_load): Add icmov type.
8125         (znver1_sseavx_fma,
8126         znver1_sseavx_fma_load,
8127         znver1_avx256_fma,
8128         znver1_avx256_fma_load): Fix pipe usage.
8129
8130 2016-02-14  Alan Modra  <amodra@gmail.com>
8131
8132         PR target/68973
8133         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
8134         with an invalid hard reg, reload just the reg not the entire
8135         pre/post-inc/dec address expression.
8136
8137 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8138
8139         PR target/67260
8140         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
8141         fixed R1_REG scratch reg.
8142         (sibcall_value_pcrel_fdpic): Likewise.
8143
8144 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
8145
8146         PR target/67636
8147         PR target/64345
8148         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
8149
8150 2016-02-12  Walter Lee  <walt@tilera.com>
8151
8152         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
8153         * config/tilegx/t-tilegx: Likewise.
8154
8155 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8156
8157         PR other/69554
8158         * diagnostic-show-locus.c (struct line_span): New struct.
8159         (layout::get_first_line): Delete.
8160         (layout::get_last_line): Delete.
8161         (layout::get_num_line_spans): New member function.
8162         (layout::get_line_span): Likewise.
8163         (layout::print_heading_for_line_span_index_p): Likewise.
8164         (layout::get_expanded_location): Likewise.
8165         (layout::calculate_line_spans): Likewise.
8166         (layout::m_first_line): Delete.
8167         (layout::m_last_line): Delete.
8168         (layout::m_line_spans): New field.
8169         (layout::layout): Update comment.  Replace m_first_line and
8170         m_last_line with m_line_spans, replacing their initialization
8171         with a call to calculate_line_spans.
8172         (diagnostic_show_locus): When printing source lines and
8173         annotations, rather than looping over a single span
8174         of lines, instead loop over each line_span within
8175         the layout, with an inner loop over the lines within them.
8176         Call the context's start_span callback when changing line spans.
8177         * diagnostic.c (diagnostic_initialize): Initialize start_span.
8178         (diagnostic_build_prefix): Break out the building of the location
8179         part of the string into...
8180         (diagnostic_get_location_text): ...this new function, rewriting
8181         it from nested ternary expressions to a sequence of "if"
8182         statements.
8183         (default_diagnostic_start_span_fn): New function.
8184         * diagnostic.h (diagnostic_start_span_fn): New typedef.
8185         (diagnostic_context::start_span): New field.
8186         (default_diagnostic_start_span_fn): New prototype.
8187
8188 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8189
8190         PR driver/69779
8191         * gcc.c (driver::finalize): Fix cleanup of "specs".
8192
8193 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
8194
8195         PR driver/69265
8196         PR driver/69453
8197         * gcc.c (driver::driver): Initialize m_option_suggestions.
8198         (driver::~driver): Clean up m_option_suggestions.
8199         (suggest_option): Convert to...
8200         (driver::suggest_option): ...this, and split out into
8201         driver::build_option_suggestions and find_closest_string.
8202         (driver::build_option_suggestions): New function, from
8203         first half of suggest_option.  Special-case
8204         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
8205         the sanitizer_opts array.  For options of enum types, add the
8206         various enum values to the candidate strings.
8207         (driver::handle_unrecognized_options): Remove "const".
8208         * gcc.h (driver::handle_unrecognized_options): Likewise.
8209         (driver::build_option_suggestions): New decl.
8210         (driver::suggest_option): New decl.
8211         (driver::m_option_suggestions): New field.
8212         * opts-common.c (add_misspelling_candidates): New function.
8213         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
8214         and make non-static.
8215         * opts.h (sanitizer_opts): New array decl.
8216         (add_misspelling_candidates): New function decl.
8217         * spellcheck.c (find_closest_string): New function.
8218         * spellcheck.h (find_closest_string): New function decl.
8219
8220 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8221
8222         PR rtl-optimization/69764
8223         PR rtl-optimization/69771
8224         * optabs.c (expand_binop_directly): For shift_optab_p, force
8225         convert_modes with VOIDmode if xop1 has VOIDmode.
8226
8227 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
8228
8229         PR target/69729
8230         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
8231         to correctly determine instrumentation thunks.
8232
8233 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8234
8235         PR ipa/69241
8236         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
8237         type by reference, force lhs on the call.
8238
8239         PR ipa/68672
8240         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
8241         Compute retval and retbnd early in all cases if split_part_return_p
8242         and return_bb is not EXIT.  Remove all clobber stmts and reset
8243         all debug stmts that refer to SSA_NAMEs defined in split part,
8244         except if it is retval, in that case replace the old retval with the
8245         lhs of the call to the split part.
8246
8247 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8248
8249         revert:
8250         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8251
8252         PR middle-end/66726
8253         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8254         whose result is used in PHI.
8255         (maybe_optimize_range_tests): Likewise.
8256         (final_range_test_p): Likweise.
8257
8258 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
8259
8260         PR middle-end/66726
8261         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
8262         whose result is used in PHI.
8263         (maybe_optimize_range_tests): Likewise.
8264         (final_range_test_p): Likweise.
8265
8266 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
8267
8268         * cgraph.c: Spelling fixes - behaviour -> behavior and
8269         neighbour -> neighbor.
8270         * target.def: Likewise.
8271         * sel-sched.c: Likewise.
8272         * config/mips/mips.c: Likewise.
8273         * config/arc/arc.md: Likewise.
8274         * config/arm/cortex-a57.md: Likewise.
8275         * config/arm/arm.c: Likewise.
8276         * config/arm/neon.md: Likewise.
8277         * config/arm/arm-c.c: Likewise.
8278         * config/vms/vms-c.c: Likewise.
8279         * config/s390/s390.c: Likewise.
8280         * config/i386/znver1.md: Likewise.
8281         * config/i386/i386.c: Likewise.
8282         * config/ia64/hpux-unix2003.h: Likewise.
8283         * config/msp430/msp430.md: Likewise.
8284         * config/rx/rx.c: Likewise.
8285         * config/rx/rx.md: Likewise.
8286         * config/aarch64/aarch64-simd.md: Likewise.
8287         * config/aarch64/aarch64.c: Likewise.
8288         * config/nvptx/nvptx.c: Likewise.
8289         * config/bfin/bfin.c: Likewise.
8290         * config/cris/cris.opt: Likewise.
8291         * config/rs6000/rs6000.c: Likewise.
8292         * target.h: Likewise.
8293         * spellcheck.c: Likewise.
8294         * ira-build.c: Likewise.
8295         * tree-inline.c: Likewise.
8296         * builtins.c: Likewise.
8297         * lra-constraints.c: Likewise.
8298         * explow.c: Likewise.
8299         * hwint.h: Likewise.
8300         * targhooks.c: Likewise.
8301         * tree-vect-data-refs.c: Likewise.
8302         * expr.c: Likewise.
8303         * doc/tm.texi: Likewise.
8304         * doc/extend.texi: Likewise.
8305         * doc/install.texi: Likewise.
8306         * doc/md.texi: Likewise.
8307         * tree-ssa-tail-merge.c: Likewise.
8308         * sched-int.h: Likewise.
8309         * match.pd: Likewise.
8310         * sched-ebb.c: Likewise.
8311         * target.def (omit_struct_return_reg): Likewise.
8312         * gimple-ssa-isolate-paths.c: Likewise.
8313         (find_implicit_erroneous_behaviour): Renamed to...
8314         (find_implicit_erroneous_behavior): ... this.
8315         (find_explicit_erroneous_behaviour): Renamed to...
8316         (find_explicit_erroneous_behavior): ... this.
8317         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
8318
8319 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
8320
8321         PR rtl-optimization/64682
8322         PR rtl-optimization/69567
8323         PR rtl-optimization/69737
8324         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
8325         in I2 as well, just lose it.
8326
8327 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8328
8329         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
8330         New variable.
8331         (aarch64_last_printed_tune_string): Likewise.
8332         (aarch64_declare_function_name): Only output .arch assembler
8333         directive if it will be different from the previously output
8334         directive.  Same for .tune comment but only if -dA is set.
8335         (aarch64_start_file): New function.
8336         (TARGET_ASM_FILE_START): Define.
8337
8338 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
8339
8340         PR plugins/69758
8341         * Makefile.in (PLUGIN_HEADERS): Add params.list.
8342
8343 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
8344
8345         PR target/65313
8346         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
8347         -Wmaybe-uninitialized warning.
8348
8349 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
8350
8351         PR target/69713
8352         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
8353
8354 2016-02-11  Richard Biener  <rguenther@suse.de>
8355
8356         PR rtl-optimization/69291
8357         * ifcvt.c (noce_try_store_flag_constants): Do not allow
8358         subexpressions affected by changing the result.
8359
8360 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
8361
8362         PR target/69148
8363         * lra-constraints.c (curr_insn_transform): Find in/out operands
8364         for secondary memory moves.  Update dups.
8365
8366 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
8367
8368         PR tree-optimization/69652
8369         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
8370         to nested loop, did source re-formatting, skip debug statements,
8371         add check on statement with volatile operand, remove dead scalar
8372         statements.
8373
8374 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
8375             Patrick Palka  <ppalka@gcc.gnu.org>
8376
8377         PR ipa/69241
8378         PR c++/69649
8379         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
8380         calls if the return type is TREE_ADDRESSABLE.
8381         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
8382         * ipa-split.c (split_function): Fix doubled "we" in comment.
8383         Use void return type for the split part even if
8384         !split_point->split_part_set_retval.
8385
8386 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
8387
8388         PR tree-optimization/68021
8389         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
8390         when computing the value of biv cand by itself.
8391
8392 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8393
8394         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
8395         (cortexa57_tunings): Likewise.
8396         (cortexa72_tunings): Likewise.
8397         (arch_macro_fusion_pair_p): Add support for AES fusion.
8398         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
8399         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
8400         Allow virtual registers before reload so early scheduling works.
8401         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
8402         correct latency and pipeline.
8403         (cortex_a57_crypto_complex): Likewise.
8404         (cortex_a57_crypto_xor): Likewise.
8405         (define_bypass): Add AES bypass.
8406
8407 2016-02-10  Richard Biener  <rguenther@suse.de>
8408
8409         PR tree-optimization/69726
8410         * passes.def: Add DCE pass before late uninit.
8411         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
8412         really fixup if-conversions job.
8413
8414 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
8415
8416         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
8417         (arm_cortex_a57_tune): Likewise.
8418         (aarch_macro_fusion_pair_p): Add support for AES fusion.
8419         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
8420
8421 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
8422
8423         * timevar.def (TV_PHASE_DBGINFO): Delete.
8424         (TV_PHASE_CHECK_DBGINFO): Likewise.
8425         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
8426
8427 2016-02-10  Richard Biener  <rguenther@suse.de>
8428
8429         PR tree-optimization/69719
8430         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8431         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
8432
8433 2016-02-09  Andrew Pinski  <apinski@cavium.com>
8434
8435         PR tree-opt/69282
8436         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
8437         get_vcond_mask_icode returns false.
8438
8439 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
8440
8441         PR target/68404
8442         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
8443         an ADDIS that adds a pointer to a large constant that sets the
8444         upper16 bits with a load operation.
8445
8446 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8447
8448         PR target/68532
8449         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
8450         order.
8451         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
8452         endian.
8453         (vzipq_s16): Likewise.
8454         (vzipq_s32): Likewise.
8455         (vzipq_f32): Likewise.
8456         (vzipq_u8): Likewise.
8457         (vzipq_u16): Likewise.
8458         (vzipq_u32): Likewise.
8459         (vzipq_p8): Likewise.
8460         (vzipq_p16): Likewise.
8461
8462 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
8463
8464         PR target/68532
8465         * config/arm/arm.c (neon_endian_lane_map): New function.
8466         (neon_vector_pair_endian_lane_map): New function.
8467         (arm_evpc_neon_vuzp): Allow for big endian lane order.
8468         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
8469         endian.
8470         (vuzpq_s16): Likewise.
8471         (vuzpq_s32): Likewise.
8472         (vuzpq_f32): Likewise.
8473         (vuzpq_u8): Likewise.
8474         (vuzpq_u16): Likewise.
8475         (vuzpq_u32): Likewise.
8476         (vuzpq_p8): Likewise.
8477         (vuzpq_p16): Likewise.
8478
8479 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
8480
8481         PR target/69634
8482         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
8483         debug insns.
8484
8485 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
8486
8487         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
8488         truncate const_int operand 1 to QImode.
8489
8490 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
8491
8492         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
8493         corresponding to an abnormal edge.
8494
8495 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8496
8497         PR tree-optimization/69599
8498         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
8499         function.
8500         (find_func_aliases_for_builtin_call, find_func_clobbers)
8501         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
8502         partition.
8503
8504 2016-02-09  Richard Biener  <rguenther@suse.de>
8505
8506         PR tree-optimization/69715
8507         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
8508         LHS on calls as non-rewritable.
8509
8510 2016-02-09  Tom de Vries  <tom@codesourcery.com>
8511
8512         PR lto/69707
8513         * lto-wrapper.c (append_diag_options): New function.
8514         (compile_offload_image): Call append_diag_options.
8515
8516 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
8517
8518         PR other/69722
8519         * doc/extend.texi (Flag Output Operands): Correct sectioning.
8520         Minor copy-edit to fix verb tenses.
8521
8522 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
8523
8524         PR tree-optimization/69209
8525         * ipa-split.c (split_function): If split part is not
8526         returning retval, retval has gimple type but is not
8527         gimple value, force it into a SSA_NAME first.
8528
8529 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
8530
8531         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
8532         outdated section.
8533
8534 2016-02-08  Jason Merrill  <jason@redhat.com>
8535
8536         PR c++/69631
8537         * convert.c (convert_to_integer_1): Check dofold on truncation
8538         distribution.
8539         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
8540         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
8541         Rename from *_nofold.
8542         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
8543         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
8544
8545 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
8546
8547         PR target/60410
8548         * tree.c (build_common_tree_nodes): Remove short_double argument.
8549         All callers changed.
8550         * tree.h (build_common_tree_nodes): Adjust declaration.
8551         * doc/invoke.texi (-fshort-double): Remove documentation.
8552         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
8553         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
8554         * lto-wrapper.c (merge_and_complain, append_compiler_options)
8555         (append_linker_options): Don't handle OPT_fshort_double.
8556
8557         PR rtl-optimization/68730
8558         * lra-remat.c (insn_to_cand_activation): New static variable.
8559         (lra_remat): Allocate and free it.
8560         (create_cand): New arg activation. Initialize a field in
8561         insn_to_cand_activation if it is nonnull.
8562         (create_cands): Pass the activation insn to create_cand when making
8563         a candidate involving an output reload.  Reorganize code a little.
8564         (do_remat): Keep track of active status of candidates in a separate
8565         bitmap.
8566
8567 2016-02-08  Richard Biener  <rguenther@suse.de>
8568
8569         PR tree-optimization/69719
8570         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
8571         Properly use absolute of the difference of the two offsets to
8572         compare or adjust the segment length.
8573
8574 2016-02-08  Richard Biener  <rguenther@suse.de>
8575             Jeff Law  <law@redhat.com>
8576
8577         PR target/68273
8578         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
8579         types for anonymous SSA names.
8580
8581 2016-02-08   Richard Biener  <rguenther@suse.de>
8582
8583         PR rtl-optimization/69274
8584         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
8585
8586 2016-02-08  Jeff Law  <law@redhat.com>
8587
8588         PR tree-optimization/65917
8589         * tree-ssa-dom.c (record_temporary_equivalences): Record both
8590         equivalences from if (x == y) style conditionals.
8591         (loop_depth_of_name): Remove.
8592         (record_equality): Remove loop depth check.
8593         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
8594         (const_and_copies::record_const_or_copy_raw): New member function.
8595         * tree-ssa-scopedtables.c
8596         (const_and_copies::record_const_or_copy_raw): New, factored out of
8597         (const_and_copies::record_const_or_copy): Call new member function.
8598
8599 2016-02-05  Jeff Law  <law@redhat.com>
8600
8601         PR tree-optimization/68541
8602         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
8603         (count_stmts_in_block): New function.
8604         (poor_ifcvt_candidate_code): Likewise.
8605         (is_feasible_trace): Add some heuristics to determine when path
8606         splitting is profitable.
8607         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
8608         is a diamond with a single exit.
8609
8610 2016-02-05  Martin Sebor  <msebor@redhat.com>
8611
8612         PR c++/69662
8613         * doc/invoke.texi: Update -Wplacement-new to take an optional
8614         argument.
8615
8616 2016-02-06  Richard Henderson  <rth@redhat.com>
8617
8618         PR c/69643
8619         * tree.c (tree_nop_conversion_p): Do not strip casts into or
8620         out of non-standard address spaces.
8621
8622 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8623
8624         PR rtl-optimization/69691
8625         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
8626
8627 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
8628
8629         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
8630         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
8631         (*ieee128_mfvsrd_64bit): Likewise.
8632         (*ieee128_mfvsrd_32bit): Likewise.
8633
8634 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
8635
8636         PR target/69369
8637         Revert r232560:
8638         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
8639
8640         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
8641         instrumented_version.
8642
8643 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
8644
8645         * doc/invoke.texi (Optimize Options): In table of --param options
8646         rename second occurrence of tracer-min-branch-ratio to
8647         tracer-min-branch-probability, rename
8648         tracer-min-branch-ratio-feedback to
8649         tracer-min-branch-probability-feedback and clarify description,
8650         rename sched-spec-state-edge-prob-cutoff to
8651         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
8652         to selsched-insns-to-rename, rename lto-minpartition to
8653         lto-min-partition, delete reorder-blocks-duplicate and
8654         reorder-blocks-duplicate-feedback.
8655
8656 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8657
8658         * config/s390/s390.c (s390_register_info_set_ranges): Remove
8659         superfluous loops.
8660
8661 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8662
8663         * doc/extend.texi: S/390: Correct some typos.
8664
8665 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8666
8667         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
8668
8669 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8670
8671         PR target/69625
8672         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
8673         (s390_register_info_gprtofpr): Use new macros above.
8674         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
8675         its name.
8676         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
8677         its name.  Adjust restore and save gpr ranges.
8678         (s390_register_info_set_ranges): New function.
8679         (s390_register_info): Use new macros above.  Call
8680         s390_register_info_set_ranges.
8681         (s390_optimize_register_info): Likewise.
8682         (s390_hard_regno_rename_ok): Use new macros.
8683         (s390_hard_regno_scratch_ok): Likewise.
8684         (s390_emit_epilogue): Likewise.
8685         (s390_can_use_return_insn): Likewise.
8686         (s390_optimize_prologue): Likewise.
8687         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
8688
8689 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
8690
8691         PR bootstrap/69677
8692         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
8693         alignment fixes.
8694         (ix86_option_override_internal): Disable TARGET_STV even for
8695         -m{incoming,preferred}-stack-boundary=3.
8696
8697 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8698
8699         * config.gcc: Mark deprecated rtems targets as obsolete.
8700
8701 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
8702
8703         PR rtl-optimization/64682
8704         PR rtl-optimization/69567
8705         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
8706         before I2 only if the register is both used and set in I2.
8707
8708 2016-02-04  DJ Delorie  <dj@redhat.com>
8709
8710         * config/msp430/msp430.c (msp430_start_function): Add function type.
8711
8712 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8713
8714         PR fortran/69368
8715         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
8716
8717 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
8718
8719         PR rtl-optimization/69577
8720         Revert:
8721         2015-10-29  Richard Henderson  <rth@redhat.com>
8722
8723         PR target/68124
8724         PR rtl-opt/67609
8725         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
8726         sse check to the exact conditions of PR 67609.
8727
8728 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
8729
8730         PR target/69667
8731         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
8732         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
8733         not allowed into the traditional Altivec registers.
8734         (movtd_64bit_nodm): Likewise.
8735         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
8736
8737 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
8738
8739         * config/aarch64/cortex-a57-fma-steering.c
8740         (aarch64_register_fma_steering): Remove "static" from arguments
8741         to register_pass.
8742
8743 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
8744
8745         PR target/69619
8746         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
8747         twice when complex.
8748
8749 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
8750
8751         * doc/invoke.texi: Delete -mno-fma4.
8752
8753 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
8754
8755         PR rtl-optimization/69577
8756         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
8757         (find_subregs_of_mode): Update accordingly.  Iterate over partial
8758         definitions.
8759
8760 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
8761
8762         * config/arm/arm-protos.h (neon_reinterpret): Remove.
8763         * config/arm/arm.c (neon_reinterpret): Remove.
8764         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
8765         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
8766         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
8767         vreinterpretti): Remove.
8768         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
8769         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
8770         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
8771         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
8772         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
8773         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
8774         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
8775         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
8776         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
8777         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
8778         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
8779         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
8780         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
8781         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
8782         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
8783         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
8784         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
8785         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
8786         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
8787         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
8788         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
8789         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
8790         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
8791         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
8792         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
8793         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
8794         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
8795         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
8796         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
8797         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
8798         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
8799         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
8800         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
8801         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
8802         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
8803         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
8804         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
8805         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
8806         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
8807         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
8808         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
8809         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
8810         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
8811         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
8812         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
8813         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
8814         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
8815         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
8816         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
8817         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
8818         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
8819         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
8820         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
8821         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
8822         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
8823         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
8824         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
8825         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
8826         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
8827         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
8828         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
8829         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
8830         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
8831         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
8832         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
8833         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
8834         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
8835         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
8836         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
8837         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
8838         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
8839         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
8840         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
8841         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
8842         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
8843         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
8844         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
8845         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
8846         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
8847         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
8848         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
8849         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
8850         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
8851         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
8852         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
8853         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
8854         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
8855         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
8856         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
8857         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
8858         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
8859         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
8860         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
8861         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
8862         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
8863         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
8864         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
8865         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
8866         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
8867         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
8868         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
8869         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
8870         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
8871
8872 2016-02-04  Martin Liska  <mliska@suse.cz>
8873
8874         PR sanitizer/69276
8875         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
8876         that are gimple_store_p.
8877         (maybe_instrument_call): Likewise.
8878
8879 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
8880
8881         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
8882         register scaling out of memory reference and comment why.
8883
8884 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8885
8886         PR target/65932
8887         PR target/67714
8888         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
8889         folding the source of a SET.
8890
8891 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8892
8893         PR target/65932
8894         PR target/67714
8895         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
8896         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
8897
8898 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
8899
8900         PR target/65932
8901         PR target/67714
8902         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
8903         HImode.
8904
8905 2016-02-04  Christian Bruel  <christian.bruel@st.com>
8906
8907         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
8908         * config/arm/arm.c (arm_set_current_function): Likewise.
8909
8910 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
8911             Ilya Enkovich  <enkovich.gnu@gmail.com>
8912             H.J. Lu  <hongjiu.lu@intel.com>
8913
8914         PR target/69454
8915         * config/i386/i386.c (convert_scalars_to_vector): Remove
8916         stack alignment fixes.
8917         (ix86_option_override_internal): Disable TARGET_STV if stack
8918         might not be aligned enough.
8919         (ix86_minimum_alignment): Assert that TARGET_STV is false.
8920
8921 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
8922
8923         * gcc/config/i386/x86-tune.def: Disable default prefetching
8924         for -march=znver1.
8925
8926 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
8927             Vladimir Makarov  <vmakarov@redhat.com>
8928
8929         PR target/69461
8930         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
8931         in validating fused toc addresses.
8932
8933 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
8934
8935         PR c/69627
8936         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
8937         range->m_caret fields if range->m_show_caret_p is false.
8938
8939         PR target/69644
8940         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
8941         Force oldval into register if it does not satisfy reg_or_short_operand
8942         predicate.  Fix up formatting.
8943
8944 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
8945             Alexandre Oliva  <aoliva@redhat.com>
8946
8947         PR target/69461
8948         * lra-constraints.c (simplify_operand_subreg): Check additionally
8949         address validity after potential reloading.
8950         (process_address_1): Check insns validity.  In case of failure do
8951         nothing.
8952
8953 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
8954
8955         PR target/69118
8956         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
8957         Fix target.
8958
8959 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
8960
8961         * wide-int.cc (canonize_uhwi): New function.
8962         (wi::divmod_internal): Use it.
8963
8964 2016-02-02  James Norris  <jnorris@codesourcery.com
8965
8966         * gimplify.c (omp_notice_variable): Add usage check.
8967
8968 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
8969
8970         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
8971         like LE, GE, LT, GT when emitting relational operator.
8972
8973 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8974
8975         * ira-costs.c (find_costs_and_classes): Add extra argument.
8976         * target.def (ira_change_pseudo_allocno_class): Add parameter.
8977         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
8978         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
8979         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
8980         Add best_class parameter, and return it if not ALL_REGS.
8981         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
8982         Add parameter.
8983         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
8984         Update target hook.
8985
8986 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
8987
8988         * config/aarch64/aarch64.c
8989         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
8990         (aarch64_ira_change_pseudo_allocno_class): New function.
8991
8992 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
8993
8994         PR target/67032
8995         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
8996
8997 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
8998
8999         * config/avr/avr.c (avr_option_override): Set
9000         PARAM_ALLOW_STORE_DATA_RACES to 1.
9001
9002 2016-02-02  Richard Biener  <rguenther@suse.de>
9003
9004         PR tree-optimization/69595
9005         * match.pd: Add range test simplifications to true/false.
9006
9007 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
9008
9009         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
9010         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
9011         instead.
9012
9013 2016-02-02  Richard Biener  <rguenther@suse.de>
9014
9015         PR tree-optimization/69606
9016         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
9017         info on the result before moving a stmt.
9018
9019 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
9020
9021         PR middle-end/68542
9022         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
9023         branch with vector comparison.
9024         * config/i386/sse.md (VI48_AVX): New mode iterator.
9025         (define_expand "cbranch<mode>4): Add support for conditional branch
9026         with vector comparison.
9027         * tree-vect-loop.c (optimize_mask_stores): New function.
9028         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
9029         has_mask_store field of vect_info.
9030         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
9031         vectorized loops having masked stores after vec_info destroy.
9032         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
9033         correspondent macros.
9034         (optimize_mask_stores): Add prototype.
9035
9036 2016-02-02  Alan Modra  <amodra@gmail.com>
9037
9038         PR target/69548
9039         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
9040         allow subregs.
9041
9042 2016-02-02  Alan Modra  <amodra@gmail.com>
9043
9044         PR target/68662
9045         * config/rs6000/rs6000.c (need_toc_init): New var, set it
9046         whenever toc_label_name used.
9047         (rs6000_file_start): Don't set up toc section here,
9048         (rs6000_output_function_epilogue): do so here instead,
9049         (rs6000_xcoff_file_start): and here.
9050         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
9051         (load_toc_aix_di): Likewise.
9052
9053 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9054
9055         PR rtl-optimization/69592
9056         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
9057         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
9058         (num_sign_bit_copies_binary_arith_p): New inline function.
9059         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
9060
9061 2016-02-01  Jeff Law  <law@redhat.com>
9062
9063         PR tree-optimization/69580
9064         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
9065         * tree-ssa-threadbackward.c
9066         (fsm_find_control_statement_thread_paths): Do not try to walk
9067         through large PHI nodes.
9068
9069 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9070
9071         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
9072         when count is incremented above limit, don't analyze further
9073         insns afterwards.
9074
9075         * omp-low.c (oacc_parse_default_dims): Avoid
9076         -Wsign-compare warning, make sure value fits into int
9077         rather than just unsigned int.
9078
9079 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
9080
9081         PR tree-optimization/67921
9082         * fold-const.c (split_tree): New parameters.  Convert pointer
9083         type variable part to proper type before negating.
9084         (fold_binary_loc): Pass new arguments to split_tree.
9085
9086 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
9087
9088         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
9089         (nvptx_goacc_validate_dims): Extend to handle global defaults.
9090         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
9091         * doc/tm.texti: Rebuilt.
9092         * doc/invoke.texi (fopenacc-dim): Document.
9093         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
9094         (append_compiler_options): Likewise.
9095         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
9096         (oacc_parse_default_dims): New.
9097         (oacc_validate_dims): Add USED arg.  Select non-unity default when
9098         possible.
9099         (oacc_loop_fixed_partitions): Return mask of used partitions.
9100         (oacc_loop_auto_partitions): Emit dump info.
9101         (oacc_loop_partition): Return mask of used partitions.
9102         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
9103         loop partitioning and validation calls.
9104
9105 2016-02-01  Richard Biener  <rguenther@suse.de>
9106
9107         PR middle-end/69556
9108         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
9109
9110 2016-02-01  Richard Biener  <rguenther@suse.de>
9111
9112         PR tree-optimization/69574
9113         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
9114         of asserting return chrec_dont_know.
9115
9116 2016-02-01  Martin Liska  <mliska@suse.cz>
9117
9118         * mem-stats-traits.h: Add copyright header.
9119         * mem-stats.h: Likewise.
9120
9121 2016-02-01  Richard Biener  <rguenther@suse.de>
9122
9123         PR tree-optimization/69579
9124         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
9125         Do not propagate through abnormal PHI results.
9126
9127 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
9128
9129         * postreload.c (reload_cse_simplify): Remove dead code.
9130
9131 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
9132
9133         PR rtl-optimization/69570
9134         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
9135         if there is more than one set, not if there is a single set.
9136
9137 2016-02-01  Richard Henderson  <rth@redhat.com>
9138
9139         PR rtl-opt/69535
9140         * combine.c (make_compound_operation): When looking through a
9141         subreg, make sure to re-extend to the width of the outer mode.
9142
9143 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
9144
9145         PR tree-optimization/69546
9146         * wide-int.cc (wi::divmod_internal): For unsigned division
9147         where both operands fit into uhwi, if o1 is 1 and o0 has
9148         msb set, if divident_prec is larger than bits per hwi,
9149         clear another quotient word and return 2 instead of 1.
9150         Similarly for remainder with msb in HWI set, if dividend_prec
9151         is larger than bits per hwi.
9152
9153 2016-01-29  Martin Jambor  <mjambor@suse.cz>
9154
9155         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
9156         Use short lowercase names.
9157         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
9158         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
9159         acq_rel one.  Protect warning agains segfaults if
9160         get_memory_order_name returns NULL.
9161         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
9162         with release semantics.  Do not warn if get_memory_order already did.
9163         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
9164         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
9165         if get_memory_order already did.
9166
9167 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
9168
9169         * doc/install.texi: Document that isl-0.16 is supported.
9170
9171 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
9172
9173         PR target/69299
9174         * config/i386/constraints.md (Bm): Describe as special memory
9175         constraint.
9176         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
9177         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9178         * genpreds.c (struct constraint_data): Add is_special_memory.
9179         (have_special_memory_constraints, special_memory_start): New
9180         static vars.
9181         (special_memory_end): Ditto.
9182         (add_constraint): Add new arg is_special_memory.  Add code to
9183         process its true value.  Update have_special_memory_constraints.
9184         (process_define_constraint): Pass the new arg.
9185         (process_define_register_constraint): Ditto.
9186         (choose_enum_order): Process special memory.
9187         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
9188         function insn_extra_special_memory_constraint.
9189         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9190         * gensupport.c (process_rtx): Process
9191         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
9192         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
9193         * ira-lives.c (single_reg_class): Use
9194         insn_extra_special_memory_constraint.
9195         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
9196         * lra-constraints.c (process_alt_operands): Ditto.
9197         (curr_insn_transform): Use insn_extra_special_memory_constraint.
9198         * recog.c (asm_operand_ok, preprocess_constraints): Process
9199         CT_SPECIAL_MEMORY.
9200         * reload.c (find_reloads): Ditto.
9201         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
9202         * stmt.c (parse_input_constraint): Use
9203         insn_extra_special_memory_constraint.
9204
9205 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9206
9207         PR target/69530
9208         * lra-splill.c (lra_final_code_change): Revert r229087 by
9209         removing all sub-registers.
9210
9211 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
9212
9213         PR target/65604
9214         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
9215
9216 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
9217
9218         PR target/69551
9219         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
9220         SSE1, copy target into the temporary reg first before recursing
9221         on it.
9222
9223 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
9224
9225         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
9226         with vm.
9227
9228 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9229
9230         * ginclude/stdarg.h: Test __cplusplus instead of
9231         __GXX_EXPERIMENTAL_CXX0X__.
9232
9233 2016-01-29  Richard Biener  <rguenther@suse.de>
9234
9235         PR tree-optimization/69547
9236         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
9237         Do not mark clobbers necessary.
9238         (mark_all_reaching_defs_necessary_1): Likewise.
9239
9240 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9241
9242         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
9243         declaration name with %qs and print it in both error messages.
9244         Also fix indentation.
9245
9246 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9247
9248         PR other/69006
9249         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
9250         trailing blank line from error message.
9251
9252 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
9253
9254         PR c++/69462
9255         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
9256         for C++-11.
9257
9258 2016-01-29  Richard Biener  <rguenther@suse.de>
9259
9260         PR middle-end/69537
9261         * match.pd: Allow all integral types when simplifying a
9262         widening or sign-changing conversion.
9263
9264 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9265
9266         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
9267         back to setting codegen_error to fail codegen.
9268
9269 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
9270
9271         PR target/69459
9272         * config/i386/constraints.md (C): Only accept constant zero operand.
9273         (BC): New constraint.
9274         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
9275         instead of C constraint.
9276         * doc/md.texi (Machine Constraints): Update description
9277         of C constraint.
9278
9279 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
9280
9281         PR target/68400
9282         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
9283
9284 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
9285
9286         PR middle-end/69542
9287         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
9288         non-debug insns.
9289
9290 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
9291
9292         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
9293         branches if using guessed profile.
9294
9295 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
9296
9297         * graphite-optimize-isl.c (optimize_isl): Fix dump.
9298
9299 2016-01-28  Richard Henderson  <rth@redhat.com>
9300
9301         PR target/69305
9302         * config/aarch64/aarch64-modes.def (CC_Cmode): New
9303         * config/aarch64/aarch64-protos.h: Update.
9304         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
9305         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
9306         (aarch64_get_condition_code_1): Handle CC_Cmode.
9307         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
9308         (*add<mode>3_compareC_cconly_imm): New.
9309         (*add<mode>3_compareC_cconly): New.
9310         (*add<mode>3_compareC_imm): New.
9311         (add<mode>3_compareC): New.
9312         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
9313         to be first.  Use aarch64_carry_operation.
9314         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
9315         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
9316         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
9317         (subti3): Use subdi3_compare1.
9318         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
9319         (sub<mode>3_compare1): New.
9320         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
9321         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
9322         (*subsi3_carryin_uxtw): Likewise.
9323         (*ngc<mode>, *ngcsi_uxtw): Likewise.
9324         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
9325         * config/aarch64/iterators.md (DWI): New.
9326         * config/aarch64/predicates.md (aarch64_carry_operation): New.
9327         (aarch64_borrow_operation): New.
9328
9329 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9330
9331         * graphite-optimize-isl.c (optimize_isl): Print a different debug
9332         message when isl does not return a valid schedule.
9333
9334 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9335
9336         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
9337         Remove comments from class declarations: they are already in the code
9338         close by the defs.
9339
9340 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9341
9342         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
9343         codegen_error_p.
9344         (ternary_op_to_tree): Same.
9345         (unary_op_to_tree): Same.
9346         (nary_op_to_tree): Same.
9347         (gcc_expression_from_isl_expr_op): Same.
9348         (gcc_expression_from_isl_expression): Same.
9349         (graphite_create_new_loop): Same.
9350         (graphite_create_new_loop_guard): Same.
9351         (build_iv_mapping): Same.
9352         (graphite_create_new_guard): Same.
9353         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
9354         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
9355
9356 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
9357
9358         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
9359         instead of setting codegen_error to fail codegen.
9360
9361 2016-01-28  Jason Merrill  <jason@redhat.com>
9362
9363         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
9364
9365 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9366
9367         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
9368         Remove CONST_INT_P check in CCMP cost calculation.
9369
9370 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9371
9372         * config/aarch64/aarch64.c (generic_vector_cost):
9373         Set vec_permute_cost.
9374         (cortexa57_vector_cost): Likewise.
9375         (exynosm1_vector_cost): Likewise.
9376         (xgene1_vector_cost): Likewise.
9377         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
9378         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
9379         Add vec_permute_cost entry.
9380
9381 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
9382
9383         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
9384         immediate as %1.
9385         (add<mode>3_compare0): Likewise.
9386         (addsi3_compare0_uxtw): Likewise.
9387         (add<mode>3nr_compare0): Likewise.
9388         (compare_neg<mode>): Likewise.
9389         (<optab><mode>3): Likewise.
9390
9391 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
9392
9393         * tree-vect-stmts.c (vectorizable_comparison): Add
9394         NULL check for vectype.
9395
9396 2016-01-28  Richard Biener  <rguenther@suse.de>
9397
9398         PR tree-optimization/69466
9399         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
9400         Account for PHIs we couldn't duplicate.
9401
9402 2016-01-28  Martin Liska  <mliska@suse.cz>
9403
9404         PR pch/68758
9405         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
9406         instead of ENABLE_VALGRIND_CHECKING.
9407
9408 2016-01-27  Richard Henderson  <rth@redhat.com>
9409
9410         PR rtl-opt/69447
9411         * lra-remat.c (subreg_regs): New.
9412         (dump_candidates_and_remat_bb_data): Dump it.
9413         (operand_to_remat): Reject if operand in subreg_regs.
9414         (set_bb_regs): Collect subreg_regs.
9415         (lra_remat): Init and free subreg_regs.  Compute
9416         calculate_local_reg_remat_bb_data before create_cands.
9417
9418 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
9419
9420         PR target/68986
9421         * config/i386/i386.c (ix86_update_stack_boundary): Don't
9422         change stack_alignment_needed for __tls_get_addr call.
9423
9424 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
9425
9426         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
9427
9428 2016-01-27  Jeff Law  <law@redhat.com>
9429
9430         PR tree-optimization/68398
9431         PR tree-optimization/69196
9432         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
9433         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
9434         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9435         Only count PHIs in the last block in the path.  The others will
9436         const/copy propagate away.  Add heuristic to allow more irreducible
9437         subloops to be created when it is likely profitable to do so.
9438
9439         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
9440         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
9441         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
9442
9443 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9444
9445         PR lto/69254
9446         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
9447         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
9448         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
9449         * tree-streamer-in.c: Include asan.h.
9450         (streamer_get_builtin_tree): For builtins in sanitizer
9451         range call initialize_sanitizer_builtins and retry.
9452
9453 2016-01-27  Ian Lance Taylor  <iant@google.com>
9454
9455         * common.opt (fkeep-gc-roots-live): New undocumented option.
9456         * tree-ssa-loop-ivopts.c (add_candidate_1): If
9457         -fkeep-gc-roots-live, skip pointers.
9458         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
9459         NULL.
9460
9461 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
9462
9463         PR target/69512
9464         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
9465         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
9466
9467 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
9468
9469         PR target/68380
9470         * configure.ac: NetBSD provides SSP in its C library.
9471         * configure: Updated.
9472
9473 2016-01-27  Richard Biener  <rguenther@suse.de>
9474
9475         PR tree-optimization/69166
9476         * tree-vect-loop.c (vect_is_simple_reduction): Always check
9477         reduction code for commutativity / associativity.
9478
9479 2016-01-27  Martin Jambor  <mjambor@suse.cz>
9480
9481         PR tree-optimization/69355
9482         * tree-sra.c (analyze_access_subtree): Correct hole detection when
9483         total_scalarization fails.
9484
9485 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
9486
9487         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
9488         power9.
9489
9490 2016-01-27  Christian Bruel  <christian.bruel@st.com>
9491
9492         PR target/69245
9493         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
9494         Move arm_reset_previous_fndecl and set_target_option_current_node in
9495         the conditional part.  Call save_restore_target_globals.
9496         * config/arm/arm.c (arm_set_current_function):
9497         Refactor to better support #pragma target and attribute mix.
9498         Call save_restore_target_globals.
9499         * config/arm/arm-protos.h (save_restore_target_globals): New function.
9500
9501 2016-01-27  Martin Liska  <mliska@suse.cz>
9502
9503         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
9504         reference for an HSA kernel and its host function.
9505
9506 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
9507
9508         PR tree-optimization/69399
9509         * wide-int.h (wi::lrshift): For larger precisions, only
9510         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
9511
9512 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
9513
9514         * config/arc/predicates.md (proper_comparison_operator): Reject
9515         constant-constant comparison.
9516
9517 2016-01-26  Tom de Vries  <tom@codesourcery.com>
9518
9519         PR tree-optimization/69110
9520         * tree-data-ref.c (initialize_data_dependence_relation): Handle
9521         DR_NUM_DIMENSIONS == 0.
9522
9523 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
9524             Sebastian Pop  <s.pop@samsung.com>
9525
9526         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
9527         isl_ast_op_cond and isl_ast_op_select.
9528         (gcc_expression_from_isl_expr_op): Same.
9529
9530 2016-01-26  Jason Merrill  <jason@redhat.com>
9531
9532         PR c++/68782
9533         * tree.c (recompute_constructor_flags): Split out from
9534         build_constructor.
9535         (verify_constructor_flags): New.
9536         * tree.h: Declare them.
9537
9538 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
9539
9540         PR rtl-optimization/69217
9541         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
9542         are no TYPE_FIELDS set for the record type.
9543
9544 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9545
9546         PR target/68662
9547         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
9548         toc_label_name unconditionally.
9549         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
9550         SYMBOL_REF string.  Use toc_label_name instead of constructing
9551         LCTOC1.
9552         (rs6000_elf_declare_function_name): Use toc_label_name instead of
9553         constructing LCTOC1.
9554
9555 2016-01-26  Martin Sebor  <msebor@redhat.com>
9556
9557         PR other/69477
9558         * doc/extend.texi (Common Type Attributes): Move text that talks about
9559         attribute packed from attribute aligned to the section discussing
9560         the former attribute for clarity.
9561
9562 2016-01-26  Richard Henderson  <rth@redhat.com>
9563
9564         PR middle-end/60908
9565         * trans-mem.c (tm_region_init): Mark entry block as visited.
9566
9567 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
9568
9569         PR other/69006
9570         * diagnostic-show-locus.c (layout::print_source_line): Replace
9571         call to pp_newline with call to layout::print_newline.
9572         (layout::print_annotation_line): Likewise.
9573         (layout::move_to_column): Likewise.
9574         (layout::print_any_fixits): After printing any fixits, print a
9575         trailing newline, if necessary.
9576         (layout::print_newline): New method, resetting any colorization
9577         before a newline.
9578         (diagnostic_show_locus): Move the pp_newline to before the
9579         early bailout.  Remove dummy block enclosing the layout instance.
9580         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
9581         of pp_newline_and_flush with pp_flush.
9582         (diagnostic_append_note): Delete use of pp_newline.
9583         (diagnostic_append_note_at_rich_loc): Delete.
9584         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
9585         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
9586         when newline characters are added to the buffer.
9587
9588 2016-01-26  Michael Matz  <matz@suse.de>
9589
9590         * configure.ac (ac_cv_std_swap_in_utility): New test.
9591         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
9592         * configure: Regenerate.
9593         * config.in: Regenerate.
9594
9595 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
9596
9597         * config/arc/arc.md (cstoresi4): Force operand into register.
9598         (arcset<code>): Fix predicate.
9599         (arcsetltu): Likewise.
9600         (arcsetgeu): Likewise.
9601         (arcsethi): Likewise.
9602         (arcsetls): Likewise.
9603
9604 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9605
9606         PR tree-optimization/69483
9607         * gimple-fold.c (canonicalize_constructor_val): Return NULL
9608         if base has error_mark_node type.
9609
9610 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
9611
9612         PR target/68620
9613         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
9614         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
9615         New helper macros.
9616         (vget_lane_f16): Handle big-endian.
9617         (vgetq_lane_f16): Likewise.
9618         (vset_lane_f16): Likewise.
9619         (vsetq_lane_f16): Likewise.
9620         * config/arm/iterators.md (VQXMOV): Add V8HF.
9621         (VDQ): Add V4HF and V8HF.
9622         (V_reg): Handle V4HF and V8HF.
9623         (Is_float_mode): Likewise.
9624         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
9625         neon_vdup_nv8hf): New patterns.
9626         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
9627         Use VD_LANE iterator.
9628         (neon_vld1_dup<mode>): Use VQ2 iterator.
9629
9630 2016-01-26  Nathan Sidwell  <nathan@acm.org>
9631
9632         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
9633         (set_oacc_fn_attrib): Add IS_KERNEL arg.
9634         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
9635         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
9636         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
9637         (oacc_validate_dims): Add LEVEL arg, don't return level.
9638         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
9639         oacc_validate_dims.
9640         (execute_oacc_device_lower): Adjust, add more dump output.
9641         * tree-ssa-loop.c (gate_oacc_kernels): Use
9642         oacc_fn_attrib_kernels_p.
9643         * tree-parloops.c (create_parallel_loop): Adjust
9644         set_oacc_fn_attrib call.
9645
9646 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9647
9648         PR lto/69254
9649         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
9650         (append_compiler_options): Handle -fcilkplus.
9651         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
9652
9653 2016-01-26  Nick Clifton  <nickc@redhat.com>
9654
9655         PR target/66655
9656         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
9657         been marked as DECL_ONE_ONLY but we do not the means to make it
9658         so, then do not allow it to bind locally.
9659
9660 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9661
9662         PR lto/69254
9663         * opts.h (parse_sanitizer_options): New prototype.
9664         * opts.c (sanitizer_opts): New array.
9665         (parse_sanitizer_options): New function.
9666         (common_handle_option): Use parse_sanitizer_options.
9667
9668 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
9669
9670         PR target/68986
9671         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
9672         alignment adjustment to ...
9673         (ix86_update_stack_boundary): Here.  Don't over-align stack for
9674         __tls_get_addr.
9675         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
9676         if __tls_get_addr is called.
9677
9678 2016-01-26  Christian Bruel  <christian.bruel@st.com>
9679
9680         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
9681
9682 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
9683
9684         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
9685
9686 2016-01-26  Richard Biener  <rguenther@suse.de>
9687
9688         PR middle-end/69467
9689         * match.pd: Guard X * CST CMP 0 pattern with single_use.
9690
9691 2016-01-26  Richard Biener  <rguenther@suse.de>
9692
9693         PR tree-optimization/69452
9694         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
9695         (move_computations_dom_walker::before_dom_children): Rename
9696         to ...
9697         (move_computations_worker): This.
9698         (move_computations): Perform an RPO rather than a DOM walk.
9699
9700 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
9701
9702         PR target/69442
9703         * combine.c (combine_instructions): For REG_EQUAL note with
9704         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
9705         to the underlying register.
9706         * doc/rtl.texi (REG_EQUAL): Document the behavior of
9707         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
9708
9709 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
9710
9711         PR target/67896
9712         * config/aarch64/aarch64-builtins.c
9713         (aarch64_init_simd_builtin_types): Do not set structural
9714         equality to __Poly{8,16,64,128}_t types.
9715
9716 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
9717
9718         PR tree-optimization/69400
9719         * wide-int.cc (wi_pack): Take the precision as argument and
9720         perform canonicalization here rather than in the callers.
9721         Use the main loop to handle all full-width HWIs.  Add a
9722         zero HWI if in_len isn't a full result.
9723         (wi::divmod_internal): Update accordingly.
9724         (wi::mul_internal): Likewise.  Simplify.
9725
9726 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9727             Sebastian Pop  <s.pop@samsung.com>
9728
9729         * graphite-poly.c (apply_poly_transforms): Simplify.
9730         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
9731         (print_isl_map): Same.
9732         (print_isl_union_map): Same.
9733         (print_isl_schedule): New.
9734         (debug_isl_schedule): New.
9735         * graphite-dependences.c (scop_get_reads): Do not call
9736         isl_union_map_add_map that is undocumented isl functionality.
9737         (scop_get_must_writes): Same.
9738         (scop_get_may_writes): Same.
9739         (scop_get_original_schedule): Remove.
9740         (scop_get_dependences): Do not call isl_union_map_compute_flow that
9741         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
9742         (compute_deps): Remove.
9743         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
9744         (debug_schedule_ast): New.
9745         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
9746         set_separate_option.
9747         (graphite_regenerate_ast_isl): Add dump.
9748         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
9749         from scop->transformed_schedule.
9750         (graphite_regenerate_ast_isl): Add more dump.
9751         * graphite-optimize-isl.c (optimize_isl): Set
9752         scop->transformed_schedule.  Check whether schedules are equal.
9753         (apply_poly_transforms): Move here.
9754         * graphite-poly.c (apply_poly_transforms): ... from here.
9755         (free_poly_bb): Static.
9756         (free_scop): Static.
9757         (pbb_number_of_iterations_at_time): Remove.
9758         (print_isl_ast): New.
9759         (debug_isl_ast): New.
9760         (debug_scop_pbb): New.
9761         * graphite-scop-detection.c (print_edge): Move.
9762         (print_sese): Move.
9763         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
9764         (build_scop_scattering): Remove.
9765         (create_pw_aff_from_tree): Assert instead of bailing out.
9766         (add_condition_to_pbb): Remove unused code, do not fail.
9767         (add_conditions_to_domain): Same.
9768         (add_conditions_to_constraints): Remove.
9769         (build_scop_context): New.
9770         (add_iter_domain_dimension): New.
9771         (build_iteration_domains): Initialize pbb->iterators.
9772         Call add_conditions_to_domain.
9773         (nested_in): New.
9774         (loop_at): New.
9775         (index_outermost_in_loop): New.
9776         (index_pbb_in_loop): New.
9777         (outermost_pbb_in): New.
9778         (add_in_sequence): New.
9779         (add_outer_projection): New.
9780         (outer_projection_mupa): New.
9781         (add_loop_schedule): New.
9782         (build_schedule_pbb): New.
9783         (build_schedule_loop): New.
9784         (embed_in_surrounding_loops): New.
9785         (build_schedule_loop_nest): New.
9786         (build_original_schedule): New.
9787         (build_poly_scop): Call build_original_schedule.
9788         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
9789         (free_poly_dr): Remove.
9790         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
9791         (free_poly_bb): Remove.
9792         (debug_loop_vec): Remove.
9793         (print_isl_ast): Declare.
9794         (debug_isl_ast): Declare.
9795         (scop_do_interchange): Remove.
9796         (scop_do_strip_mine): Remove.
9797         (scop_do_block): Remove.
9798         (flatten_all_loops): Remove.
9799         (optimize_isl): Remove.
9800         (pbb_number_of_iterations_at_time): Remove.
9801         (debug_scop_pbb): Declare.
9802         (print_schedule_ast): Declare.
9803         (debug_schedule_ast): Declare.
9804         (struct scop): Remove schedule.  Add original_schedule,
9805         transformed_schedule.
9806         (free_gimple_poly_bb): Remove.
9807         (print_generated_program): Remove.
9808         (debug_generated_program): Remove.
9809         (unify_scattering_dimensions): Remove.
9810         * sese.c (print_edge): ... here.
9811         (print_sese): ... here.
9812         (debug_edge): ... here.
9813         (debug_sese): ... here.
9814         * sese.h (print_edge): Declare.
9815         (print_sese): Declare.
9816         (dump_edge): Declare.
9817         (dump_sese): Declare.
9818
9819 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
9820             Sebastian Pop  <s.pop@samsung.com>
9821
9822         * Makefile.in: Set ISLVER in site.exp.
9823
9824 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
9825
9826         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
9827         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
9828         through DECL_VALUE_EXPR for expansion.
9829
9830 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9831
9832         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
9833         the frame info after reload completed.
9834
9835 2016-01-25  Jeff Law  <law@redhat.com>
9836
9837         PR tree-optimization/69196
9838         PR tree-optimization/68398
9839         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
9840         tree-ssa-threadupdate.c.
9841         (determine_bb_domination_status): Prototype
9842         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
9843         (determine_bb_domination_status): No longer static.
9844         (valid_jump_thread_path): Remove code to detect characteristics
9845         of the jump thread path not associated with correctness.
9846         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
9847         Correct test for thread path length.  Count PHIs for real operands as
9848         statements that need to be copied.  Do not count ASSERT_EXPRs.
9849         Look at all the blocks in the thread path.  Compute and selectively
9850         filter thread paths based on threading through the latch, threading
9851         a multiway branch or crossing a multiway branch.
9852
9853 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9854
9855         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
9856         decl with __attribute__ ((unused)) annotation.
9857
9858 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
9859
9860         PR target/69421
9861         * tree-vect-stmts.c (vectorizable_condition): Check vectype
9862         of operands is compatible with a statement vectype.
9863
9864 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
9865
9866         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
9867         improve wording for mixed storage order support.
9868
9869 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
9870
9871         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
9872         (vcvt_u64_f64): Likewise.
9873         (vcvta_s64_f64): Likewise.
9874         (vcvta_u64_f64): Likewise.
9875         (vcvtm_s64_f64): Likewise.
9876         (vcvtm_u64_f64): Likewise.
9877         (vcvtn_s64_f64): Likewise.
9878         (vcvtn_u64_f64): Likewise.
9879         (vcvtp_s64_f64): Likewise.
9880         (vcvtp_u64_f64): Likewise.
9881
9882 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
9883
9884         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
9885         (arc_init): Check validity mll64 option.
9886         (arc_save_restore): Use double load/store instruction.
9887         (arc_expand_movmem): Likewise.
9888         (arc_split_move): Don't split if we have double load/store
9889         instructions. Returns a boolean.
9890         (arc_process_double_reg_moves): Change function to return boolean
9891         instead of a sequence of instructions.
9892         (arc_dwarf_register_span): New function.
9893         * config/arc/arc-protos.h (arc_split_move): Change prototype.
9894         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
9895         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
9896         (*movdf_insn): Likewise.
9897         * config/arc/arc.opt (mll64): New option.
9898         * config/arc/predicates.md (even_register_operand): New predicate.
9899         * doc/invoke.texi (ARC Options): Add mll64 documentation.
9900
9901 2016-01-25  Richard Biener  <rguenther@suse.de>
9902
9903         PR lto/69393
9904         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
9905         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
9906         DECL_NAMELESS.
9907         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
9908
9909 2016-01-25  Richard Biener  <rguenther@suse.de>
9910
9911         PR tree-optimization/69376
9912         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
9913         flag.
9914         (VN_INFO_ANTI_RANGE_P): New inline.
9915         (VN_INFO_RANGE_TYPE): Likewise.
9916         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
9917         SSA_NAME_ANTI_RANGE_P.
9918         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
9919         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9920         Properly query VN_INFO_RANGE_TYPE.
9921
9922 2016-01-25  Nick Clifton  <nickc@redhat.com>
9923
9924         PR target/66655
9925         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
9926
9927 2016-01-23  Tom de Vries  <tom@codesourcery.com>
9928
9929         PR tree-optimization/69426
9930         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
9931         removed clobber.
9932
9933 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
9934
9935         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
9936         "the the" with "the" in the comments.
9937         * ipa-devirt.c (build_type_inheritance_graph,
9938         update_type_inheritance_graph): Likewise.
9939         * tree.c (build_function_type_list_1): Likewise.
9940         * cfgloopmanip.c (scale_loop_profile): Likewise.
9941         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
9942         * gimple-ssa-split-paths.c
9943         (find_block_to_duplicate_for_splitting_paths): Likewise.
9944         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
9945         * expr.c (convert_move): Likewise.
9946         * var-tracking.c (vt_stack_adjustments): Likewise.
9947         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9948         * tree-vrp.c (test_for_singularity): Likewise.
9949
9950         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
9951         directly instead of building a temporary tree.
9952
9953         PR bootstrap/69434
9954         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
9955         remove <algorithm> include.
9956
9957 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
9958
9959         PR target/69432
9960         * config/i386/i386.c: Include dojump.h.
9961         (expand_small_movmem_or_setmem,
9962         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
9963         fixes.
9964         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
9965         if dynamic_check != -1.
9966
9967 2016-01-21  Jeff Law  <law@redhat.com>
9968
9969         PR middle-end/69347
9970         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
9971         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
9972         into dominated_by_p.
9973         (cprop_into_successor_phis): Avoid unnecessary tests.
9974
9975 2016-01-22  Richard Henderson  <rth@redhat.com>
9976
9977         PR target/69416
9978         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
9979         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
9980
9981 2016-01-22  Michael Matz  <matz@suse.de>
9982
9983         * system.h (string, algorithm): Include only conditionally.
9984         (new): Include always under C++.
9985         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
9986         * final.c (toplevel): Ditto.
9987         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
9988         * genconditions.c (write_header): Make gencondmd.c define
9989         INCLUDE_STRING.
9990         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
9991
9992         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
9993         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
9994
9995 2016-01-22  Christian Bruel  <christian.bruel@st.com>
9996
9997         PR target/68674
9998         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
9999
10000 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10001
10002         PR target/69403
10003         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
10004         define_insn_and_split.  Ensure operands[1] and operands[0] do not
10005         get assigned the same register.
10006
10007 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
10008
10009         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
10010
10011 2016-01-22  Christian Bruel  <christian.bruel@st.com>
10012
10013         * config/arm/arm-c.c (arm_pragma_target_parse):
10014         Remove warn_builtin_macro_redefined overwrite.
10015
10016 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10017
10018         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
10019         flag_non_call_exceptions compatibility.
10020
10021 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
10022
10023         PR debug/66668
10024         * dwarf2out.c (add_child_die_after): New function.
10025         (dwarf_qual_info_t): New type.
10026         (dwarf_qual_info): New variable.
10027         (qualified_die_p): New function.
10028         (modified_type_die): For -fdebug-types-section, ensure
10029         canonical order of qualifiers.  Put qualified DIEs adjacent
10030         to the corresponding non-qualified type DIE and search there
10031         for existing qualified DIEs.
10032
10033 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
10034
10035         * doc/extend.texi (scalar_storage_order type attribute): Document
10036         restriction on type punning and aliasing, and remove future tense.
10037
10038 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
10039
10040         PR target/69252
10041         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
10042         first stage.
10043
10044 2016-01-21  Jeff Law  <law@redhat.com>
10045
10046         PR middle-end/69347
10047         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
10048         useless call to record_temporary_equivalences.
10049         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
10050         allocate 10 slots in the bb_path vector and let it grow as needed.
10051         (fsm_find_control_statement_thread_paths): Similarly for the next_path
10052         vector.
10053
10054 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10055
10056         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
10057         Detangle.
10058         * configure: Regenerate.
10059
10060 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
10061
10062         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
10063         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
10064
10065 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
10066
10067         PR middle-end/66178
10068         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
10069         drop EXPAND_INITIALIZER.
10070         * rtl.h (contains_symbolic_reference_p): Declare.
10071         * rtlanal.c (contains_symbolic_reference_p): New function.
10072         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
10073         a subtraction into a NOT if symbolic constants are involved.
10074
10075 2016-01-21  Anton Blanchard  <anton@samba.org>
10076             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10077
10078         PR target/63354
10079         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
10080         #define.
10081         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
10082         function.
10083
10084 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10085
10086         * config/microblaze/microblaze.c
10087         (get_branch_target): New.
10088         (insert_wic_for_ilb_runout): New.
10089         (insert_wic): New.
10090         (microblaze_machine_dependent_reorg): New.
10091         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
10092         * config/microblaze/microblaze.md
10093         (UNSPEC_IPREFETCH): Define.
10094         (iprefetch): New pattern
10095         * config/microblaze/microblaze.opt
10096         (mxl-prefetch): New flag.
10097
10098 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
10099
10100         * config/microblaze/microblaze.h
10101         (FIXED_REGISTERS): Update in macro.
10102         (CALL_USED_REGISTERS): Update in macro.
10103
10104 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
10105
10106         PR rtl-optimization/68920
10107         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
10108         moves.
10109
10110 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
10111
10112         PR rtl-optimization/68990
10113         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
10114         pseudo instead of inheritance ones.
10115
10116 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10117             Nick Clifton  <nickc@redhat.com>
10118
10119         PR target/69129
10120         PR target/69012
10121         * config/mips/mips.c (mips_compute_frame_info): Initialise
10122         args_size and hard_frame_pointer_offset fields of the frame
10123         structure before calling mips_global_pointer.
10124
10125 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
10126
10127         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
10128         label reference.
10129         * configure: Regenerate.
10130
10131 2016-01-21  Richard Biener  <rguenther@suse.de>
10132
10133         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
10134
10135 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10136
10137         * config/s390/s390.c (s390_asm_declare_function_size): Add code
10138         to actually emit the .size directive.
10139
10140 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
10141              Jakub Jelinek  <jakub@redhat.com>
10142
10143         PR target/69187
10144         PR target/65624
10145         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
10146         args array size by one to avoid buffer overflow.
10147
10148 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
10149
10150         * config/s390/s390.md (pool_section_start): Use switch_to_section
10151         to select proper read-only data section instead of hardcoding
10152         .rodata.
10153         (pool_section_end): Use switch_to_section to match the above.
10154
10155 2016-01-21  Richard Biener  <rguenther@suse.de>
10156
10157         PR tree-optimization/69378
10158         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
10159         (set_ssa_val_to): Use it for dominance checks taking into
10160         account not executable edges.
10161
10162 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10163
10164         PR c++/69355
10165         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
10166         for bitsize instead of GET_MODE_PRECISION (mode).
10167
10168 2016-01-20  Martin Sebor  <msebor@redhat.com>
10169
10170         PR c/52291
10171         * extend.texi (__sync Builtins): Clarify the semantics of
10172         __sync_fetch_and_OP built-ins on pointers.
10173         (__atomic Builtins): Same.
10174
10175 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10176             Sebastian Pop  <s.pop@samsung.com>
10177
10178         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
10179         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
10180         (is_valid_rename): Same.
10181         (translate_isl_ast_to_gimple::get_rename): Same.
10182         (translate_isl_ast_to_gimple::rename_all_uses): Same.
10183         (translate_isl_ast_to_gimple::rename_uses): Same.
10184         (get_new_name): Check for close_phi nodes.
10185         (copy_loop_phi_args): Use phi_node_kind.
10186         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
10187         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
10188
10189 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10190             Sebastian Pop  <s.pop@samsung.com>
10191
10192         Revert commit r229783.
10193         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
10194         Remove use of parameter_rename_map.
10195         (copy_def): Remove.
10196         (copy_internal_parameters): Remove.
10197         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
10198         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
10199         (free_sese_info): Do not free parameter_rename_map.
10200         (set_rename): Do not use parameter_rename_map.
10201         (rename_uses): Update call to set_rename.
10202         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
10203         * sese.h (parameter_rename_map_t): Remove.
10204         (struct sese_info_t): Remove field parameter_rename_map.
10205
10206 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10207             Sebastian Pop  <s.pop@samsung.com>
10208
10209         * graphite-isl-ast-to-gimple.c: Fix comment.
10210         * graphite-scop-detection.c (defined_in_loop_p): New.
10211         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
10212         names defined in loop.
10213
10214 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10215             Sebastian Pop  <s.pop@samsung.com>
10216
10217         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10218         Discard unstructured if-then-else regions.
10219
10220 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10221             Sebastian Pop  <s.pop@samsung.com>
10222
10223         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
10224         (cleanup_loop_iter_dom): Remove.
10225         (build_loop_iteration_domains): Remove.
10226         (build_scop_context): Remove.
10227         (build_scop_iteration_domain): Remove.
10228         (add_loop_constraints): New.
10229         (build_iteration_domains): New.
10230         (build_poly_scop): Call build_iteration_domains.
10231
10232 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10233             Sebastian Pop  <s.pop@samsung.com>
10234
10235         * graphite-scop-detection.c
10236         (scop_detection::harmful_loop_in_region): Free dom and loops.
10237         (scop_detection::loop_body_is_valid_scop): Free bbs.
10238
10239 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10240             Sebastian Pop  <s.pop@samsung.com>
10241
10242         * graphite-scop-detection.c (record_loop_in_sese): New.
10243         (gather_bbs::before_dom_children): Call record_loop_in_sese.
10244         (build_scops): Remove call to build_sese_loop_nests.
10245         * sese.c (sese_record_loop): Remove.
10246         (build_sese_loop_nests): Remove.
10247         (new_sese_info): Remove region->loops.
10248         (free_sese_info): Same.
10249         * sese.h (sese_contains_loop): Same.
10250         (build_sese_loop_nests): Remove.
10251         (sese_contains_loop): Remove.
10252
10253 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10254             Sebastian Pop  <s.pop@samsung.com>
10255
10256         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
10257         loop_is_valid_in_scop.
10258         (scop_detection::harmful_stmt_in_region): Renamed
10259         harmful_loop_in_region.
10260         Call loop_is_valid_in_scop.
10261
10262 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10263             Sebastian Pop  <s.pop@samsung.com>
10264
10265         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
10266         isl_ast_node_mark.
10267
10268 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10269             Sebastian Pop  <s.pop@samsung.com>
10270
10271         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
10272         * graphite.h (struct poly_bb): Remove field is_reduction.
10273         (PBB_IS_REDUCTION): Remove.
10274
10275 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
10276             Sebastian Pop  <s.pop@samsung.com>
10277
10278         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
10279         (add_pdr_constraints): Same.
10280         (scop_get_reads): Same.
10281         (scop_get_must_writes): Same.
10282         (scop_get_may_writes): Same.
10283         (scop_get_original_schedule): Same.
10284         (extend_schedule): Same.
10285         (apply_schedule_on_deps): Same.
10286         (carries_deps): Same.
10287         (compute_deps): Same.
10288         (scop_get_dependences): Same.
10289         * graphite-isl-ast-to-gimple.c
10290         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
10291         * graphite-optimize-isl.c (get_schedule_for_band): Same.
10292         (get_schedule_for_band_list): Same.
10293         (get_schedule_map): Same.
10294         (apply_schedule_map_to_scop): Same.
10295         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
10296         (build_loop_iteration_domains): Same.
10297         (add_condition_to_pbb): Same.
10298         (add_param_constraints): Same.
10299         (pdr_add_memory_accesses): Same.
10300         (pdr_add_data_dimensions): Same.
10301
10302 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10303
10304         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
10305         requirements.
10306
10307 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
10308
10309         * common.opt (feliminate-dwarf2-dups): Replace references to
10310         "DWARF 2" with just "DWARF".
10311         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
10312         * doc/extend.texi: Likewise.
10313         * doc/cpp.texi: Likewise.
10314         * doc/invoke.texi: Likewise.
10315         (Option Summary): Add -gdwarf to list of Debugging Options.
10316         (Debugging Options): Document -gdwarf.
10317         * doc/contrib.texi: Spell "DWARF" like that.
10318
10319 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
10320
10321         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
10322         warning.  Fix up formatting.
10323
10324         PR middle-end/67653
10325         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
10326         attempt to mark memory input operand addressable and
10327         call prepare_gimple_addressable in that case.  Don't adjust
10328         input_location for diagnostics, use error_at instead.
10329
10330 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
10331
10332         * config/rs6000/ppc-auxv.h: New file.
10333         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
10334         (cpu_is): Likewise.
10335         (cpu_supports): Likewise.
10336         * config/rs6000/rs6000.c: include "ppc-auxv.h".
10337         (cpu_is_info): New variable.
10338         (cpu_supports_info): Likewise.
10339         (tcb_verification_symbol): Likewise.
10340         (cpu_builtin_p): Likewise.
10341         (cpu_expand_builtin): New function.
10342         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
10343         (rs6000_init_builtins): Likewise.
10344         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
10345         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
10346         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
10347         * configure: Regenerate.
10348         * config.in: Likewise.
10349         * doc/extend.texi (PowerPC Built-in Functions): Document
10350         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
10351
10352 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
10353
10354         PR target/68609
10355         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
10356         domain check.
10357         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
10358         for V4SFmode.
10359
10360 2016-01-20  Richard Henderson  <rth@redhat.com>
10361
10362         PR bootstrap/69343
10363         PR bootstrap/69339
10364         PR tree-opt/68964
10365         Revert:
10366         * tree.c (tm_define_builtin): New.
10367         (find_tm_vector_type): New.
10368         (build_tm_vector_builtins): New.
10369         (build_common_builtin_nodes): Call it.
10370
10371 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
10372
10373         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
10374         (arm_fp_ok): Likewise.
10375         (arm_fp): Likewise.
10376         (arm_crypto): Likewise.
10377
10378 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
10379             Richard Biener  <rguenther@suse.de>
10380
10381         PR tree-optimization/69328
10382         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
10383         vectors have same number of elements.
10384         (vectorizable_condition): Fix masked version recognition.
10385
10386 2016-01-20  Richard Biener  <rguenther@suse.de>
10387
10388         PR tree-optimization/69345
10389         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
10390         (VN_INFO_PTR_INFO): Likewise.
10391         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
10392         info when it is equal between non-dominating SSA names.
10393         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
10394         Make sure to look at original SSA infos.
10395
10396 2016-01-20  Jeff Law  <law@redhat.com>
10397
10398         PR target/25114
10399         * config/m68k/predicates.md (pow2_m1_operand): New predicate
10400         extracted from ...
10401         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
10402         (pc_or_label_operand): New predicate.
10403         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
10404         tests for small integers that are 2^n - 1.
10405
10406 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
10407
10408         * doc/invoke.texi (Options Summary): Add '.' after @xref.
10409
10410 2016-01-19  Jeff Law  <law@redhat.com>
10411
10412         PR middle-end/69347
10413         * tree-ssa-threadbackwards.c
10414         (fsm_find_control_statement_thread_paths): Do not try to lookup
10415         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
10416
10417 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
10418
10419         * doc/lto.texi: Remove text that says only Gold has linker plugin
10420         support.
10421
10422 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
10423
10424         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
10425         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
10426         the DIE accordingly.
10427         (modified_type_die): Add REVERSE parameter and pass it recursively,
10428         as well as to base_type_die.  Adjust presence check accordingly.
10429         (base_type_for_mode): Adjust call to modified_type_die.
10430         (add_type_attribute): Add REVERSE parameter and pass it to
10431         modified_type_die.
10432         (generic_parameter_die): Adjust call to add_type_attribute.
10433         (add_scalar_info): Likewise.
10434         (add_subscript_info): Likewise.
10435         (gen_array_type_die): Likewise.
10436         (gen_descr_array_type_die): Likewise.
10437         (gen_entry_point_die): Likewise.
10438         (gen_enumeration_type_die): Likewise.
10439         (gen_formal_parameter_die): Likewise.
10440         (gen_subprogram_die): Likewise.
10441         (gen_variable_die ): Likewise.
10442         (gen_const_die): Likewise.
10443         (gen_field_die): Likewise.
10444         (gen_pointer_type_die): Likewise.
10445         (gen_reference_type_die): Likewise.
10446         (gen_ptr_to_mbr_type_die): Likewise.
10447         (gen_inheritance_die): Likewise.
10448         (gen_subroutine_type_die): Likewise.
10449         (gen_typedef_die): Likewise.
10450         (force_type_die): Adjust call to modified_type_die.
10451
10452 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
10453
10454         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
10455         flow throughout the file.  Fix broken link to Objective-C 2.0
10456         documentation.
10457         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
10458         errors.
10459
10460 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10461
10462         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
10463
10464 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10465
10466         PR ipa/66223
10467         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
10468         (maybe_record_node): Record cxa_pure_virtual as the only possible
10469         target if there are not ohter candidates.
10470         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
10471
10472 2016-01-19  Richard Biener  <rguenther@suse.de>
10473
10474         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
10475         (get_memory_order): Likewise.
10476
10477 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
10478
10479         * tree-vect-stmts.c (vectorizable_store): Check
10480         rhs vectype.
10481
10482 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
10483
10484         PR jit/68446
10485         * gcc.c (driver::decode_argv): Add call to
10486         init_opts_obstack before init_options_struct.
10487         * opts.c (init_opts_obstack): Remove idempotency.
10488         (init_options_struct): Replace call to init_opts_obstack
10489         with a gcc_assert to verify that it has already been called.
10490         * toplev.c (toplev::main): Add call to init_opts_obstack before
10491         calls to init_options_struct.
10492         (toplev::finalize): Move cleanup of opts_obstack next to
10493         cleanup of save_decoded_options, clearing the latter, and
10494         save_decoded_options_count.
10495
10496 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10497
10498         PR target/69135
10499         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
10500         attribute to unconditional.  Remove %? from output template.
10501
10502 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10503             Jiong Wang  <jiong.wang@arm.com>
10504
10505         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
10506         generated from different expand order.
10507
10508 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10509
10510         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
10511         Add support for CCMP costing.
10512
10513 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10514
10515         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
10516         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
10517         (fccmpe<mode>): Likewise.
10518         (fcmp): Rename to fcmp and globalize pattern.
10519         (fcmpe): Likewise.
10520         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
10521         (aarch64_gen_ccmp_next): Add FP support.
10522
10523 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
10524
10525         * target.def (gen_ccmp_first): Update documentation.
10526         (gen_ccmp_next): Likewise.
10527         * doc/tm.texi (gen_ccmp_first): Update documentation.
10528         (gen_ccmp_next): Likewise.
10529         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
10530         expand_ccmp_expr_1.  Improve comments.
10531         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
10532         (ccmp_ior<mode>): Remove pattern.
10533         (cmp<mode>): Remove expand.
10534         (cmp): Globalize pattern.
10535         (cstorecc4): Use cc_register.
10536         (mov<mode>cc): Remove ccmp_cc_register check.
10537         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
10538         Simplify after removal of CC_DNE/* modes.
10539         (aarch64_ccmp_mode_to_code): Remove.
10540         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
10541         In 'k' case use integer as condition.
10542         (aarch64_nzcv_codes): Remove inverted cases.
10543         (aarch64_code_to_ccmode): Remove.
10544         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
10545         comparison with CC register to be used in folowing CCMP/branch/CSEL.
10546         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
10547         pattern.  Return the comparison with CC register.  Invert conditions
10548         when bitcode is OR.
10549         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
10550         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
10551
10552 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10553
10554         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
10555         instrumented_version.
10556
10557 2016-01-19  Richard Biener  <rguenther@suse.de>
10558
10559         PR tree-optimization/69336
10560         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
10561         handled components with get_ref_base_and_extent.
10562         (equal_mem_array_ref_p): Adjust.
10563
10564 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10565
10566         PR debug/65779
10567         * shrink-wrap.c: Include valtrack.h.
10568         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
10569         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
10570         in between insn and where it will be moved to.  Call
10571         dead_debug_insert_temp.
10572         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
10573         first and dead_debug_local_finish at the end.
10574         For uses and defs bitmap, handle all regs in between REGNO and
10575         END_REGNO, not just the first one.
10576
10577 2016-01-19  Richard Biener  <rguenther@suse.de>
10578
10579         PR tree-optimization/69352
10580         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
10581         (equal_mem_array_ref_p): Constrain size and max size properly.
10582         Compare the reverse flag.
10583
10584 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
10585
10586         * ira.c (ira): Update regstat data if we deleted insns.
10587
10588 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
10589
10590         PR rtl-optimization/68955
10591         PR rtl-optimization/64557
10592         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
10593         here.  Fix up formatting.
10594         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
10595
10596 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10597
10598         PR lto/69133
10599         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
10600         assume that the node has body.
10601         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
10602         check.
10603
10604 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10605
10606         * lto-streamer-out.c (lto_output): Do not stream instrumentation
10607         thunks.
10608
10609 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
10610
10611         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
10612         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
10613
10614 2016-01-19  Martin Jambor  <mjambor@suse.cz>
10615             Martin Liska  <mliska@suse.cz>
10616             Michael Matz  <matz@suse.de>
10617
10618         * Makefile.in (OBJS): Add new source files.
10619         (GTFILES): Add hsa.c.
10620         * common.opt (disable_hsa): New variable.
10621         (-Whsa): New warning.
10622         * config.in (ENABLE_HSA): New.
10623         * configure.ac: Treat hsa differently from other accelerators.
10624         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
10625         $enable_offloading.
10626         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
10627         * doc/install.texi (Configuration): Document --with-hsa-runtime,
10628         --with-hsa-runtime-include, --with-hsa-runtime-lib and
10629         --with-hsa-kmt-lib.
10630         * doc/invoke.texi (-Whsa): Document.
10631         (hsa-gen-debug-stores): Likewise.
10632         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
10633         to invoke offload compiler for hsa acclerator.
10634         * opts.c (common_handle_option): Determine whether HSA offloading
10635         should be performed.
10636         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
10637         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
10638         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
10639         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
10640         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
10641         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
10642         GF_OMP_FOR_KIND_GRID_LOOP.
10643         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
10644         (pp_gimple_stmt_1): Likewise.
10645         * gimple-walk.c (walk_gimple_stmt): Likewise.
10646         * gimple.c (gimple_build_omp_grid_body): New function.
10647         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
10648         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
10649         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
10650         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
10651         GF_OMP_TEAMS_GRID_PHONY.
10652         (gimple_statement_omp_single_layout): Updated comments.
10653         (gimple_build_omp_grid_body): New function.
10654         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
10655         (gimple_omp_for_grid_phony): New function.
10656         (gimple_omp_for_set_grid_phony): Likewise.
10657         (gimple_omp_parallel_grid_phony): Likewise.
10658         (gimple_omp_parallel_set_grid_phony): Likewise.
10659         (gimple_omp_teams_grid_phony): Likewise.
10660         (gimple_omp_teams_set_grid_phony): Likewise.
10661         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
10662         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
10663         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
10664         (BUILT_IN_GOMP_TARGET): Updated type.
10665         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
10666         (adjust_for_condition): New function.
10667         (get_omp_for_step_from_incr): Likewise.
10668         (extract_omp_for_data): Moved parts to adjust_for_condition and
10669         get_omp_for_step_from_incr.
10670         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
10671         (fixup_child_record_type): Bail out if receiver_decl is NULL.
10672         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
10673         (scan_omp_parallel): Do not create child functions for phony
10674         constructs.
10675         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
10676         (scan_omp_1_op): Checking assert we are not remapping to
10677         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
10678         (parallel_needs_hsa_kernel_p): New function.
10679         (expand_parallel_call): Register apprpriate parallel child
10680         functions as HSA kernels.
10681         (grid_launch_attributes_trees): New type.
10682         (grid_attr_trees): New variable.
10683         (grid_create_kernel_launch_attr_types): New function.
10684         (grid_insert_store_range_dim): Likewise.
10685         (grid_get_kernel_launch_attributes): Likewise.
10686         (get_target_argument_identifier_1): Likewise.
10687         (get_target_argument_identifier): Likewise.
10688         (get_target_argument_value): Likewise.
10689         (push_target_argument_according_to_value): Likewise.
10690         (get_target_arguments): Likewise.
10691         (expand_omp_target): Call get_target_arguments instead of looking
10692         up for teams and thread limit.
10693         (grid_expand_omp_for_loop): New function.
10694         (grid_arg_decl_map): New type.
10695         (grid_remap_kernel_arg_accesses): New function.
10696         (grid_expand_target_kernel_body): New function.
10697         (expand_omp): Call it.
10698         (lower_omp_for): Do not emit phony constructs.
10699         (lower_omp_taskreg): Do not emit phony constructs but create for them
10700         a temporary variable receiver_decl.
10701         (lower_omp_taskreg): Do not emit phony constructs.
10702         (lower_omp_teams): Likewise.
10703         (lower_omp_grid_body): New function.
10704         (lower_omp_1): Call it.
10705         (grid_reg_assignment_to_local_var_p): New function.
10706         (grid_seq_only_contains_local_assignments): Likewise.
10707         (grid_find_single_omp_among_assignments_1): Likewise.
10708         (grid_find_single_omp_among_assignments): Likewise.
10709         (grid_find_ungridifiable_statement): Likewise.
10710         (grid_target_follows_gridifiable_pattern): Likewise.
10711         (grid_remap_prebody_decls): Likewise.
10712         (grid_copy_leading_local_assignments): Likewise.
10713         (grid_process_kernel_body_copy): Likewise.
10714         (grid_attempt_target_gridification): Likewise.
10715         (grid_gridify_all_targets_stmt): Likewise.
10716         (grid_gridify_all_targets): Likewise.
10717         (execute_lower_omp): Call grid_gridify_all_targets.
10718         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
10719         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
10720         (tree_omp_clause): Added union field dimension.
10721         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
10722         * tree.c (omp_clause_num_ops): Added number of arguments of
10723         OMP_CLAUSE__GRIDDIM_.
10724         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
10725         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
10726         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
10727         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
10728         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
10729         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
10730         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
10731         * tree-pass.h (make_pass_gen_hsail): Declare.
10732         (make_pass_ipa_hsa): Likewise.
10733         * ipa-hsa.c: New file.
10734         * lto-section-in.c (lto_section_name): Add hsa section name.
10735         * lto-streamer.h (lto_section_type): Add hsa section.
10736         * timevar.def (TV_IPA_HSA): New.
10737         * hsa-brig-format.h: New file.
10738         * hsa-brig.c: New file.
10739         * hsa-dump.c: Likewise.
10740         * hsa-gen.c: Likewise.
10741         * hsa.c: Likewise.
10742         * hsa.h: Likewise.
10743         * toplev.c (compile_file): Call hsa_output_brig.
10744         * hsa-regalloc.c: New file.
10745
10746 2016-01-18  Jeff Law  <law@redhat.com>
10747
10748         PR tree-optimization/69320
10749         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
10750         ranged object, do nothing if the RHS constant is not [0..1].
10751         (optimize_stmt): Comparing a boolean ranged object against a
10752         constant outside [0..1] results in a compile-time constant.
10753
10754         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
10755         test.
10756
10757 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
10758
10759         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10760         (Option Summary): Update to reflect new section and moved options.
10761         (C++ Dialect Options): Move -fstats to new section.
10762         (Debugging Options): Move all dump, statistics, and other GCC
10763         developer options to new section.  Rewrite section introduction
10764         and re-order remaining options to put the more basic ones first.
10765         (Optimization Options): Move -fira-verbose and -flto-report* to
10766         new section.
10767         (Developer Options): New section incorporating moved options.
10768         * doc/cppopts.texi (-dM): Update cross-reference.
10769
10770 2016-01-18  Richard Henderson  <rth@redhat.com>
10771
10772         PR target/69176
10773         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
10774         operands to pseudo only if CSE is expected.  Split long immediate
10775         operands only after reload, and for the stack pointer.
10776         (*add<GPI>3_pluslong): Remove.
10777         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
10778         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
10779         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
10780         (*add<GPI>3 peepholes): New.
10781         (*add<GPI>3 splitters): New.
10782         * config/aarch64/constraints.md (Upl): New.
10783         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
10784
10785 2016-01-18  Richard Biener  <rguenther@suse.de>
10786
10787         PR tree-optimization/69297
10788         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
10789         stmt at most once.
10790         (vect_bb_vectorization_profitable_p): Clear visited flag again.
10791
10792 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
10793
10794         PR middle-end/68542
10795         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
10796         of mixind vector and scalar types.
10797         (fold_relational_const): Add handling of vector
10798         comparison with boolean result.
10799         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
10800         comparison of vector operands with boolean result for EQ/NE only.
10801         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
10802         (verify_gimple_cond): Likewise.
10803         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
10804         valid type of VAL.
10805
10806 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
10807
10808         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
10809         !TARGET_OCTEON.
10810
10811 2016-01-18  Richard Biener  <rguenther@suse.de>
10812
10813         PR middle-end/69308
10814         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
10815
10816 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10817
10818         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
10819
10820 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10821
10822         * omp-low.c (set_oacc_fn_attrib): Make extern.
10823         * omp-low.h (set_oacc_fn_attrib): Declare.
10824         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
10825         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
10826         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
10827         Add and handle function parameter oacc_kernels_p.
10828         (find_reduc_addr, get_omp_data_i_param): New function.
10829         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
10830         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
10831         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
10832         Calculate dominance info.  Skip loops that are not in a kernels region
10833         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
10834         (pass_parallelize_loops::execute): Call parallelize_loops with
10835         oacc_kernels_p argument.
10836         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
10837         New member function.
10838         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
10839         * passes.def: Add argument to pass_parallelize_loops instantation.
10840
10841 2016-01-18  Tom de Vries  <tom@codesourcery.com>
10842
10843         * tree-parloops.c (pass_parallelize_loops::execute): Allow
10844         pass_parallelize_loops to be run outside the loop pipeline.
10845
10846 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10847
10848         * tree-scalar-evolution.c (follow_copies_to_constant): New.
10849         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
10850
10851 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10852
10853         PR target/63679
10854         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
10855         using get_ref_base_and_extent.
10856         (equal_mem_array_ref_p): New.
10857         (hashable_expr_equal_p): Add call to previous.
10858
10859 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
10860
10861         PR target/63679
10862         * tree-sra.c (disqualified_constants, constant_decl_p): New.
10863         (sra_initialize): Allocate disqualified_constants.
10864         (sra_deinitialize): Free disqualified_constants.
10865         (disqualify_candidate): Update disqualified_constants when appropriate.
10866         (create_access): Scan for constant-pool entries as we go along.
10867         (scalarizable_type_p): Add check against type_contains_placeholder_p.
10868         (maybe_add_sra_candidate): Allow constant-pool entries.
10869         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
10870         (initialize_constant_pool_replacements): New.
10871         (sra_modify_assign): Avoid mangling assignments created by previous,
10872         and don't generate writes into constant pool.
10873         (sra_modify_function_body): Call initialize_constant_pool_replacements.
10874
10875 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10876
10877         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
10878         andnot instruction.
10879         (scalar_chain::convert_op): Likewise.
10880         * config/i386/i386.md (*andndi3_doubleword): New.
10881
10882 2016-01-18  Richard Biener  <rguenther@suse.de>
10883
10884         PR tree-optimization/69170
10885         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
10886         building a vector from scalar results of a pattern stmt.
10887
10888 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
10889
10890         * haifa-sched.c (autopref_multipass_init): Work around
10891         -Wmaybe-uninitialized warning.
10892
10893 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10894
10895         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
10896         against the constant 0.
10897
10898 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10899
10900         PR tree-optimization/68799
10901         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
10902         look up phi candidates in the statement-candidate map.
10903         (phi_add_costs): Likewise.
10904         (record_phi_increments): Likewise.
10905         (phi_incr_cost): Likewise.
10906         (ncd_with_phi): Likewise.
10907         (all_phi_incrs_profitable): Likewise.
10908
10909 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
10910
10911         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
10912         -Wmaybe-uninitialized warning.
10913
10914 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
10915
10916         * doc/invoke.texi (Invoking GCC): Add new section to menu.
10917         (Option Summary): Update to reflect new section and moved options.
10918         (C++ Dialect Options): Move -fvtable-verify and related options.
10919         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
10920         and profiling-related options.
10921         (Optimization Options): Move profile generation options and
10922         -fstack-protector and related options.
10923         (Instrumentation Options): New section incorporating moved options.
10924         (Code Generation Options): Move -finstrument-functions and
10925         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
10926
10927 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10928
10929         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
10930
10931 2016-01-16  Tom de Vries  <tom@codesourcery.com>
10932
10933         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
10934
10935 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
10936
10937         * hash-table.h (hash_table::empty): Turn into an inline wrapper
10938         that checks whether the table is already empty.  Rename the
10939         original implementation to...
10940         (hash_table::empty_slot): ...this new private function.
10941
10942 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
10943
10944         PR diagnostic/68899
10945         * diagnostic-show-locus.c (layout::print_source_line): Move x
10946         offset of line until after call to
10947         get_line_width_without_trailing_whitespace.
10948
10949 2016-01-15  Jeff Law  <law@redhat.com>
10950
10951         PR tree-optimization/69270
10952         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
10953         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
10954         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
10955         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
10956         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
10957         ssa_name_has_boolean_range and constant_boolean_node.
10958
10959 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
10960
10961         PR rtl-optimization/69030
10962         * lra-spills.c (remove_pseudos): Check nrefs and make the function
10963         returning bool.
10964         (spill_pseudos): Delete debug insn for dead pseudo.
10965         (lra_spill): Initiate spill_hard_reg and slots memory separately.
10966
10967 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
10968
10969         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
10970         New.
10971         (TYPES_UNOPUS): Likewise.
10972         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
10973         builtin type, from UNOP to UNOPUS.
10974         (lbtruncuv4sf): Likewise.
10975         (lbtruncuv2df): Likewise.
10976         (lrounduv2sf): Likewise.
10977         (lrounduv4sf): Likewise.
10978         (lrounduv2df): Likewise.
10979         (lroundusf): Likewise.
10980         (lroundusf): Likewise.
10981         (lceiluv2sf): Likewise.
10982         (lceiluv4sf): Likewise.
10983         (lceiluv2df): Likewise.
10984         (lceilusf): Likewise.
10985         (lceiludf): Likewise.
10986         (lflooruv2sf): Likewise.
10987         (lflooruv4sf): Likewise.
10988         (lflooruv2df): Likewise.
10989         (lfloorusf): Likewise.
10990         (lfloorudf): Likewise.
10991         (lfrintnuv2sf): Likewise.
10992         (lfrintnuv4sf): Likewise.
10993         (lfrintnuv2df): Likewise.
10994         (lfrintnusf): Likewise.
10995         (lfrintnudf): Likewise.
10996         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
10997         conversion.
10998         (vcvtq_u32_f32): Likewise.
10999         (vcvtq_u64_f64): Likewise.
11000         (vcvta_u32_f32): Likewise.
11001         (vcvtaq_u32_f32): Likewise.
11002         (vcvtaq_u64_f64): Likewise.
11003         (vcvtm_u32_f32): Likewise.
11004         (vcvtmq_u32_f32): Likewise.
11005         (vcvtmq_u64_f64): Likewise.
11006         (vcvtn_u32_f32): Likwise.
11007         (vcvtnq_u32_f32): Likewise.
11008         (vcvtnq_u64_f64): Likewise.
11009         (vcvtp_u32_f32): Likewise.
11010         (vcvtpq_u32_f32): Likewise.
11011         (vcvtpq_u64_f64): Likewise.
11012         (vcvtmd_u64_f64): Likewise.
11013         (vcvtms_u32_f32): Likewise.
11014         (vcvtad_u64_f64): Likewise.
11015         (vcvtas_u32_f32): Likewise.
11016         (vcvtnd_u64_f64): Likewise.
11017         (vcvtns_u32_f32): Likewise.
11018         (vcvtpd_u64_f64): Likewise.
11019         (vcvtps_u32_f32): Likewise.
11020
11021 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11022
11023         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
11024         CSEL of zero_extended registers.
11025
11026 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11027
11028         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
11029         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
11030
11031 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11032
11033         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
11034         false when argument string is not found in the attributes table
11035         at all.
11036
11037 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
11038
11039         PR target/68609
11040         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
11041         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
11042         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
11043         precision estimate.
11044
11045 2016-01-15  Richard Biener  <rguenther@suse.de>
11046
11047         PR tree-optimization/66856
11048         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
11049         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
11050         (vect_create_new_slp_node): Increment stmt reference count.
11051         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
11052         an SLP tree before swapping operands.
11053         (vect_build_slp_tree): Likewise.
11054         (destroy_bb_vec_info): Free stmt info after SLP instances.
11055         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
11056         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
11057         (STMT_VINFO_NUM_SLP_USES): New macro.
11058
11059 2016-01-15  Richard Biener  <rguenther@suse.de>
11060
11061         PR debug/69137
11062         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
11063         (add_linkage_name): ... here.
11064         (gen_typedef_die): Use add_linkage_name_raw instead of
11065         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
11066         if necessary.
11067
11068 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
11069
11070         * gimplify.c (oacc_default_clause): Decode reference and pointer
11071         types for both kernels and parallel regions.
11072
11073 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
11074
11075         PR middle-end/69246
11076         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
11077
11078 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11079
11080         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
11081         (convert_scalars_to_vector): Likewise.
11082
11083 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
11084
11085         * doc/extend.texi (Type Traits): Fix grammar.
11086
11087 2016-01-15  Martin Jambor  <mjambor@suse.cz>
11088
11089         * tree-inline.c (remap_decl): Use existing dclarations if
11090         remapping a type and prevent_decl_creation_for_types.
11091         (replace_locals_stmt): Do an initial remapping of non-VLA typed
11092         decls first.  Do real remapping with
11093         prevent_decl_creation_for_types set.
11094         * tree-inline.h (copy_body_data): New field
11095         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
11096         padding.
11097
11098 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11099
11100         * config/s390/s390.opt (mmvcle): More verbose help text.
11101
11102 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11103
11104         * config/s390/s390.opt: Add period to -mzvector option text.
11105
11106 2016-01-15  Richard Biener  <rguenther@suse.de>
11107
11108         PR tree-optimization/68961
11109         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
11110         of invariants in stores again.
11111
11112 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11113
11114         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
11115
11116 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
11117
11118         * config/i386/i386.c (ix86_expand_branch): Don't split
11119         DI mode xor instruction to SI mode.
11120
11121 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11122
11123         PR ipa/68148
11124         * ipa-icf.c (sem_function::merge): Virtual functions may become
11125         reachable even if they address is not taken and there are no
11126         idrect calls.
11127
11128 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
11129
11130         * lto-streamer-out.c (subtract_estimated_size): New function.
11131         (get_symbol_initial_value): Use it.
11132
11133 2016-01-15  Christian Bruel  <christian.bruel@st.com>
11134
11135         PR target/65837
11136         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
11137         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
11138         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
11139         use add_builtin_function_ext_scope instead of add_builtin_function.
11140         (neon_set_p, neon_crypto_set_p): Remove.
11141         (arm_init_builtins): Always call arm_init_neon_builtins and
11142         arm_init_crypto_builtins.
11143         (arm_expand_builtin): Check that builtins are allowed for the arch.
11144         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
11145         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
11146         arm_init_neon_builtins call.
11147
11148 2016-01-15  Richard Biener  <rguenther@suse.de>
11149
11150         PR tree-optimization/69117
11151         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
11152         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
11153         of the leader conservatively.
11154         (free_scc_vn): Restore original SSA name infos.
11155
11156 2016-01-14  Jeff Law  <law@redhat.com>
11157
11158         PR tree-optimization/69270
11159         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
11160         single bit of precision, verify it's also unsigned.
11161         (record_edge_info): Use constant_boolean_node rather than fold_convert
11162         to convert boolean_true/boolean_false to the right type.
11163
11164 2016-01-14  Richard Henderson  <rth@redhat.com>
11165
11166         PR rtl-opt/69014
11167         * loop-doloop.c (record_reg_sets): New.
11168         (doloop_optimize): Reject the transform if the sequence
11169         clobbers registers live at the end of the loop block.
11170         (doloop_optimize_loops): Enable df_live if needed.
11171
11172 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
11173
11174         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
11175         * gcc/config/rs6000/rs6000.c: Likewise.
11176         * gcc/config/rs6000/rs6000.h: Likewise.
11177         * gcc/config/rs6000/rs6000.md: Likewise.
11178         * gcc/doc/extend.texi: Likewsie.
11179
11180 2016-01-14  Jeff Law  <law@redhat.com>
11181
11182         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
11183         typo.
11184
11185 2016-01-14  Richard Henderson  <rth@redhat.com>
11186
11187         PR c/69272
11188         PR tree-opt/68964
11189         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
11190         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
11191         instead of builtin_decl_declared_p to test for declaration.
11192
11193 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
11194
11195         * doc/loop.texi (Loop Analysis and Representation): Document
11196         loop_depth function.
11197
11198 2016-01-14  Tom de Vries  <tom@codesourcery.com>
11199
11200         PR tree-optimization/68773
11201         * omp-low.c (expand_omp_target): Don't set force_output.
11202         * varpool.c (varpool_node::get_create): Same.
11203         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
11204         offload_funcs with force_output.
11205
11206 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11207
11208         PR debug/69244
11209         * lra-eliminations.c (move_plus_up): Don't change anything if either
11210         the outer or inner subreg mode is not MODE_INT.
11211         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
11212         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
11213
11214 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11215
11216         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
11217         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
11218         reduc_uplus_@var{m}): Remove.
11219         * expr.c (expand_expr_real_2): Remove expansion path for
11220         reduc_[us](min|max|plus) optabs.
11221         * optabs-tree.c (scalar_reduc_to_vector): Remove.
11222         * optabs-tree.h (scalar_reduc_to_vector): Remove.
11223         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
11224         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
11225         * tree-vect-loop.c (vectorizable_reduction): Remove test for
11226         reduc_[us](min|max|plus) optabs.
11227
11228 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
11229
11230         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
11231         (reduc_plus_scal_v2sf): New.
11232         (reduc_smax_v2sf): Rename to...
11233         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
11234         (reduc_smin_v2sf): Rename to...
11235         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
11236
11237 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
11238
11239         * alias.c (compare_base_symbol_refs): New function.
11240         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
11241         it.
11242
11243 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11244
11245         PR middle-end/68146
11246         PR tree-optimization/69155
11247         * tree-complex.c: Include cfganal.h.
11248         (phis_to_revisit): New variable.
11249         (extract_component): Add phiarg_p argument.  Assert that returned
11250         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
11251         (update_phi_components): Partly rewrite to use loop over real/imag
11252         components instead of code duplication.  If extract_component returns
11253         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
11254         create_tmp_reg into the PHI node instead, and mention the phi triplet
11255         in phis_to_revisit.
11256         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
11257         in phis_to_revisit at the end.
11258
11259 2016-01-14  Richard Biener  <rguenther@suse.de>
11260
11261         PR tree-optimization/68060
11262         * tree-vect-loop.c (vect_is_simple_reduction): Check the
11263         outer loop reduction is only used in the inner loop before
11264         detecting a double reduction.
11265
11266 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
11267
11268         PR target/68269
11269         * combine.c (expand_field_assignment): Punt if compute_mode is
11270         unsupported scalar mode.
11271
11272 2016-01-14  Richard Biener  <rguenther@suse.de>
11273
11274         PR tree-optimization/66856
11275         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
11276         SLP node only if it built successfully.
11277         (vect_analyze_slp_instance): Adjust.
11278
11279 2016-01-14  Jeff Law  <law@redhat.com>
11280
11281         PR tree-optimization/69270
11282         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
11283         (record_edge_info): Use it.  Convert boolean_{true,false}_node
11284         to the type of op0.
11285
11286 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
11287
11288         PR ipa/66487
11289         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
11290         use block_ultimate_origin
11291         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
11292
11293 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11294
11295         * doc/invoke.texi (Submodel Options): Rename section to
11296         "Machine-Dependent Options" to better reflect its content.
11297         Rewrite introductory text to remove archaic CPU names.
11298         Update references.
11299
11300 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
11301
11302         * doc/invoke.texi (Code Gen Options): Move section up in file,
11303         before target-specific options.  Update menu and option summary
11304         to reflect the new section ordering.
11305
11306 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11307
11308         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
11309         (C++ Dialect Options): Add cross-reference to -std option.
11310         * doc/standards.texi (C++ Language): Document C++14 support.
11311
11312 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
11313
11314         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
11315         for pack/unpack functions for __ibm128.
11316         (PACK_IF): Likewise.
11317         (UNPACK_IF): Likewise.
11318
11319         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11320         support for __ibm128 pack/unpack functions.
11321         (rs6000_invalid_builtin): Likewise.
11322         (rs6000_init_builtins): Likewise.
11323         (rs6000_opt_masks): Likewise.
11324
11325         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
11326         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
11327         functions
11328         (RS6000_BTM_COMMON): Likewise.
11329
11330         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
11331         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
11332         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
11333         128-bit floating point.  Add support for the double values to be
11334         in Altivec registers for TF/IF packing and unpacking, but restrict
11335         TD packing sub-fields to be FPR registers.  Don't allow overlapped
11336         register support for packing.  Allow pack inputs to be memory
11337         locations.  Don't build generator functions for unpack<mode>_dm
11338         and unpack<mode>_nodm.
11339         (unpack<mode>_dm): Likewise.
11340         (unpack<mode>_nodm): Likewise.
11341         (pack<mode>): Likewise.
11342
11343         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
11344         built-in functions to pack/unpack explicit __ibm128 values.
11345         (__builtin_unpack_ibm128): Likewise.
11346
11347         * doc/extend.texi (PowerPC Built-in Functions): Document
11348         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
11349
11350 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
11351
11352         PR c/66208
11353         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
11354         Add new arg loc and pass it down as context.
11355         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
11356         to the location to use for the warning.
11357         (check_function_arguments): New arg loc.  All callers changed.  Pass
11358         it to check_function_nonnull.
11359         * c-common.h (check_function_arguments): Adjust declaration.
11360
11361 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
11362
11363         PR tree-optimization/69156
11364         * gimple.c (validate_type): Removed.
11365         (gimple_builtin_call_types_compatible_p): Use
11366         useless_type_conversion_p instead of validate_type.
11367         * value-prof.c (gimple_stringop_fixed_value): Fold
11368         icall_size to correct type.
11369
11370 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
11371
11372         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
11373         effects.
11374
11375 2016-01-13  Richard Henderson  <rth@redhat.com>
11376
11377         PR tree-opt/68964
11378         * target.def (builtin_tm_load, builtin_tm_store): Remove.
11379         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
11380         (ix86_builtin_tm_store): Remove.
11381         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11382         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11383         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
11384         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
11385         * doc/tm.texi: Rebuild.
11386
11387         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
11388         (BUILT_IN_TM_MEMCPY_RTWN): New.
11389         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
11390         fallback from vector to integer helpers.
11391         (build_tm_load): Handle vector types directly, instead of
11392         via target hook.
11393         (build_tm_store): Likewise.
11394         (expand_assign_tm): Prepare for register types not handled by
11395         the above.  Copy them to memory and use memcpy.
11396         * tree.c (tm_define_builtin): New.
11397         (find_tm_vector_type): New.
11398         (build_tm_vector_builtins): New.
11399         (build_common_builtin_nodes): Call it.
11400
11401 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
11402
11403         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
11404         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
11405
11406 2016-01-13  Tom de Vries  <tom@codesourcery.com>
11407
11408         PR tree-optimization/69169
11409         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
11410         handled_struct_type param.
11411         (create_variable_info_for, intra_create_variable_infos): Call
11412         create_variable_info_for_1 with extra arg.
11413
11414 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
11415
11416         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
11417         and "armv8.1-a+crc" entries.
11418
11419 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
11420
11421         PR target/69228
11422         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
11423         Change first operand predicate from register_or_constm1_operand
11424         to register_operand.
11425         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
11426         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
11427         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
11428         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
11429         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
11430         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
11431         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
11432         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
11433         comparison with constm1_rtx from vec_prefetch_gen part.
11434
11435 2016-01-13  Richard Biener  <rguenther@suse.de>
11436
11437         PR tree-optimization/69013
11438         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
11439         Exchange assert for a test.
11440
11441 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11442
11443         PR target/69247
11444         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
11445
11446 2016-01-13  Richard Biener  <rguenther@suse.de>
11447
11448         PR tree-optimization/69242
11449         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
11450         assert with a check.
11451
11452 2016-01-13  Richard Biener  <rguenther@suse.de>
11453
11454         PR tree-optimization/69186
11455         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
11456         Properly guard vect_update_misalignment_for_peel call.
11457
11458 2016-01-12  Jeff Law  <law@redhat.com>
11459
11460         PR tree-optimization/pr67755
11461         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
11462         "need_profile_correction".
11463         (thread_block_1): Initialize new field to false by default.  If we
11464         have multiple thread paths through a common joiner to different
11465         final targets, then set new field to true.
11466         (compute_path_counts): Only do count adjustment when it's really
11467         needed.
11468
11469 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11470
11471         * doc/invoke.texi (Spec Files): Move section down in file, past
11472         all command-line option descriptions.
11473
11474 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11475
11476         PR middle-end/54809
11477         * doc/gty.texi: Remove documentation of mark_hook.
11478         * gengtype.c (struct write_types_data): Remove code to support
11479         mark_hook attribute.
11480         (walk_type): Likewise.
11481         (write_func_for_structure): Likewise.
11482
11483 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11484
11485         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
11486         Directory Options, and -specs= to Overall Options.
11487         (Overall Options): Adjust similarly.  Reorder to group related
11488         options together.  Make -specs= cross-reference the spec file details.
11489         (Directory Options): Adjust similarly.
11490
11491 2016-01-12  Jeff Law  <law@redhat.com>
11492
11493         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
11494
11495 2016-01-12  Olivier Hainque  <hainque@adacore.com>
11496
11497         * gcc.c (spec_undefvar_allowed): New global.
11498         (process_command): Set to true when running for --version or --help,
11499         alone or together.
11500         (getenv_spec_function): When the variable is not defined, use the
11501         variable name as the variable value if we're allowed not to issue
11502         a fatal error.
11503
11504 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
11505
11506         PR tree-optimization/68911
11507         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
11508         information computed for expression "init + nit * step".
11509
11510 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
11511
11512         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
11513         about name of GCC executable.  Remove deleted node from menu.
11514         (Directory Options) <-B>: Remove cross-reference to deleted node.
11515         (Target Options): Delete section.
11516
11517 2016-01-12  Christian Bruel  <christian.bruel@st.com>
11518
11519         PR target/69180
11520         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
11521         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
11522
11523 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
11524
11525         PR target/69198
11526         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
11527         aligned_mem is properly set for AVX512-VL floating point masked
11528         stores.
11529
11530         PR target/69175
11531         * ifcvt.c (cond_exec_process_if_block): When removing the last
11532         insn from then_bb, remove also any possible barriers that follow it.
11533
11534 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
11535
11536         PR target/68456
11537         PR target/69226
11538         * config/i386/iamcu.h (SIZE_TYPE): New macro.
11539         (PTRDIFF_TYPE): Likewise.
11540         (WCHAR_TYPE): Likewise.
11541         (WCHAR_TYPE_SIZE): Likewise.
11542         (STDINT_LONG32): Likewise.
11543
11544 2016-01-12  Richard Biener  <rguenther@suse.de>
11545
11546         PR tree-optimization/69053
11547         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
11548         convert initial value for cond reductions.
11549
11550 2016-01-12  Richard Biener  <rguenther@suse.de>
11551
11552         PR tree-optimization/69007
11553         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
11554         widen_sum after dot_prod and sad.
11555
11556 2016-01-12  Richard Biener  <rguenther@suse.de>
11557
11558         PR tree-optimization/69168
11559         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
11560         pattern stmt SLP type.
11561         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
11562         end up unused so cope with that case.
11563
11564 2016-01-12  Richard Biener  <rguenther@suse.de>
11565
11566         PR tree-optimization/69157
11567         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
11568         stmts def type only during analyze phase.
11569         (vectorizable_call): Likewise.
11570         (vectorizable_simd_clone_call): Likewise.
11571         (vectorizable_conversion): Likewise.
11572         (vectorizable_assignment): Likewise.
11573         (vectorizable_shift): Likewise.
11574         (vectorizable_operation): Likewise.
11575         (vectorizable_store): Likewise.
11576         (vectorizable_load): Likewise.
11577
11578 2016-01-12  Richard Biener  <rguenther@suse.de>
11579
11580         PR tree-optimization/69174
11581         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
11582         space.
11583         (vectorizable_load): Properly compute the number of loads needed
11584         for permuted strided SLP loads and do not spuriously assign
11585         to SLP_TREE_VEC_STMTS.
11586
11587 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
11588
11589         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
11590         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
11591         (MD_EXEC_PREFIX): Remove.
11592         (MD_STARTFILE_PREFIX) Removee.
11593         (FILE_NAME_ABSOLUTE_P): Remove.
11594         (CPP_SPEC): Do not read macros from sys/version.h.
11595         (LINK_COMMAND_SPEC): Remove.
11596         (LOCAL_INCLUDE_DIR): Remove.
11597         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
11598         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
11599         (POST_LINK_SPEC): Define to invoke stubify after linker
11600         (LIBSTDCXX): Remove define
11601         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
11602         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
11603         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
11604         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
11605         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
11606         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
11607         (i386_djgpp_asm_named_section): Add propotype of new procedure
11608
11609         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
11610         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
11611         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
11612         in config/i386/djgpp.h).
11613         (STANDARD_STARTFILE_PREFIX_2): Define identical to
11614         STANDARD_STARTFILE_PREFIX_1.
11615         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
11616         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
11617         installation errors.
11618         (MAX_OFILE_ALIGNMENT): Define to 128.
11619         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
11620
11621         * config/i386/djgpp.c: New file. Add implementation of
11622         i386_djgpp_asm_named_section.
11623
11624         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
11625
11626         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
11627         Add rule for building djgpp.o.
11628
11629 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11630
11631         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
11632         (rtx_is_swappable_p): Reductions are swappable.
11633         (insn_is_swappable_p): V2DF reductions are swappable.
11634
11635 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
11636
11637         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
11638         reloads for other unsupported memory operands.
11639
11640 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
11641             Jim Wilson  <jim.wilson@linaro.org>
11642
11643         PR target/69194
11644         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
11645         copy_to_mode_reg instead of force_reg.
11646
11647 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11648
11649         PR target/69225
11650         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
11651         TARGET_80387 is true.
11652
11653 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
11654
11655         PR target/69071
11656         * lra-eliminations.c (move_plus_up): Only move plus up
11657         if subreg of the constant can be simplified into constant
11658         and use the simplified subreg of the constant instead of
11659         the original constant.
11660
11661         * fold-const.c (fold_convertible_p): Don't return true
11662         for conversion of VECTOR_TYPE to same sized integral type.
11663         (fold_convert_loc): Fix up formatting.  Fold conversion of
11664         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
11665         instead of NOP_EXPR.
11666
11667         PR tree-optimization/69214
11668         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
11669         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
11670         Formatting fix.
11671
11672         PR tree-optimization/69207
11673         * tree-vect-slp.c (vect_get_constant_vectors): For
11674         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
11675         fold_convertible_p to vector_type's element type, and always
11676         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
11677
11678 2016-01-11  Richard Biener  <rguenther@suse.de>
11679
11680         PR tree-optimization/69173
11681         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
11682         fixup the cycle if all stmts are in a pattern.
11683
11684 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
11685
11686         PR middle-end/68999
11687         * alias.c (base_alias_check): Move check for addresses with
11688         alignment ANDs before the call for compare_base_decls.
11689         (memrefs_conflict_p): Return -1 for different decls
11690         that went through alignment adjustments.
11691
11692 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11693
11694         PR rtl-optimization/68796
11695         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
11696         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
11697         and QImode comparisons against zero with CC_NZmode.
11698         * config/aarch64/iterators.md (short_mask): New mode_attr.
11699
11700 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
11701
11702         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
11703         (<avx512>_store<mode>_mask): Likewise.
11704
11705 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
11706             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11707
11708         PR rtl-optimization/68841
11709         * ifcvt.c (struct noce_if_info): Add orig_x field.
11710         (bbs_ok_for_cmove_arith): Add to_rename parameter.
11711         Don't record conflicts on to_rename if it's present.
11712         Allow memory destinations in sets.
11713         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
11714         blocks, passing orig_x to the checks.
11715         (noce_process_if_block): Set if_info->orig_x appropriately.
11716
11717 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11718
11719         PR tree-optimization/69069
11720         * tree-parloops.c (create_parallel_loop): Add missing phi args.
11721
11722 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11723
11724         PR rtl-optimization/68920
11725         * config/i386/i386.c (ix86_option_override_internal): Restrict number
11726         of conditional moves for  RTL if-conversion to 1 for
11727         TARGET_ONE_IF_CONV_INSN.
11728         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
11729         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
11730         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
11731         parameter to restirct number of conditional moves for
11732         RTL if-conversion.
11733         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
11734         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
11735         conditionl moves.
11736
11737 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
11738
11739         PR bootstrap/69123
11740         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
11741         onepart vars.  Fix typo in comment.  Fix reversed condition in
11742         unshare test.
11743         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
11744
11745         PR bootstrap/69123
11746         * var-tracking.c (dump_onepart_variable_differences): New.
11747         (dataflow_set_different): If a detailed dump is requested,
11748         delay early returns and dump differences between onepart
11749         variables present before and after, and added variables.
11750
11751 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
11752
11753         PR target/69010
11754         * expr.c (expand_expr_real_1): For boolean vector constants
11755         with a scalar mode use const_scalar_mask_from_tree.
11756         (const_scalar_mask_from_tree): New.
11757         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
11758         assigned to a mask type to handle constants.
11759
11760 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11761
11762         PR ipa/69044
11763         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
11764         useless parameters if we cannot change function signature.
11765
11766 2016-01-11  Martin Jambor  <mjambor@suse.cz>
11767
11768         PR ipa/66616
11769         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
11770         flag.
11771
11772 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11773
11774         PR tree-optimization/69109
11775         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
11776         latch with phi.
11777
11778 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11779
11780         PR tree-optimization/69108
11781         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
11782         res is not used in a phi.
11783
11784 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
11785
11786         PR 67425
11787         * common.opt (frandom-seed): Fix parameter name.
11788         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
11789
11790 2016-01-11  Tom de Vries  <tom@codesourcery.com>
11791
11792         PR tree-optimization/69058
11793         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
11794         not supported.
11795
11796 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
11797
11798         * config/arc/arc.opt (mdiv-rem): Add period to the end.
11799         (mcode-density): Likewise.
11800
11801 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11802
11803         PR tree-optimization/69062
11804         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
11805         (parallelize_loops): Don't paralelize loop that has phi with address
11806         arg.
11807
11808 2016-01-10  Tom de Vries  <tom@codesourcery.com>
11809
11810         PR tree-optimization/69039
11811         * tree-parloops.c (try_create_reduction_list): Only allow single exit
11812         phi for reduction.
11813
11814 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
11815
11816         PR middle-end/68743
11817         * match.pd: Require target has function_c99_misc before doing
11818         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
11819
11820 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
11821
11822         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
11823         use GMPINC.
11824         * configure: Regenerate.
11825
11826 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
11827
11828         PR middle-end/50865
11829         PR tree-optimization/69097
11830         * fold-const.h (expr_not_equal_to): New prototype.
11831         * fold-const.c: Include stringpool.h and tree-ssanames.h.
11832         (expr_not_equal_to): New function.
11833         * match.pd (X % -Y is the same as X % Y): Don't optimize
11834         unless X is known not to be equal to minimum or Y is known
11835         not to be equal to -1.
11836         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
11837         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
11838         (simplify_stmt_using_ranges): Adjust caller.
11839         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
11840         substitute_and_fold.
11841
11842 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
11843
11844         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
11845         w/o DECL_NAME.
11846
11847 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11848
11849         PR tree-optimization/69167
11850         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
11851         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
11852         ops[0] comparison.
11853         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
11854
11855 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11856             Richard Biener  <rguenther@suse.de>
11857
11858         PR tree-optimization/68707
11859         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
11860         instances that can be handled via vect_load_lanes.
11861
11862 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
11863
11864         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
11865         if we can't determine address equivalence.
11866         * alias.c (compare_base_decl): Update for changed return value of
11867         symtab_node::equal_address_to.
11868
11869 2016-01-08  Jason Merrill  <jason@redhat.com>
11870
11871         PR c++/68983
11872         PR c++/67557
11873         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
11874         * expr.c (store_field): Not here.
11875         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
11876         call with TREE_ADDRESSABLE type.
11877         * tree-cfg.c (verify_gimple_call): Adjust.
11878
11879 2016-01-08  Olivier Hainque  <hainque@adacore.com>
11880
11881         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
11882         libc_internal.
11883
11884 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
11885
11886         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
11887         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
11888         (reduc_smin_v2sf): Rename to...
11889         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
11890         (reduc_splus_v2sf): Rename to...
11891         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
11892
11893 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11894
11895         PR tree-optimization/69162
11896         * gimplify.c (gimplify_va_arg_expr): Encode original type of
11897         valist argument in another argument.
11898         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
11899         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
11900         to determine the va_list type, build a MEM_REF instead of
11901         build_fold_indirect_ref.
11902
11903         PR tree-optimization/69172
11904         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
11905         gimple_build.
11906
11907 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11908
11909         PR tree-optimization/67781
11910         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
11911         and cmpnop in two steps: first the ones not accessed in original
11912         gimple expression in a endian independent way and then the ones not
11913         accessed in the final result in an endian-specific way.
11914
11915 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
11916
11917         PR tree-optimization/69083
11918         * tree-vect-slp.c (vect_get_constant_vectors): For
11919         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
11920         element type.  If op is fold_convertible_p to vector_type's element
11921         type, use NOP_EXPR instead of VCE.
11922
11923 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
11924
11925         PR rtl-optimization/67778
11926         PR rtl-optimization/68634
11927         PR rtl-optimization/68909
11928         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
11929         block from the stack until done with it.  Remove a superfluous
11930         bitmap set.  Remove a superfluous bitmap test.
11931
11932 2016-01-07  Martin Sebor  <msebor@redhat.com>
11933
11934         PR c/68966
11935         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
11936         constraint on the type of arguments.
11937
11938 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
11939
11940         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
11941         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
11942         unaligned_access on the gcc_options set.
11943         * config/arm/arm.c (arm_option_override_internal): Use
11944         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
11945
11946 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11947
11948         PR target/69140
11949         * config/i386/i386.c (ix86_frame_pointer_required): Enable
11950         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
11951
11952 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
11953
11954         Revert
11955         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
11956
11957         PR target/69140
11958         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
11959         depending on frame_pointer_needed before remaining integer and SSE
11960         registers are saved.
11961
11962 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
11963
11964         PR 1078
11965         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
11966
11967 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
11968
11969         PR target/69171
11970         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
11971         Use the "xBm" constraint.
11972         (float<sseintvecmodelower><mode>2<mask_name><round_name):
11973         Likewise.
11974         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
11975         (sse_cvtsi2ssq<round_name>): Likewise.
11976         (sse_cvtss2si<round_name>): Likewise.
11977         (sse_cvtss2siq<round_name>): Likewise.
11978         (sse2_cvtsi2sdq<round_name>): Likewise.
11979         (sse2_cvtsd2si<round_name>): Likewise.
11980         (sse2_cvtsd2siq<round_name>): Likewise.
11981         * config/i386/subst.md (round_nimm_scalar_predicate): New
11982         predicate.
11983
11984 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
11985
11986         PR middle-end/67639
11987         * varasm.c (make_decl_rtl): Mark invalid register vars as
11988         DECL_EXTERNAL.
11989
11990         PR rtl-optimization/66206
11991         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
11992         All callers changed.
11993
11994 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
11995
11996         PR tree-optimization/69141
11997         * tree-ssa-pre.c: Include langhooks.h.
11998         (eliminate_dom_walker::before_dom_children): Use
11999         lang_hooks.decl_printable_name instead of
12000         cgraph_node::get ()->name ().
12001
12002         PR middle-end/68960
12003         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
12004         it and DECL_ALIGN too.
12005
12006 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
12007
12008         * config/mips/mips-ftypes.def: Sort to lexicographical order.
12009
12010 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
12011
12012         PR target/69140
12013         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
12014         depending on frame_pointer_needed before remaining integer and SSE
12015         registers are saved.
12016
12017 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12018
12019         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
12020         mode iterator with VSX_M2.
12021         (*p9_vecstore_<mode>): Likewise.
12022         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
12023         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
12024         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
12025         (define_split for VSX_LE128 stores): Likewise.
12026         (define_peephole2 for TImode LE swaps): Likewise.
12027         (define_split for VSX_LE128 post-reload stores): Likewise.
12028
12029 2016-01-06  Marek Polacek  <polacek@redhat.com>
12030
12031         PR sanitizer/69099
12032         * convert.c (convert_to_integer_1): Adjust call to
12033         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
12034         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
12035         EXPR instead of ARG.
12036         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
12037
12038 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12039
12040         PR 1078
12041         * doc/extend.texi (RL78 Variable Attributes): New section.
12042
12043 2016-01-05  Marek Polacek  <polacek@redhat.com>
12044
12045         PR c/69104
12046         * builtins.c (get_memmodel): Use expansion point location rather than
12047         the input location.  Call warning_at rather than warning.
12048         (expand_builtin_atomic_compare_exchange): Likewise.
12049         (expand_builtin_atomic_load): Likewise.
12050         (expand_builtin_atomic_store): Likewise.
12051         (expand_builtin_atomic_clear): Likewise.
12052
12053 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12054
12055         PR target/68991
12056         * config/i386/i386.c (ix86_expand_vector_logical_operator):
12057         Replace nonimmediate_operand with vector_operand.
12058         * config/i386/predicates.md (vector_operand): New predicate.
12059         (general_vector_operand): Replace nonimmediate_operand with
12060         vector_operand.
12061         * config/i386/sse.md: Replace nonimmediate_operand with
12062         vector_operand and m constraint with Bm constraint on SSE
12063         patterns with 16-byte memory operand.
12064         * config/i386/subst.md (round_nimm_predicate): Replace
12065         nonimmediate_operand with vector_operand.
12066         (round_saeonly_nimm_predicate): Likewise.
12067         (round_saeonly_nimm_scalar_predicate): New.
12068
12069 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
12070
12071         PR target/68991
12072         * config/i386/constraints.md (Bm): New constraint.
12073         * config/i386/predicates.md (vector_memory_operand): New
12074         predicate.
12075         * config/i386/sse.md: Replace xm with xBm in plusminus and
12076         any_logic patterns.
12077
12078 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12079
12080         PR 1078
12081         * doc/extend.texi (V850 Function Attributes): New section.
12082         (V850 Variable Attributes): New section.
12083
12084 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
12085
12086         PR 1078
12087         * doc/extend.texi (MicroBlaze Function Attributes): Document
12088         interrupt_handler and fast_interrupt attributes.
12089
12090 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
12091
12092         PR other/60465
12093         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
12094         for local symbolic operands.
12095         * config/ia64/predicates.md (local_symbolic_operand64): New
12096         predicate.
12097
12098 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12099
12100         PR rtl-optimization/68651
12101         * combine.c (combine_simplify_rtx): Canonicalize x + x into
12102         x << 1.
12103
12104 2016-01-05  Nathan Sidwell  <nathan@acm.org>
12105
12106         * alias.c (compare_base_decls): Use symtab_node::get.
12107
12108 2016-01-05  Nick Clifton  <nickc@redhat.com>
12109
12110         PR target/68770
12111         * ira-costs.c (copy_cost): Initialise the t_icode field of the
12112         secondary_reload_info structure.
12113
12114         PR target/66655
12115         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
12116         decls if weak support is available.
12117
12118 2016-01-04  Martin Sebor  <msebor@redhat.com>
12119
12120         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
12121
12122 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12123
12124         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
12125         OPTION_MASK_P9_DFORM.
12126
12127         * config/rs6000/constraints.md (wo constraint): New constraint for
12128         ISA 3.0 (power9).
12129
12130         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
12131         for wo constraint.
12132         (rs6000_init_hard_regno_mode_ok): Likewise.
12133
12134         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
12135         wo constraint.
12136
12137         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
12138         expanders not to have constraints.  Add support for ISA 3.0 xxperm
12139         instruction.  Add support for fusing xxlor with xxperm.
12140         (altivec_vperm_<mode>_internal): Likewise.
12141         (altivec_vperm_v8hiv16qi): Likewise.
12142         (altivec_vperm_<mode>v16q): Likewise.
12143         (altivec_vperm_<mode>_uns): Likewise.
12144         (vperm_v8hiv4si): Likewise.
12145         (vperm_v16qiv8hi): Likewise.
12146
12147         * doc/md.texi (RS/6000 constraints): Document wo constraint.
12148
12149 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
12150
12151         Update copyright years.
12152
12153         * gcc.c (process_command): Update copyright notice dates.
12154         * gcov-dump.c (print_version): Ditto.
12155         * gcov.c (print_version): Ditto.
12156         * gcov-tool.c (print_version): Ditto.
12157         * gengtype.c (create_file): Ditto.
12158         * doc/cpp.texi: Bump @copying's copyright year.
12159         * doc/cppinternals.texi: Ditto.
12160         * doc/gcc.texi: Ditto.
12161         * doc/gccint.texi: Ditto.
12162         * doc/gcov.texi: Ditto.
12163         * doc/install.texi: Ditto.
12164         * doc/invoke.texi: Ditto.
12165
12166 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12167
12168         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
12169         modes larger than TImode as TImode if NEON is not enabled.
12170
12171 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12172
12173         PR target/69100
12174         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
12175         mode for %f0-%f31 only if TARGET_FPU.
12176
12177 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
12178
12179         PR target/69072
12180         * config/sparc/sparc.c (scan_record_type): Take into account subfields
12181         to compute the PACKED_P predicate.
12182         (function_arg_record_value): Minor tweaks.
12183
12184 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12185
12186         * doc/install.texi (--with-multilib-list): Describe the meaning of the
12187         option for arm*-*-* targets.
12188
12189 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
12190
12191         * doc/extend.texi (Common Function Attributes): Move docs for
12192         MSP430-specific attributes to....
12193         (MSP430 Function Attributes): ...here.  Delete the redundant
12194         entries and copy-edit the remaining text.
12195         (MSP430 Variable Attributes): Use uniform format for index
12196         entries and add a cross-reference to the corresponding function
12197         attribute docs.
12198
12199 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
12200
12201         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
12202         -finite-math typo.
12203         (x86 Options): Likewise.
12204
12205 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12206
12207         PR 1078
12208
12209         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
12210         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
12211         to corresponding attribute.
12212
12213 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
12214
12215         * doc/extend.texi (Common Function Attributes) <noplt>: Move
12216         to correct alphabetization of table.  Copy-edit and correct
12217         markup.
12218         <stack_protect>: Likewise.
12219         <target_clones>: Likewise.
12220         <simd>: Likewise.
12221         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
12222         Correct punctuation.
12223         (Code Gen Options) <-fno-plt>: Copy-edit.
12224
12225 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12226
12227         PR target/68917
12228         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
12229         SI values.  Explicitly convert SI to DI and vice-versa.
12230
12231 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
12232
12233         PR tree-optimization/69070
12234         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
12235         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
12236
12237         PR sanitizer/69055
12238         * ubsan.c (ubsan_instrument_float_cast): Call
12239         initialize_sanitizer_builtins.
12240
12241         PR target/69015
12242         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
12243 \f
12244 Copyright (C) 2016 Free Software Foundation, Inc.
12245
12246 Copying and distribution of this file, with or without modification,
12247 are permitted in any medium without royalty provided the copyright
12248 notice and this notice are preserved.